2023-06-12 13:18:23 +00:00
|
|
|
|
using System.Collections.Generic;
|
2021-04-12 09:06:44 +00:00
|
|
|
|
using System.Windows;
|
2014-07-04 07:34:31 +00:00
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
|
|
2020-04-21 09:12:17 +00:00
|
|
|
|
namespace Flow.Launcher.Plugin.Shell
|
2014-07-04 07:34:31 +00:00
|
|
|
|
{
|
|
|
|
|
|
public partial class CMDSetting : UserControl
|
|
|
|
|
|
{
|
2016-05-19 08:04:31 +00:00
|
|
|
|
private readonly Settings _settings;
|
2016-03-28 02:09:57 +00:00
|
|
|
|
|
2016-05-19 08:04:31 +00:00
|
|
|
|
public CMDSetting(Settings settings)
|
2014-07-04 07:34:31 +00:00
|
|
|
|
{
|
|
|
|
|
|
InitializeComponent();
|
2016-03-28 02:09:57 +00:00
|
|
|
|
_settings = settings;
|
2014-07-04 07:34:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void CMDSetting_OnLoaded(object sender, RoutedEventArgs re)
|
|
|
|
|
|
{
|
2016-05-19 08:04:31 +00:00
|
|
|
|
ReplaceWinR.IsChecked = _settings.ReplaceWinR;
|
2023-11-01 16:35:00 +00:00
|
|
|
|
|
|
|
|
|
|
CloseShellAfterPress.IsChecked = _settings.CloseShellAfterPress;
|
2025-09-27 16:18:33 +00:00
|
|
|
|
|
2016-05-19 08:04:31 +00:00
|
|
|
|
LeaveShellOpen.IsChecked = _settings.LeaveShellOpen;
|
2025-09-27 16:18:33 +00:00
|
|
|
|
|
2019-12-10 09:03:43 +00:00
|
|
|
|
AlwaysRunAsAdministrator.IsChecked = _settings.RunAsAdministrator;
|
2025-02-05 23:22:41 +00:00
|
|
|
|
|
|
|
|
|
|
UseWindowsTerminal.IsChecked = _settings.UseWindowsTerminal;
|
2025-09-27 16:18:33 +00:00
|
|
|
|
|
2016-05-19 08:04:31 +00:00
|
|
|
|
LeaveShellOpen.IsEnabled = _settings.Shell != Shell.RunCommand;
|
2025-09-27 16:18:33 +00:00
|
|
|
|
|
2021-04-12 09:06:44 +00:00
|
|
|
|
ShowOnlyMostUsedCMDs.IsChecked = _settings.ShowOnlyMostUsedCMDs;
|
2025-09-27 16:18:33 +00:00
|
|
|
|
|
|
|
|
|
|
if (ShowOnlyMostUsedCMDs.IsChecked != true)
|
2021-04-12 09:06:44 +00:00
|
|
|
|
ShowOnlyMostUsedCMDsNumber.IsEnabled = false;
|
|
|
|
|
|
|
|
|
|
|
|
ShowOnlyMostUsedCMDsNumber.ItemsSource = new List<int>() { 5, 10, 20 };
|
|
|
|
|
|
|
|
|
|
|
|
if (_settings.ShowOnlyMostUsedCMDsNumber == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
ShowOnlyMostUsedCMDsNumber.SelectedIndex = 0;
|
|
|
|
|
|
|
|
|
|
|
|
_settings.ShowOnlyMostUsedCMDsNumber = (int)ShowOnlyMostUsedCMDsNumber.SelectedItem;
|
|
|
|
|
|
}
|
2014-07-04 07:34:31 +00:00
|
|
|
|
|
2023-11-01 16:35:00 +00:00
|
|
|
|
CloseShellAfterPress.Checked += (o, e) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
_settings.CloseShellAfterPress = true;
|
2023-11-11 12:47:22 +00:00
|
|
|
|
LeaveShellOpen.IsChecked = false;
|
|
|
|
|
|
LeaveShellOpen.IsEnabled = false;
|
2023-11-01 16:35:00 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
CloseShellAfterPress.Unchecked += (o, e) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
_settings.CloseShellAfterPress = false;
|
2023-11-11 12:47:22 +00:00
|
|
|
|
LeaveShellOpen.IsEnabled = true;
|
2023-11-01 16:35:00 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
2016-05-19 08:04:31 +00:00
|
|
|
|
LeaveShellOpen.Checked += (o, e) =>
|
2014-07-04 07:34:31 +00:00
|
|
|
|
{
|
2016-05-19 08:04:31 +00:00
|
|
|
|
_settings.LeaveShellOpen = true;
|
2023-11-11 12:47:22 +00:00
|
|
|
|
CloseShellAfterPress.IsChecked = false;
|
|
|
|
|
|
CloseShellAfterPress.IsEnabled = false;
|
2014-07-04 07:34:31 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
2016-05-19 08:04:31 +00:00
|
|
|
|
LeaveShellOpen.Unchecked += (o, e) =>
|
2014-07-04 07:34:31 +00:00
|
|
|
|
{
|
2016-05-19 08:04:31 +00:00
|
|
|
|
_settings.LeaveShellOpen = false;
|
2023-11-11 12:47:22 +00:00
|
|
|
|
CloseShellAfterPress.IsEnabled = true;
|
2014-07-04 07:34:31 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
2019-12-10 09:03:43 +00:00
|
|
|
|
AlwaysRunAsAdministrator.Checked += (o, e) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
_settings.RunAsAdministrator = true;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
AlwaysRunAsAdministrator.Unchecked += (o, e) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
_settings.RunAsAdministrator = false;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2025-02-05 23:22:41 +00:00
|
|
|
|
UseWindowsTerminal.Checked += (o, e) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
_settings.UseWindowsTerminal = true;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
UseWindowsTerminal.Unchecked += (o, e) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
_settings.UseWindowsTerminal = false;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2016-05-19 08:04:31 +00:00
|
|
|
|
ReplaceWinR.Checked += (o, e) =>
|
2014-07-04 07:34:31 +00:00
|
|
|
|
{
|
2016-03-28 02:09:57 +00:00
|
|
|
|
_settings.ReplaceWinR = true;
|
2014-07-04 07:34:31 +00:00
|
|
|
|
};
|
2021-04-12 09:06:44 +00:00
|
|
|
|
|
2016-05-19 08:04:31 +00:00
|
|
|
|
ReplaceWinR.Unchecked += (o, e) =>
|
2014-07-04 07:34:31 +00:00
|
|
|
|
{
|
2016-03-28 02:09:57 +00:00
|
|
|
|
_settings.ReplaceWinR = false;
|
2014-07-04 07:34:31 +00:00
|
|
|
|
};
|
2016-05-19 08:04:31 +00:00
|
|
|
|
|
2023-06-12 12:49:33 +00:00
|
|
|
|
ShellComboBox.SelectedIndex = _settings.Shell switch
|
|
|
|
|
|
{
|
|
|
|
|
|
Shell.Cmd => 0,
|
|
|
|
|
|
Shell.Powershell => 1,
|
2023-06-12 13:18:23 +00:00
|
|
|
|
Shell.Pwsh => 2,
|
2023-06-12 12:49:33 +00:00
|
|
|
|
_ => ShellComboBox.Items.Count - 1
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2016-05-19 08:04:31 +00:00
|
|
|
|
ShellComboBox.SelectionChanged += (o, e) =>
|
|
|
|
|
|
{
|
2023-06-12 12:49:33 +00:00
|
|
|
|
_settings.Shell = ShellComboBox.SelectedIndex switch
|
|
|
|
|
|
{
|
|
|
|
|
|
0 => Shell.Cmd,
|
|
|
|
|
|
1 => Shell.Powershell,
|
2023-06-12 13:18:23 +00:00
|
|
|
|
2 => Shell.Pwsh,
|
2023-06-12 12:49:33 +00:00
|
|
|
|
_ => Shell.RunCommand
|
|
|
|
|
|
};
|
2016-05-19 08:04:31 +00:00
|
|
|
|
LeaveShellOpen.IsEnabled = _settings.Shell != Shell.RunCommand;
|
|
|
|
|
|
};
|
2021-04-12 09:06:44 +00:00
|
|
|
|
|
|
|
|
|
|
ShowOnlyMostUsedCMDs.Checked += (o, e) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
_settings.ShowOnlyMostUsedCMDs = true;
|
|
|
|
|
|
|
|
|
|
|
|
ShowOnlyMostUsedCMDsNumber.IsEnabled = true;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
ShowOnlyMostUsedCMDs.Unchecked += (o, e) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
_settings.ShowOnlyMostUsedCMDs = false;
|
|
|
|
|
|
|
|
|
|
|
|
ShowOnlyMostUsedCMDsNumber.IsEnabled = false;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
ShowOnlyMostUsedCMDsNumber.SelectedItem = _settings.ShowOnlyMostUsedCMDsNumber;
|
|
|
|
|
|
ShowOnlyMostUsedCMDsNumber.SelectionChanged += (o, e) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
_settings.ShowOnlyMostUsedCMDsNumber = (int)ShowOnlyMostUsedCMDsNumber.SelectedItem;
|
|
|
|
|
|
};
|
2014-07-04 07:34:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|