Flow.Launcher/Plugins/Flow.Launcher.Plugin.Shell/ViewModels/ShellSettingViewModel.cs

79 lines
1.9 KiB
C#
Raw Normal View History

using System.Collections.Generic;
namespace Flow.Launcher.Plugin.Shell.ViewModels;
public class ShellSettingViewModel : BaseModel
{
public Settings Settings { get; }
public List<ShellLocalized> AllShells { get; } = ShellLocalized.GetValues();
public Shell SelectedShell
{
get => Settings.Shell;
set
{
if (Settings.Shell != value)
{
Settings.Shell = value;
OnPropertyChanged();
}
}
}
public List<int> OnlyMostUsedCMDsNumbers { get; } = [5, 10, 20];
public int SelectedOnlyMostUsedCMDsNumber
{
get => Settings.ShowOnlyMostUsedCMDsNumber;
set
{
if (Settings.ShowOnlyMostUsedCMDsNumber != value)
{
Settings.ShowOnlyMostUsedCMDsNumber = value;
OnPropertyChanged();
}
}
}
public bool CloseShellAfterPress
{
get => Settings.CloseShellAfterPress;
set
{
if (Settings.CloseShellAfterPress != value)
{
Settings.CloseShellAfterPress = value;
OnPropertyChanged();
// Only allow CloseShellAfterPress to be true when LeaveShellOpen is false
if (value)
{
LeaveShellOpen = false;
}
}
}
}
public bool LeaveShellOpen
{
get => Settings.LeaveShellOpen;
set
{
if (Settings.LeaveShellOpen != value)
{
Settings.LeaveShellOpen = value;
OnPropertyChanged();
// Only allow LeaveShellOpen to be true when CloseShellAfterPress is false
if (value)
{
CloseShellAfterPress = false;
}
}
}
}
public ShellSettingViewModel(Settings settings)
{
Settings = settings;
}
}