mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-06 11:16:51 +02:00
[Settings UI] Updated General Settings (#2676)
* updated general settings view * moved text to string resource * Update App.xaml.cs * set run-elevated as a start-up argument
This commit is contained in:
@@ -10,8 +10,9 @@ using Microsoft.PowerToys.Settings.UI.Helpers;
|
||||
using Microsoft.PowerToys.Settings.UI.Lib;
|
||||
using Microsoft.PowerToys.Settings.UI.ViewModels.Commands;
|
||||
using Microsoft.PowerToys.Settings.UI.Views;
|
||||
using Windows.ApplicationModel.Resources;
|
||||
using Microsoft.PowerToys.Settings.UI.Lib.Utilities;
|
||||
using Windows.Data.Html;
|
||||
using Windows.Data.Html;
|
||||
using Windows.System;
|
||||
using Windows.UI.Popups;
|
||||
using Windows.UI.Xaml;
|
||||
@@ -26,6 +27,8 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
|
||||
public ButtonClickCommand RestartElevatedButtonEventHandler { get; set; }
|
||||
|
||||
private ResourceLoader loader = ResourceLoader.GetForCurrentView();
|
||||
|
||||
public GeneralViewModel()
|
||||
{
|
||||
this.CheckFoUpdatesEventHandler = new ButtonClickCommand(CheckForUpdates_Click);
|
||||
@@ -35,17 +38,17 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
GeneralSettingsConfigs = SettingsUtils.GetSettings<GeneralSettings>(string.Empty);
|
||||
|
||||
if (Helper.CompareVersions(GeneralSettingsConfigs.PowertoysVersion, Helper.GetProductVersion()) < 0)
|
||||
{
|
||||
// Update settings
|
||||
GeneralSettingsConfigs.PowertoysVersion = Helper.GetProductVersion();
|
||||
SettingsUtils.SaveSettings(GeneralSettingsConfigs.ToJsonString(), string.Empty);
|
||||
if (Helper.CompareVersions(GeneralSettingsConfigs.PowertoysVersion, Helper.GetProductVersion()) < 0)
|
||||
{
|
||||
// Update settings
|
||||
GeneralSettingsConfigs.PowertoysVersion = Helper.GetProductVersion();
|
||||
SettingsUtils.SaveSettings(GeneralSettingsConfigs.ToJsonString(), string.Empty);
|
||||
}
|
||||
}
|
||||
catch (FormatException e)
|
||||
{
|
||||
// If there is an issue with the version number format, don't migrate settings.
|
||||
Debug.WriteLine(e.Message);
|
||||
{
|
||||
// If there is an issue with the version number format, don't migrate settings.
|
||||
Debug.WriteLine(e.Message);
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -57,20 +60,43 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
case "light":
|
||||
_isLightThemeRadioButtonChecked = true;
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Light;
|
||||
try
|
||||
{
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Light;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
break;
|
||||
case "dark":
|
||||
_isDarkThemeRadioButtonChecked = true;
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Dark;
|
||||
try
|
||||
{
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Dark;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
break;
|
||||
case "system":
|
||||
_isSystemThemeRadioButtonChecked = true;
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Default;
|
||||
try
|
||||
{
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Default;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
_startup = GeneralSettingsConfigs.Startup;
|
||||
_autoDownloadUpdates = GeneralSettingsConfigs.AutoDownloadUpdates;
|
||||
_isElevated = ShellPage.IsElevated;
|
||||
_runElevated = GeneralSettingsConfigs.RunElevated;
|
||||
}
|
||||
|
||||
private bool _packaged = false;
|
||||
@@ -100,6 +126,26 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
public string AlwaysRunAsAdminText
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IsElevated)
|
||||
{
|
||||
return loader.GetString("GeneralSettings_AlwaysRunAsAdminText_IsElevated");
|
||||
}
|
||||
else
|
||||
{
|
||||
return loader.GetString("GeneralSettings_AlwaysRunAsAdminText_IsNotElevated");
|
||||
}
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
OnPropertyChanged("AlwaysRunAsAdminText");
|
||||
}
|
||||
}
|
||||
|
||||
// Gets or sets a value indicating whether run powertoys on start-up.
|
||||
public bool Startup
|
||||
{
|
||||
@@ -119,6 +165,26 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
public string RunningAsAdminText
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!IsElevated)
|
||||
{
|
||||
return loader.GetString("GeneralSettings_Running as Adminstrator_IsNotElevated");
|
||||
}
|
||||
else
|
||||
{
|
||||
return loader.GetString("GeneralSettings_RunningAsAdminText_IsElevated");
|
||||
}
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
OnPropertyChanged("RunningAsAdminText");
|
||||
}
|
||||
}
|
||||
|
||||
// Gets or sets a value indicating whether the powertoy elevated.
|
||||
public bool IsElevated
|
||||
{
|
||||
@@ -132,11 +198,27 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
if (_isElevated != value)
|
||||
{
|
||||
_isElevated = value;
|
||||
RaisePropertyChanged();
|
||||
OnPropertyChanged("IsElevated");
|
||||
OnPropertyChanged("IsAdminButtonEnabled");
|
||||
OnPropertyChanged("AlwaysRunAsAdminText");
|
||||
OnPropertyChanged("RunningAsAdminText");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsAdminButtonEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return !IsElevated;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
OnPropertyChanged("IsAdminButtonEnabled");
|
||||
}
|
||||
}
|
||||
|
||||
// Gets or sets a value indicating whether powertoys should run elevated.
|
||||
public bool RunElevated
|
||||
{
|
||||
@@ -150,6 +232,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
if (_runElevated != value)
|
||||
{
|
||||
_runElevated = value;
|
||||
GeneralSettingsConfigs.RunElevated = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
@@ -186,7 +269,14 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
GeneralSettingsConfigs.Theme = "dark";
|
||||
_isDarkThemeRadioButtonChecked = value;
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Dark;
|
||||
try
|
||||
{
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Dark;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
@@ -205,7 +295,14 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
GeneralSettingsConfigs.Theme = "light";
|
||||
_isLightThemeRadioButtonChecked = value;
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Light;
|
||||
try
|
||||
{
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Light;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
@@ -224,18 +321,25 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
GeneralSettingsConfigs.Theme = "system";
|
||||
_isSystemThemeRadioButtonChecked = value;
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Default;
|
||||
try
|
||||
{
|
||||
ShellPage.ShellHandler.RequestedTheme = ElementTheme.Default;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string PowerToysVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return Helper.GetProductVersion();
|
||||
}
|
||||
public string PowerToysVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return Helper.GetProductVersion();
|
||||
}
|
||||
}
|
||||
|
||||
public void RaisePropertyChanged([CallerMemberName] string propertyName = null)
|
||||
@@ -262,9 +366,9 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
OutGoingGeneralSettings outsettings = new OutGoingGeneralSettings(settings);
|
||||
GeneralSettingsCustomAction customaction = new GeneralSettingsCustomAction(outsettings);
|
||||
|
||||
if (ShellPage.DefaultSndMSGCallback != null)
|
||||
if (ShellPage.SndRestartAsAdminMsgCallback != null)
|
||||
{
|
||||
ShellPage.DefaultSndMSGCallback(customaction.ToString());
|
||||
ShellPage.SndRestartAsAdminMsgCallback(customaction.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user