From f85e918ea0603766b336b65ffd004e3ac8d46a6f Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Wed, 31 Aug 2022 03:01:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E5=90=8E=E7=AB=8B?= =?UTF-8?q?=E5=88=BB=E4=BF=9D=E5=AD=98=E4=BB=BB=E5=8A=A1=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E4=B8=8E=E5=9F=BA=E5=BB=BA=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix #1714 --- .../InfrastSettingsUserControl.xaml | 1 + .../ViewModels/SettingsViewModel.cs | 10 ++++--- .../ViewModels/TaskQueueViewModel.cs | 27 +++++++++++-------- src/MeoAsstGui/Views/TaskQueueView.xaml | 4 +-- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/MeoAsstGui/UserControl/InfrastSettingsUserControl.xaml b/src/MeoAsstGui/UserControl/InfrastSettingsUserControl.xaml index 999c1ab9bb..c0074ad2f6 100644 --- a/src/MeoAsstGui/UserControl/InfrastSettingsUserControl.xaml +++ b/src/MeoAsstGui/UserControl/InfrastSettingsUserControl.xaml @@ -23,6 +23,7 @@ dd:DragDrop.IsDragSource="True" dd:DragDrop.IsDropTarget="True" ItemsSource="{Binding Path=InfrastItemViewModels}" + SelectionChanged="{s:Action InfrastOrderSelectionChanged}" ToolTip="{DynamicResource LabelSequenceTip}"> diff --git a/src/MeoAsstGui/ViewModels/SettingsViewModel.cs b/src/MeoAsstGui/ViewModels/SettingsViewModel.cs index 7c3f5bd850..00d3f48f5c 100644 --- a/src/MeoAsstGui/ViewModels/SettingsViewModel.cs +++ b/src/MeoAsstGui/ViewModels/SettingsViewModel.cs @@ -528,13 +528,15 @@ namespace MeoAsstGui } /// - /// Saves infrast order list. + /// 实时更新基建换班顺序 /// - 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; } } diff --git a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs index 18e1bb9dc8..6a8ba02d79 100644 --- a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs +++ b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs @@ -40,6 +40,19 @@ namespace MeoAsstGui /// public ObservableCollection TaskItemViewModels { get; set; } + /// + /// 实时更新任务顺序 + /// + public void TaskItemSelectionChanged() + { + int index = 0; + foreach (var item in TaskItemViewModels) + { + ViewStatusStorage.Set("TaskQueue.Order." + item.OriginalName, index.ToString()); + ++index; + } + } + /// /// Gets or sets the view models of log items. /// @@ -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().SaveInfrastOrderList(); + // 虽然更改时已经保存过了,不过保险起见还是在点击开始之后再保存一次任务及基建列表 + TaskItemSelectionChanged(); + _container.Get().InfrastOrderSelectionChanged(); ClearLog(); @@ -912,7 +918,6 @@ namespace MeoAsstGui { var settings = _container.Get(); var order = settings.GetInfrastOrderList(); - settings.SaveInfrastOrderList(); var asstProxy = _container.Get(); return asstProxy.AsstAppendInfrast(order.ToArray(), settings.UsesOfDrones, settings.DormThreshold / 100.0, settings.DormFilterNotStationedEnabled, settings.DormTrustEnabled, settings.OriginiumShardAutoReplenishment); diff --git a/src/MeoAsstGui/Views/TaskQueueView.xaml b/src/MeoAsstGui/Views/TaskQueueView.xaml index e2b4636dce..9589e14c4b 100644 --- a/src/MeoAsstGui/Views/TaskQueueView.xaml +++ b/src/MeoAsstGui/Views/TaskQueueView.xaml @@ -43,7 +43,6 @@ @@ -62,7 +62,7 @@ + IsHitTestVisible="{Binding Path=DataContext.Idle}" />