mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-01-18 14:41:21 +08:00
[PowerToys Run] Implemented Setting to Clear Search Query when PowerToys Run is Launched (#4995)
* Implemented Clear Input On Launch * Move logic to seperate command on viewmodel * Added Settings Sync Moved logic from OnDeactivated to OnActivated * Complete after testing Co-authored-by: Roy <royvou@hotmailcom>
This commit is contained in:
parent
f59abe23c3
commit
78946c11ea
@ -26,6 +26,8 @@ namespace Microsoft.PowerToys.Settings.UI.Lib
|
||||
|
||||
public bool ignore_hotkeys_in_fullscreen { get; set; }
|
||||
|
||||
public bool clear_input_on_launch { get; set; }
|
||||
|
||||
public PowerLauncherProperties()
|
||||
{
|
||||
open_powerlauncher = new HotkeySettings();
|
||||
@ -35,6 +37,7 @@ namespace Microsoft.PowerToys.Settings.UI.Lib
|
||||
search_result_preference = "most_recently_used";
|
||||
search_type_preference = "application_name";
|
||||
ignore_hotkeys_in_fullscreen = false;
|
||||
clear_input_on_launch = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -253,6 +253,9 @@
|
||||
<data name="PowerLauncher_IgnoreHotkeysInFullScreen.Content" xml:space="preserve">
|
||||
<value>Ignore hotkeys in fullscreen mode</value>
|
||||
</data>
|
||||
<data name="PowerLauncher_ClearInputOnLaunch.Content" xml:space="preserve">
|
||||
<value>Clear the previous query on launch</value>
|
||||
</data>
|
||||
<data name="KeyboardManager_KeysMappingLayoutRightHeader.Text" xml:space="preserve">
|
||||
<value>To:</value>
|
||||
<comment>Keyboard Manager mapping keys view right header</comment>
|
||||
|
@ -252,5 +252,22 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool ClearInputOnLaunch
|
||||
{
|
||||
get
|
||||
{
|
||||
return settings.properties.clear_input_on_launch;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (settings.properties.clear_input_on_launch != value)
|
||||
{
|
||||
settings.properties.clear_input_on_launch = value;
|
||||
UpdateSettings();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -134,6 +134,12 @@
|
||||
IsChecked="{x:Bind Mode=TwoWay, Path=ViewModel.IgnoreHotkeysInFullScreen}"
|
||||
IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.EnablePowerLauncher}"
|
||||
/>
|
||||
|
||||
<CheckBox x:Uid="PowerLauncher_ClearInputOnLaunch"
|
||||
Margin="{StaticResource SmallTopMargin}"
|
||||
IsChecked="{x:Bind Mode=TwoWay, Path=ViewModel.ClearInputOnLaunch}"
|
||||
IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.EnablePowerLauncher}"
|
||||
/>
|
||||
</StackPanel>
|
||||
<StackPanel
|
||||
x:Name="SidePanel"
|
||||
|
@ -131,5 +131,7 @@ namespace ViewModelTests
|
||||
Assert.IsTrue(mockSettings.properties.override_win_r_key);
|
||||
Assert.IsFalse(mockSettings.properties.override_win_s_key);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@
|
||||
Closing="OnClosing"
|
||||
Background="Transparent"
|
||||
LocationChanged="OnLocationChanged"
|
||||
Activated="OnActivated"
|
||||
Deactivated="OnDeactivated"
|
||||
IsVisibleChanged="OnVisibilityChanged"
|
||||
Visibility="{Binding MainWindowVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
|
@ -151,6 +151,14 @@ namespace PowerLauncher
|
||||
_settings.WindowLeft = Left;
|
||||
}
|
||||
|
||||
private void OnActivated(object sender, EventArgs e)
|
||||
{
|
||||
if (_settings.ClearInputOnLaunch)
|
||||
{
|
||||
_viewModel.ClearQueryCommand.Execute(null);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDeactivated(object sender, EventArgs e)
|
||||
{
|
||||
if (_settings.HideWhenDeactivated)
|
||||
|
@ -65,6 +65,11 @@ namespace PowerLauncher
|
||||
{
|
||||
_settings.IgnoreHotkeysOnFullscreen = overloadSettings.properties.ignore_hotkeys_in_fullscreen;
|
||||
}
|
||||
|
||||
if (_settings.ClearInputOnLaunch != overloadSettings.properties.clear_input_on_launch)
|
||||
{
|
||||
_settings.ClearInputOnLaunch = overloadSettings.properties.clear_input_on_launch;
|
||||
}
|
||||
}
|
||||
// the settings application can hold a lock on the settings.json file which will result in a IOException.
|
||||
// This should be changed to properly synch with the settings app instead of retrying.
|
||||
|
@ -129,6 +129,8 @@ namespace Wox.Infrastructure.UserSettings
|
||||
}
|
||||
public bool LeaveCmdOpen { get; set; }
|
||||
public bool HideWhenDeactivated { get; set; } = true;
|
||||
public bool ClearInputOnLaunch { get; set; } = false;
|
||||
|
||||
public bool RememberLastLaunchLocation { get; set; }
|
||||
public bool IgnoreHotkeysOnFullscreen { get; set; }
|
||||
|
||||
|
@ -234,6 +234,16 @@ namespace Wox.ViewModel
|
||||
SelectedResults = Results;
|
||||
}
|
||||
});
|
||||
|
||||
ClearQueryCommand = new RelayCommand(_ =>
|
||||
{
|
||||
if(!string.IsNullOrEmpty(QueryText))
|
||||
{
|
||||
ChangeQueryText(string.Empty,true);
|
||||
//Push Event to UI SystemQuery has changed
|
||||
OnPropertyChanged(nameof(SystemQueryText));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -342,6 +352,8 @@ namespace Wox.ViewModel
|
||||
public ICommand LoadContextMenuCommand { get; set; }
|
||||
public ICommand LoadHistoryCommand { get; set; }
|
||||
public ICommand OpenResultCommand { get; set; }
|
||||
public ICommand ClearQueryCommand { get; set; }
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user