mirror of
https://github.com/SpaceTimee/Sheas-Cealer.git
synced 2025-07-13 21:02:08 +08:00
80 lines
2.5 KiB
C#
80 lines
2.5 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Windows;
|
|
using System.Windows.Media;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using MaterialDesignColors;
|
|
using MaterialDesignThemes.Wpf;
|
|
using Sheas_Cealer.Consts;
|
|
using Sheas_Cealer.Props;
|
|
using File = System.IO.File;
|
|
|
|
namespace Sheas_Cealer.Preses;
|
|
|
|
internal partial class MainPres : ObservableObject
|
|
{
|
|
internal MainPres(string[] args)
|
|
{
|
|
int browserPathIndex = Array.FindIndex(args, arg => arg == "-b") + 1,
|
|
upstreamUrlIndex = Array.FindIndex(args, arg => arg == "-u") + 1,
|
|
extraArgsIndex = Array.FindIndex(args, arg => arg == "e") + 1;
|
|
|
|
BrowserPath = browserPathIndex == 0 ?
|
|
(!string.IsNullOrWhiteSpace(Settings.Default.BrowserPath) ? Settings.Default.BrowserPath : string.Empty) :
|
|
args[browserPathIndex];
|
|
|
|
UpstreamUrl = upstreamUrlIndex == 0 ?
|
|
(!string.IsNullOrWhiteSpace(Settings.Default.UpstreamUrl) ? Settings.Default.UpstreamUrl : MainConst.DefaultUpstreamUrl) :
|
|
args[upstreamUrlIndex];
|
|
|
|
ExtraArgs = extraArgsIndex == 0 ?
|
|
(!string.IsNullOrWhiteSpace(Settings.Default.ExtraArgs) ? Settings.Default.ExtraArgs : string.Empty) :
|
|
args[extraArgsIndex];
|
|
}
|
|
|
|
[ObservableProperty]
|
|
private MainConst.SettingsMode mode;
|
|
|
|
[ObservableProperty]
|
|
private bool? isLightTheme = null;
|
|
partial void OnIsLightThemeChanged(bool? value)
|
|
{
|
|
PaletteHelper paletteHelper = new();
|
|
Theme newTheme = paletteHelper.GetTheme();
|
|
newTheme.SetBaseTheme(value.HasValue ? (value.GetValueOrDefault() ? BaseTheme.Light : BaseTheme.Dark) : BaseTheme.Inherit);
|
|
paletteHelper.SetTheme(newTheme);
|
|
}
|
|
|
|
[ObservableProperty]
|
|
private string browserPath;
|
|
partial void OnBrowserPathChanged(string value)
|
|
{
|
|
if (File.Exists(value) && Path.GetFileName(value).ToLower().EndsWith(".exe"))
|
|
{
|
|
Settings.Default.BrowserPath = value;
|
|
Settings.Default.Save();
|
|
}
|
|
}
|
|
|
|
[ObservableProperty]
|
|
private string upstreamUrl;
|
|
partial void OnUpstreamUrlChanged(string value)
|
|
{
|
|
if (MainConst.UpstreamUrlRegex().IsMatch(value))
|
|
{
|
|
Settings.Default.UpstreamUrl = value;
|
|
Settings.Default.Save();
|
|
}
|
|
}
|
|
|
|
[ObservableProperty]
|
|
private string extraArgs;
|
|
partial void OnExtraArgsChanged(string value)
|
|
{
|
|
if (MainConst.ExtraArgsRegex().IsMatch(value))
|
|
{
|
|
Settings.Default.ExtraArgs = value;
|
|
Settings.Default.Save();
|
|
}
|
|
}
|
|
} |