diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml index 0a2eccccdb..22d3913994 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml +++ b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml @@ -241,10 +241,10 @@ - + - + Orientation="Horizontal" + Spacing="8"> + + + diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml.cs b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml.cs index 7c903662e5..2ebfa1184e 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml.cs +++ b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml.cs @@ -411,7 +411,7 @@ namespace KeyboardManagerEditorUI.Pages int originalKey = _mappingService.GetKeyCodeFromName(originalKeys[0]); if (originalKey != 0) { - deleted = _mappingService.DeleteSingleKeyToTextMapping(originalKey); + deleted = _mappingService.DeleteSingleKeyMapping(originalKey); } } else @@ -439,7 +439,7 @@ namespace KeyboardManagerEditorUI.Pages int originalKey = _mappingService.GetKeyCodeFromName(originalKeys[0]); if (originalKey != 0) { - deleted = _mappingService.DeleteSingleKeyToTextMapping(originalKey); + deleted = _mappingService.DeleteSingleKeyMapping(originalKey); } } else @@ -618,9 +618,12 @@ namespace KeyboardManagerEditorUI.Pages case Remapping remapping: if (RemappingHelper.DeleteRemapping(_mappingService, remapping)) { - _mappingService.SaveSettings(); LoadRemappings(); } + else + { + Logger.LogWarning($"Failed to delete remapping: {string.Join("+", remapping.OriginalKeys)}"); + } break; @@ -646,6 +649,10 @@ namespace KeyboardManagerEditorUI.Pages _mappingService.SaveSettings(); LoadTextMappings(); } + else + { + Logger.LogWarning($"Failed to delete text mapping: {string.Join("+", textMapping.Keys)}"); + } } break; @@ -658,7 +665,7 @@ namespace KeyboardManagerEditorUI.Pages int originalKey = _mappingService.GetKeyCodeFromName(programShortcut.Shortcut[0]); if (originalKey != 0) { - deleted = _mappingService.DeleteSingleKeyToTextMapping(originalKey); + deleted = _mappingService.DeleteSingleKeyMapping(originalKey); } } else @@ -673,6 +680,10 @@ namespace KeyboardManagerEditorUI.Pages SettingsManager.RemoveShortcutKeyMappingFromSettings(programShortcut.Id); LoadProgramShortcuts(); } + else + { + Logger.LogWarning($"Failed to delete program shortcut: {string.Join("+", programShortcut.Shortcut)}"); + } } break; @@ -685,7 +696,7 @@ namespace KeyboardManagerEditorUI.Pages int originalKey = _mappingService.GetKeyCodeFromName(urlShortcut.Shortcut[0]); if (originalKey != 0) { - deleted = _mappingService.DeleteSingleKeyToTextMapping(originalKey); + deleted = _mappingService.DeleteSingleKeyMapping(originalKey); } } else @@ -699,9 +710,17 @@ namespace KeyboardManagerEditorUI.Pages _mappingService.SaveSettings(); LoadUrlShortcuts(); } + else + { + Logger.LogWarning($"Failed to delete URL shortcut: {string.Join("+", urlShortcut.Shortcut)}"); + } } break; + + default: + Logger.LogWarning($"Unknown DataContext type for delete: {button.DataContext?.GetType().Name ?? "null"}"); + break; } } catch (Exception ex) @@ -712,6 +731,72 @@ namespace KeyboardManagerEditorUI.Pages #endregion + #region Toggle Switch Handlers + + private void ProgramToggleSwitch_Toggled(object sender, RoutedEventArgs e) + { + if (sender is ToggleSwitch toggleSwitch && toggleSwitch.DataContext is ProgramShortcut shortcut && _mappingService != null) + { + try + { + if (toggleSwitch.IsOn) + { + bool saved = false; + ShortcutKeyMapping shortcutKeyMapping = SettingsManager.EditorSettings.ShortcutSettingsDictionary[shortcut.Id].Shortcut; + + saved = _mappingService.AddShorcutMapping(shortcutKeyMapping); + + if (saved) + { + shortcut.IsActive = true; + _mappingService.SaveSettings(); + SettingsManager.ToggleShortcutKeyMappingActiveState(shortcut.Id); + } + else + { + toggleSwitch.IsOn = false; + } + } + else + { + bool deleted = false; + if (shortcut.Shortcut.Count == 1) + { + int originalKey = _mappingService.GetKeyCodeFromName(shortcut.Shortcut[0]); + if (originalKey != 0) + { + deleted = _mappingService.DeleteSingleKeyToTextMapping(originalKey); + } + } + else + { + string originalKeys = string.Join(";", shortcut.Shortcut.Select(k => _mappingService.GetKeyCodeFromName(k))); + deleted = _mappingService.DeleteShortcutMapping(originalKeys); + } + + if (deleted) + { + shortcut.IsActive = false; + SettingsManager.ToggleShortcutKeyMappingActiveState(shortcut.Id); + _mappingService.SaveSettings(); + } + else + { + toggleSwitch.IsOn = true; + } + + LoadProgramShortcuts(); + } + } + catch (Exception ex) + { + Logger.LogError("Error toggling program shortcut active state: " + ex.Message); + } + } + } + + #endregion + #region Load Methods private void LoadAllMappings()