feat: 修改后立刻保存任务列表与基建设置

fix #1714
This commit is contained in:
uye
2022-08-31 03:01:32 +08:00
parent 4c63504d79
commit f85e918ea0
4 changed files with 25 additions and 17 deletions

View File

@@ -23,6 +23,7 @@
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True"
ItemsSource="{Binding Path=InfrastItemViewModels}"
SelectionChanged="{s:Action InfrastOrderSelectionChanged}"
ToolTip="{DynamicResource LabelSequenceTip}">
<ListBox.ItemTemplate>
<DataTemplate>

View File

@@ -528,13 +528,15 @@ namespace MeoAsstGui
}
/// <summary>
/// Saves infrast order list.
/// 实时更新基建换班顺序
/// </summary>
public void SaveInfrastOrderList()
public void InfrastOrderSelectionChanged()
{
for (int i = 0; i < InfrastItemViewModels.Count; i++)
int index = 0;
foreach (var item in InfrastItemViewModels)
{
ViewStatusStorage.Set("Infrast.Order." + InfrastItemViewModels[i].OriginalName, i.ToString());
ViewStatusStorage.Set("Infrast.Order." + item.OriginalName, index.ToString());
++index;
}
}

View File

@@ -40,6 +40,19 @@ namespace MeoAsstGui
/// </summary>
public ObservableCollection<DragItemViewModel> TaskItemViewModels { get; set; }
/// <summary>
/// 实时更新任务顺序
/// </summary>
public void TaskItemSelectionChanged()
{
int index = 0;
foreach (var item in TaskItemViewModels)
{
ViewStatusStorage.Set("TaskQueue.Order." + item.OriginalName, index.ToString());
++index;
}
}
/// <summary>
/// Gets or sets the view models of log items.
/// </summary>
@@ -666,16 +679,9 @@ namespace MeoAsstGui
Idle = false;
// 点击开始后先保存两大顺序:任务顺序和基建顺序
// TODO: optimize me: 要不要改成类似 check在拖动后保存
int index = 0;
foreach (var item in TaskItemViewModels)
{
ViewStatusStorage.Set("TaskQueue.Order." + item.OriginalName, index.ToString());
++index;
}
_container.Get<SettingsViewModel>().SaveInfrastOrderList();
// 虽然更改时已经保存过了,不过保险起见还是在点击开始之后再保存一次任务及基建列表
TaskItemSelectionChanged();
_container.Get<SettingsViewModel>().InfrastOrderSelectionChanged();
ClearLog();
@@ -912,7 +918,6 @@ namespace MeoAsstGui
{
var settings = _container.Get<SettingsViewModel>();
var order = settings.GetInfrastOrderList();
settings.SaveInfrastOrderList();
var asstProxy = _container.Get<AsstProxy>();
return asstProxy.AsstAppendInfrast(order.ToArray(),
settings.UsesOfDrones, settings.DormThreshold / 100.0, settings.DormFilterNotStationedEnabled, settings.DormTrustEnabled, settings.OriginiumShardAutoReplenishment);

View File

@@ -43,7 +43,6 @@
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<ListBox
x:Name="TaskList"
Grid.Row="0"
Width="190"
MinHeight="220"
@@ -53,6 +52,7 @@
dd:DragDrop.IsDropTarget="{Binding Idle}"
BorderThickness="0"
ItemsSource="{Binding Path=TaskItemViewModels}"
SelectionChanged="{s:Action TaskItemSelectionChanged}"
ToolTip="{DynamicResource LabelSequenceTip}">
<ListBox.ItemTemplate>
<DataTemplate>
@@ -62,7 +62,7 @@
<CheckBox
Content="{Binding Name}"
IsChecked="{Binding IsChecked}"
IsHitTestVisible="{Binding ElementName=TaskList, Path=DataContext.Idle}" />
IsHitTestVisible="{Binding Path=DataContext.Idle}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>