Skip to content

Commit

Permalink
Merge pull request #2796 from Flow-Launcher/fix-custom-shortcuts-not-…
Browse files Browse the repository at this point in the history
…working-after-settings-split

Settings: fix creating/editing custom shortcuts
  • Loading branch information
onesounds authored Jun 20, 2024
2 parents a26cdc4 + 79ce505 commit c65ac7b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 10 deletions.
17 changes: 10 additions & 7 deletions Flow.Launcher/CustomShortcutSetting.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,31 +1,34 @@
using Flow.Launcher.Core.Resource;
using Flow.Launcher.ViewModel;
using System;
using System.Windows;
using System.Windows.Input;
using Flow.Launcher.SettingPages.ViewModels;

namespace Flow.Launcher
{
public partial class CustomShortcutSetting : Window
{
private readonly SettingsPaneHotkeyViewModel _hotkeyVm;
public string Key { get; set; } = String.Empty;
public string Value { get; set; } = String.Empty;
private string originalKey { get; init; } = null;
private string originalValue { get; init; } = null;
private bool update { get; init; } = false;
private string originalKey { get; } = null;
private string originalValue { get; } = null;
private bool update { get; } = false;

public CustomShortcutSetting(SettingWindowViewModel vm)
public CustomShortcutSetting(SettingsPaneHotkeyViewModel vm)
{
_hotkeyVm = vm;
InitializeComponent();
}

public CustomShortcutSetting(string key, string value)
public CustomShortcutSetting(string key, string value, SettingsPaneHotkeyViewModel vm)
{
Key = key;
Value = value;
originalKey = key;
originalValue = value;
update = true;
_hotkeyVm = vm;
InitializeComponent();
}

Expand All @@ -43,7 +46,7 @@ private void BtnAdd_OnClick(object sender, RoutedEventArgs e)
return;
}
// Check if key is modified or adding a new one
if ((update && originalKey != Key) || !update)
if (((update && originalKey != Key) || !update) && _hotkeyVm.DoesShortcutExist(Key))
{
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("duplicateShortcut"));
return;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Windows;
using System.Linq;
using System.Windows;
using CommunityToolkit.Mvvm.Input;
using Flow.Launcher.Core.Resource;
using Flow.Launcher.Helper;
Expand Down Expand Up @@ -114,7 +115,7 @@ private void CustomShortcutEdit()
return;
}

var window = new CustomShortcutSetting(item.Key, item.Value);
var window = new CustomShortcutSetting(item.Key, item.Value, this);
if (window.ShowDialog() is not true) return;

var index = Settings.CustomShortcuts.IndexOf(item);
Expand All @@ -124,11 +125,17 @@ private void CustomShortcutEdit()
[RelayCommand]
private void CustomShortcutAdd()
{
var window = new CustomShortcutSetting(null);
var window = new CustomShortcutSetting(this);
if (window.ShowDialog() is true)
{
var shortcut = new CustomShortcutModel(window.Key, window.Value);
Settings.CustomShortcuts.Add(shortcut);
}
}

internal bool DoesShortcutExist(string key)
{
return Settings.CustomShortcuts.Any(v => v.Key == key) ||
Settings.BuiltinShortcuts.Any(v => v.Key == key);
}
}

0 comments on commit c65ac7b

Please sign in to comment.