mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-03-15 07:43:20 +08:00
新增一条龙配置的重命名与删除 (#2658)
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<UserControl x:Class="BetterGenshinImpact.View.Pages.OneDragonFlowPage"
|
<UserControl x:Class="BetterGenshinImpact.View.Pages.OneDragonFlowPage"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
|
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
|
||||||
@@ -222,6 +222,7 @@
|
|||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="Auto" />
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="Auto" />
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="Auto" />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<TextBlock Grid.Column="0"
|
<TextBlock Grid.Column="0"
|
||||||
FontSize="16"
|
FontSize="16"
|
||||||
@@ -248,10 +249,16 @@
|
|||||||
Margin="0,0,10,0"
|
Margin="0,0,10,0"
|
||||||
Icon="{ui:SymbolIcon Add24}"
|
Icon="{ui:SymbolIcon Add24}"
|
||||||
Command="{Binding AddConfigCommand}" />
|
Command="{Binding AddConfigCommand}" />
|
||||||
<!--<ui:Button Grid.Column="3"
|
<ui:Button
|
||||||
Icon="{ui:SymbolIcon Save24}"
|
Grid.Column="3"
|
||||||
Command="{Binding SaveConfigurationCommand}"
|
Margin="0,0,10,0"
|
||||||
Content="保存配置" />-->
|
Icon="{ui:SymbolIcon Edit24}"
|
||||||
|
Command="{Binding RenameConfigCommand}" />
|
||||||
|
<ui:Button
|
||||||
|
Grid.Column="4"
|
||||||
|
Margin="0,0,10,0"
|
||||||
|
Icon="{ui:SymbolIcon Delete24}"
|
||||||
|
Command="{Binding DeleteConfigCommand}" />
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Margin="0,5,0,0" BorderThickness="0,1,0,0" />
|
<Separator Margin="0,5,0,0" BorderThickness="0,1,0,0" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BetterGenshinImpact.Model;
|
using BetterGenshinImpact.Model;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
@@ -738,4 +738,122 @@ public partial class OneDragonFlowViewModel : ViewModel
|
|||||||
|
|
||||||
SaveConfig();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void DeleteConfig()
|
||||||
|
{
|
||||||
|
if (SelectedConfig == null)
|
||||||
|
{
|
||||||
|
Toast.Warning("请先选择要删除的配置");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = System.Windows.MessageBox.Show($"确定要删除配置「{SelectedConfig.Name}」吗?", "删除配置", System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxImage.Question);
|
||||||
|
if (result != System.Windows.MessageBoxResult.Yes)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 删除对应的JSON文件
|
||||||
|
var configFile = Path.Combine(OneDragonFlowConfigFolder, $"{SelectedConfig.Name}.json");
|
||||||
|
if (File.Exists(configFile))
|
||||||
|
{
|
||||||
|
File.Delete(configFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 从列表中移除
|
||||||
|
ConfigList.Remove(SelectedConfig);
|
||||||
|
|
||||||
|
// 如果列表为空,创建默认配置
|
||||||
|
if (ConfigList.Count == 0)
|
||||||
|
{
|
||||||
|
var defaultConfig = new OneDragonFlowConfig
|
||||||
|
{
|
||||||
|
Name = "默认配置"
|
||||||
|
};
|
||||||
|
ConfigList.Add(defaultConfig);
|
||||||
|
SelectedConfig = defaultConfig;
|
||||||
|
WriteConfig(defaultConfig);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 如果还有其他配置,选中第一个
|
||||||
|
SelectedConfig = ConfigList[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新全局配置名称
|
||||||
|
TaskContext.Instance().Config.SelectedOneDragonFlowConfigName = SelectedConfig.Name;
|
||||||
|
|
||||||
|
// 刷新任务列表
|
||||||
|
LoadDisplayTaskListFromConfig();
|
||||||
|
|
||||||
|
// 保存配置
|
||||||
|
SaveConfig();
|
||||||
|
|
||||||
|
Toast.Success("配置删除成功");
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_logger.LogError(e, "删除配置时失败");
|
||||||
|
Toast.Error("删除配置时失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void RenameConfig()
|
||||||
|
{
|
||||||
|
if (SelectedConfig == null)
|
||||||
|
{
|
||||||
|
Toast.Warning("请先选择要重命名的配置");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var newName = PromptDialog.Prompt("请输入新的配置名称", "重命名配置", SelectedConfig.Name);
|
||||||
|
if (string.IsNullOrEmpty(newName))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newName == SelectedConfig.Name)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ConfigList.Any(x => x.Name == newName))
|
||||||
|
{
|
||||||
|
Toast.Warning($"配置名称「{newName}」已存在,请使用其他名称");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 保存旧名称
|
||||||
|
var oldName = SelectedConfig.Name;
|
||||||
|
|
||||||
|
// 更新配置名称
|
||||||
|
SelectedConfig.Name = newName;
|
||||||
|
|
||||||
|
// 先写入新文件
|
||||||
|
WriteConfig(SelectedConfig);
|
||||||
|
|
||||||
|
// 写入成功后再删除旧文件
|
||||||
|
var oldConfigFile = Path.Combine(OneDragonFlowConfigFolder, $"{oldName}.json");
|
||||||
|
if (File.Exists(oldConfigFile))
|
||||||
|
{
|
||||||
|
File.Delete(oldConfigFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新全局配置名称
|
||||||
|
TaskContext.Instance().Config.SelectedOneDragonFlowConfigName = newName;
|
||||||
|
|
||||||
|
Toast.Success("配置重命名成功");
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_logger.LogError(e, "重命名配置时失败");
|
||||||
|
Toast.Error("重命名配置时失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user