186 lines
6.7 KiB
C#
186 lines
6.7 KiB
C#
|
||
using Microsoft.UI.Xaml;
|
||
using Microsoft.UI.Xaml.Controls;
|
||
using RustTools.muqing;
|
||
using RustTools.ViewModels;
|
||
using Windows.Storage.Pickers;
|
||
|
||
namespace RustTools.Views;
|
||
|
||
// TODO: Set the URL for your privacy policy by updating SettingsPage_PrivacyTermsLink.NavigateUri in Resources.resw.
|
||
public sealed partial class SettingsPage : Page
|
||
{
|
||
public SettingsViewModel ViewModel
|
||
{
|
||
get;
|
||
}
|
||
public enum SystemBackdropEmnu
|
||
{
|
||
None,
|
||
}
|
||
public SettingsPage()
|
||
{
|
||
ViewModel = App.GetService<SettingsViewModel>();
|
||
InitializeComponent();
|
||
Init();
|
||
|
||
}
|
||
private async void Init()
|
||
{
|
||
var iniHelper = new IniHelper();
|
||
iniHelper.Load(IniHelper.FILE.Config);
|
||
var v = iniHelper.GetValue(IniHelper.CODE.Settings, IniHelper.KEY.SystemBackdrop);
|
||
switch (v)
|
||
{
|
||
case "None":
|
||
BackgroundRadioButtons.SelectedIndex = 0;
|
||
break;
|
||
case "Blur":
|
||
BackgroundRadioButtons.SelectedIndex = 1;
|
||
break;
|
||
case "AcrylicBlur":
|
||
BackgroundRadioButtons.SelectedIndex = 2;
|
||
break;
|
||
case "Mica":
|
||
BackgroundRadioButtons.SelectedIndex = 3;
|
||
break;
|
||
default: BackgroundRadioButtons.SelectedIndex = 0; break;
|
||
}
|
||
BackgroundRadioButtons.SelectionChanged += BackgroundColor_SelectionChanged;
|
||
ModFileUrlText.Text = iniHelper.GetValue(IniHelper.CODE.Rust, IniHelper.KEY.ModFileUrl);
|
||
MapsFileUrlText.Text = iniHelper.GetValue(IniHelper.CODE.Rust, IniHelper.KEY.MapsFileUrl);
|
||
}
|
||
private bool Backone = false;
|
||
private async void BackgroundColor_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||
{
|
||
if (Backone)
|
||
{
|
||
if (App.MainWindow != null && sender is RadioButtons rb)
|
||
{
|
||
var colorName = rb.SelectedItem as string;
|
||
var iniHelper = new IniHelper();
|
||
iniHelper.Load(IniHelper.FILE.Config);
|
||
#pragma warning disable CS8604 // 引用类型参数可能为 null。
|
||
iniHelper.SetValue(IniHelper.CODE.Settings, IniHelper.KEY.SystemBackdrop, colorName);
|
||
iniHelper.Save();
|
||
gj.SetBackTheme(App.MainWindow);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Backone = true;
|
||
}
|
||
}
|
||
|
||
private async void AutoSuggestBox_Url(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
|
||
{
|
||
var dialog = new ContentDialog
|
||
{
|
||
XamlRoot = XamlRoot,
|
||
//dialog.Style = Application.Current.Resources["DefaultContentDialogStyle"] as Style;
|
||
Title = "选择搜索模式",
|
||
SecondaryButtonText = "手动选择",
|
||
PrimaryButtonText = "自动搜索",
|
||
Content = "手动选择请找到Rusted Warfare文件目录软件会自动给你填写mod和maps路径," +
|
||
"自动搜索直到找到 Rusted Warfare 文件夹为止 途中可选择中断。"
|
||
};
|
||
//dialog.DefaultButton = ContentDialogButton.Primary;
|
||
dialog.SecondaryButtonClick += Dialog_SecondaryButtonClick;
|
||
dialog.PrimaryButtonClick += Dialog_PrimaryButtonClick;
|
||
await dialog.ShowAsync();
|
||
|
||
}
|
||
private void Dialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
|
||
{
|
||
sender.Hide();
|
||
var mod = new Mod(XamlRoot, (FileDri) =>
|
||
{
|
||
gj.sc("找到了QWQ:::" + FileDri);
|
||
var a = Path.Combine(FileDri, "mods\\units");
|
||
ModFileUrlText.Text = a;
|
||
var b = Path.Combine(FileDri, "mods\\maps");
|
||
MapsFileUrlText.Text = b;
|
||
SaveModAndMaps();
|
||
});
|
||
}
|
||
|
||
private async void Dialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
|
||
{
|
||
var openPicker = new FolderPicker();
|
||
var window = App.MainWindow;
|
||
var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(window);
|
||
WinRT.Interop.InitializeWithWindow.Initialize(openPicker, hWnd);
|
||
openPicker.SuggestedStartLocation = PickerLocationId.Desktop;
|
||
openPicker.FileTypeFilter.Add("*");
|
||
var folder = await openPicker.PickSingleFolderAsync();
|
||
if (folder != null)
|
||
{
|
||
//StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", folder);
|
||
var a = Path.Combine(folder.Path, "mods\\units");
|
||
ModFileUrlText.Text = a;
|
||
var b = Path.Combine(folder.Path, "mods\\maps");
|
||
MapsFileUrlText.Text = b;
|
||
SaveModAndMaps();
|
||
}
|
||
}
|
||
|
||
private async void SaveModAndMaps()
|
||
{
|
||
var iniHelper = new IniHelper();
|
||
iniHelper.Load(IniHelper.FILE.Config);
|
||
iniHelper.SetValue(IniHelper.CODE.Rust, IniHelper.KEY.MapsFileUrl, MapsFileUrlText.Text);
|
||
iniHelper.SetValue(IniHelper.CODE.Rust, IniHelper.KEY.ModFileUrl, ModFileUrlText.Text);
|
||
iniHelper.Save();
|
||
}
|
||
|
||
private async void ModFileUrlText_LostFocus(object sender, RoutedEventArgs e)
|
||
{
|
||
var a = (AutoSuggestBox)sender;
|
||
var iniHelper = new IniHelper();
|
||
iniHelper.Load(IniHelper.FILE.Config);
|
||
if (a.Name.Equals("MapsFileUrlText"))
|
||
{
|
||
var Url = MapsFileUrlText.Text;
|
||
if (!Directory.Exists(Url) && Url != string.Empty)
|
||
{
|
||
Url = iniHelper.GetValue(IniHelper.CODE.Rust, IniHelper.KEY.MapsFileUrl);
|
||
MapsFileUrlText.Text = Url;
|
||
}
|
||
if (Url != string.Empty)
|
||
{
|
||
Url = Path.GetFullPath(Url);
|
||
}
|
||
iniHelper.SetValue(IniHelper.CODE.Rust, IniHelper.KEY.MapsFileUrl, Url);
|
||
MapsFileUrlText.Text = Url;
|
||
}
|
||
else if (a.Name.Equals("ModFileUrlText"))
|
||
{
|
||
var Url = ModFileUrlText.Text;
|
||
if (!Directory.Exists(Url) && Url != string.Empty)
|
||
{
|
||
Url = iniHelper.GetValue(IniHelper.CODE.Rust, IniHelper.KEY.ModFileUrl);
|
||
ModFileUrlText.Text = Url;
|
||
}
|
||
if (Url != string.Empty)
|
||
{
|
||
Url = Path.GetFullPath(Url);
|
||
}
|
||
iniHelper.SetValue(IniHelper.CODE.Rust, IniHelper.KEY.ModFileUrl, Url);
|
||
ModFileUrlText.Text = Url;
|
||
}
|
||
// 获取 AutoSuggestBox 的当前文本
|
||
iniHelper.Save();
|
||
}
|
||
private async Task ModMapDialog()
|
||
{
|
||
var dialog = new ContentDialog()
|
||
{
|
||
XamlRoot = XamlRoot,
|
||
Title = "警告",
|
||
Content = "不正确的路径无法保存",
|
||
SecondaryButtonText = "取消"
|
||
};
|
||
await dialog.ShowAsync();
|
||
}
|
||
}
|