From c1bf75213639699e533d96e9c9363ff5d644d64e Mon Sep 17 00:00:00 2001 From: Takayama Fumihiko Date: Sun, 10 Sep 2023 11:06:04 +0900 Subject: [PATCH] Add `add new rule` button --- .../src/View/ComplexModificationsEditView.swift | 14 ++++++++++---- .../src/View/ComplexModificationsView.swift | 13 +++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/apps/SettingsWindow/src/View/ComplexModificationsEditView.swift b/src/apps/SettingsWindow/src/View/ComplexModificationsEditView.swift index 369a36347..a9f3e468b 100644 --- a/src/apps/SettingsWindow/src/View/ComplexModificationsEditView.swift +++ b/src/apps/SettingsWindow/src/View/ComplexModificationsEditView.swift @@ -34,9 +34,16 @@ struct ComplexModificationsEditView: View { Button( action: { - errorMessage = settings.replaceComplexModificationsRule(rule!, jsonString) - if errorMessage == nil { - showing = false + if rule!.index < 0 { + errorMessage = settings.pushFrontComplexModificationsRule(jsonString) + if errorMessage == nil { + showing = false + } + } else { + errorMessage = settings.replaceComplexModificationsRule(rule!, jsonString) + if errorMessage == nil { + showing = false + } } }, label: { @@ -80,7 +87,6 @@ struct ComplexModificationsEditView: View { } .padding() .frame(width: 1000, height: 600) - .onAppear { description = rule?.description ?? "" diff --git a/src/apps/SettingsWindow/src/View/ComplexModificationsView.swift b/src/apps/SettingsWindow/src/View/ComplexModificationsView.swift index f2ccb60d1..27dfc3760 100644 --- a/src/apps/SettingsWindow/src/View/ComplexModificationsView.swift +++ b/src/apps/SettingsWindow/src/View/ComplexModificationsView.swift @@ -25,6 +25,19 @@ struct ComplexModificationsView: View { AccentColorIconLabel(title: "Add predefined rule", systemImage: "plus.circle.fill") }) + Button( + action: { + var buffer = [Int8](repeating: 0, count: 1024) + libkrbn_core_configuration_get_new_complex_modifications_rule_json_string( + &buffer, buffer.count) + + editingRule = LibKrbn.ComplexModificationsRule(-1, "New rule", String(cString: buffer)) + showingEditSheet = true + }, + label: { + AccentColorIconLabel(title: "Add new rule", systemImage: "pencil.circle.fill") + }) + Spacer() if settings.complexModificationsRules.count > 1 {