2020-04-08 01:19:14 +08:00
|
|
|
|
// Copyright (c) Microsoft Corporation
|
|
|
|
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
|
|
|
|
// See the LICENSE file in the project root for more information.
|
2020-03-27 23:58:53 +08:00
|
|
|
|
|
2020-04-18 06:25:08 +08:00
|
|
|
|
using System.Runtime.CompilerServices;
|
2020-03-27 23:58:53 +08:00
|
|
|
|
using Microsoft.PowerToys.Settings.UI.Helpers;
|
2020-04-18 06:25:08 +08:00
|
|
|
|
using Microsoft.PowerToys.Settings.UI.Lib;
|
|
|
|
|
using Microsoft.PowerToys.Settings.UI.Views;
|
2020-03-27 23:58:53 +08:00
|
|
|
|
|
|
|
|
|
namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
|
|
|
|
{
|
|
|
|
|
public class PowerRenameViewModel : Observable
|
|
|
|
|
{
|
2020-04-18 06:25:08 +08:00
|
|
|
|
private const string ModuleName = "PowerRename";
|
|
|
|
|
|
|
|
|
|
private PowerRenameSettings Settings { get; set; }
|
|
|
|
|
|
2020-03-27 23:58:53 +08:00
|
|
|
|
public PowerRenameViewModel()
|
|
|
|
|
{
|
2020-04-18 06:25:08 +08:00
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
PowerRenameLocalProperties localSettings = SettingsUtils.GetSettings<PowerRenameLocalProperties>(ModuleName, "power-rename-settings.json");
|
|
|
|
|
Settings = new PowerRenameSettings(localSettings);
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
PowerRenameLocalProperties localSettings = new PowerRenameLocalProperties();
|
|
|
|
|
Settings = new PowerRenameSettings(localSettings);
|
|
|
|
|
SettingsUtils.SaveSettings(localSettings.ToJsonString(), ModuleName, "power-rename-settings.json");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_powerRenameEnabledOnContextMenu = Settings.properties.ShowIcon.Value;
|
|
|
|
|
_powerRenameEnabledOnContextExtendedMenu = Settings.properties.ExtendedContextMenuOnly.Value;
|
|
|
|
|
_powerRenameRestoreFlagsOnLaunch = Settings.properties.PersistState.Value;
|
|
|
|
|
_powerRenameMaxDispListNumValue = Settings.properties.MaxMRUSize.Value;
|
|
|
|
|
_autoComplete = Settings.properties.MRUEnabled.Value;
|
|
|
|
|
|
|
|
|
|
GeneralSettings generalSettings;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
generalSettings = SettingsUtils.GetSettings<GeneralSettings>(string.Empty);
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
generalSettings = new GeneralSettings();
|
|
|
|
|
SettingsUtils.SaveSettings(generalSettings.ToJsonString(), string.Empty);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_powerRenameEnabled = generalSettings.Enabled.PowerRename;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private bool _powerRenameEnabled = false;
|
|
|
|
|
private bool _powerRenameEnabledOnContextMenu = false;
|
|
|
|
|
private bool _powerRenameEnabledOnContextExtendedMenu = false;
|
|
|
|
|
private bool _powerRenameRestoreFlagsOnLaunch = false;
|
|
|
|
|
private int _powerRenameMaxDispListNumValue = 0;
|
|
|
|
|
private bool _autoComplete = false;
|
|
|
|
|
|
|
|
|
|
public bool IsEnabled
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _powerRenameEnabled;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value != _powerRenameEnabled)
|
|
|
|
|
{
|
|
|
|
|
if (ShellPage.DefaultSndMSGCallback != null)
|
|
|
|
|
{
|
|
|
|
|
GeneralSettings generalSettings = SettingsUtils.GetSettings<GeneralSettings>(string.Empty);
|
|
|
|
|
generalSettings.Enabled.PowerRename = value;
|
|
|
|
|
OutGoingGeneralSettings snd = new OutGoingGeneralSettings(generalSettings);
|
|
|
|
|
ShellPage.DefaultSndMSGCallback(snd.ToString());
|
|
|
|
|
|
|
|
|
|
_powerRenameEnabled = value;
|
|
|
|
|
RaisePropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool MRUEnabled
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _autoComplete;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value != _autoComplete)
|
|
|
|
|
{
|
|
|
|
|
_autoComplete = value;
|
|
|
|
|
Settings.properties.MRUEnabled.Value = value;
|
|
|
|
|
RaisePropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool EnabledOnContextMenu
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _powerRenameEnabledOnContextMenu;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value != _powerRenameEnabledOnContextMenu)
|
|
|
|
|
{
|
|
|
|
|
_powerRenameEnabledOnContextMenu = value;
|
|
|
|
|
Settings.properties.ShowIcon.Value = value;
|
|
|
|
|
RaisePropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool EnabledOnContextExtendedMenu
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _powerRenameEnabledOnContextExtendedMenu;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value != _powerRenameEnabledOnContextExtendedMenu)
|
|
|
|
|
{
|
|
|
|
|
_powerRenameEnabledOnContextExtendedMenu = value;
|
|
|
|
|
Settings.properties.ExtendedContextMenuOnly.Value = value;
|
|
|
|
|
RaisePropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool RestoreFlagsOnLaunch
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _powerRenameRestoreFlagsOnLaunch;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value != _powerRenameRestoreFlagsOnLaunch)
|
|
|
|
|
{
|
|
|
|
|
_powerRenameRestoreFlagsOnLaunch = value;
|
|
|
|
|
Settings.properties.PersistState.Value = value;
|
|
|
|
|
RaisePropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int MaxDispListNum
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _powerRenameMaxDispListNumValue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value != _powerRenameMaxDispListNumValue)
|
|
|
|
|
{
|
|
|
|
|
_powerRenameMaxDispListNumValue = value;
|
|
|
|
|
Settings.properties.MaxMRUSize.Value = value;
|
|
|
|
|
RaisePropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void RaisePropertyChanged([CallerMemberName] string propertyName = null)
|
|
|
|
|
{
|
|
|
|
|
// Notify UI of property change
|
|
|
|
|
OnPropertyChanged(propertyName);
|
|
|
|
|
|
|
|
|
|
if (ShellPage.DefaultSndMSGCallback != null)
|
|
|
|
|
{
|
|
|
|
|
SndPowerRenameSettings snd = new SndPowerRenameSettings(Settings);
|
|
|
|
|
SndModuleSettings<SndPowerRenameSettings> ipcMessage = new SndModuleSettings<SndPowerRenameSettings>(snd);
|
|
|
|
|
ShellPage.DefaultSndMSGCallback(ipcMessage.ToJsonString());
|
|
|
|
|
}
|
2020-03-27 23:58:53 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2020-04-18 06:25:08 +08:00
|
|
|
|
}
|