From 74e5e6829d98c36b932c87d6b7cda09c02e23231 Mon Sep 17 00:00:00 2001 From: kianzzarrin2 Date: Tue, 28 Sep 2021 11:14:01 +0300 Subject: [PATCH] update status --- LoadOrder/UI/AssetDataGrid.cs | 1 + LoadOrder/UI/LoadOrderWindow.cs | 42 +++++++++++++++++++++++++++------ LoadOrder/UI/ModDataGrid.cs | 3 ++- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/LoadOrder/UI/AssetDataGrid.cs b/LoadOrder/UI/AssetDataGrid.cs index 3f6c041..5664ad6 100644 --- a/LoadOrder/UI/AssetDataGrid.cs +++ b/LoadOrder/UI/AssetDataGrid.cs @@ -230,6 +230,7 @@ public class AssetDataGrid : DataGridView { } else { Log.Error("unexpected column changed: " + Columns[e.ColumnIndex]?.Name); } + LoadOrderWindow.Instance.UpdateStatus(); } diff --git a/LoadOrder/UI/LoadOrderWindow.cs b/LoadOrder/UI/LoadOrderWindow.cs index 23de455..b06fe40 100644 --- a/LoadOrder/UI/LoadOrderWindow.cs +++ b/LoadOrder/UI/LoadOrderWindow.cs @@ -92,8 +92,9 @@ enum WSFilter { var modTask = InitializeModTab(); var assetTask = InitializeAssetTab(); await Task.WhenAll(modTask, assetTask); - if(!LoadOrderToolSettings.Instace.LastProfileName.IsNullorEmpty()) - LastProfileLabel.Text = $"last profile was '{LoadOrderToolSettings.Instace.LastProfileName}'"; + TabContainer.Selected += (_, __) => UpdateStatus(); + + UpdateStatus(); menuStrip.tsmiAutoSave.CheckedChanged += TsmiAutoSave_CheckedChanged; menuStrip.tsmiAutoSave.Click += TsmiAutoSave_Click; @@ -176,6 +177,8 @@ enum WSFilter { LoadOrderToolSettings.Instace.FormHeight = Height; } + + #region MenuBar private async void TsmiResetSettings_Click(object sender, EventArgs e) => await TsmiResetSettings(); private async Task TsmiResetSettings() { @@ -202,7 +205,7 @@ enum WSFilter { public void UpdateLastProfileName(string fullPath) { LoadOrderToolSettings.Instace.LastProfileName = Path.GetFileNameWithoutExtension(fullPath); LoadOrderToolSettings.Instace.Serialize(); - LastProfileLabel.Text = $"last profile was '{LoadOrderToolSettings.Instace.LastProfileName}'"; + UpdateStatus(); } private void Export_Click(object sender, EventArgs e) { @@ -229,6 +232,7 @@ enum WSFilter { bool replace = opd.DialogResult == OpenProfileDialog.RESULT_REPLACE; ApplyProfile(profile, types: opd.ItemTypes, replace: replace); if(replace) UpdateLastProfileName(ofd.FileName); + else UpdateStatus(); } } } @@ -336,8 +340,7 @@ enum WSFilter { dataGridMods.CellMouseClick += DataGridMods_CellMouseClick; - dataGridMods.VisibleChanged += (_, __) => ModCountLabel.Visible = dataGridMods.Visible; - ModCountLabel.Visible = true; + UpdateStatus(); } private void RefreshModList(object sender, EventArgs e) { @@ -477,7 +480,7 @@ enum WSFilter { dataGridAssets.CellMouseClick += DataGridAssets_CellMouseClick; - dataGridAssets.VisibleChanged += (_, __) => AssetCountLabel.Visible = dataGridAssets.Visible; + UpdateStatus(); } public async Task LoadAssetsAsync() { @@ -577,7 +580,7 @@ enum WSFilter { if (tagFilter == NO_TAGS) tagFilter = null; var words = TextFilterAsset.Text?.Split(" "); assetList.FilterItems(item => AssetPredicateFast(item, includedFilter, wsFilter, tagFilter, words)); - AssetCountLabel.Text = $"showing {assetList.Filtered.Count}/{assetList.Original.Count} assets"; + UpdateStatus(); } bool AssetPredicateFast( @@ -658,9 +661,34 @@ enum WSFilter { } #endregion + public void UpdateStatus() { + try { + ModCountLabel.Visible = TabContainer.SelectedTab == ModsTab; + if(dataGridMods.ModList is ModList modList) { + ModCountLabel.Text = $"mods " + + $"enabled:{modList.Count(mod => mod.IsEnabledPending)} " + + $"included:{modList.Count(mod => mod.IsIncludedPending)} " + + $"totlal:{modList.Count}"; + } + + AssetCountLabel.Visible = TabContainer.SelectedTab == AssetsTab; + if(dataGridAssets.AssetList is AssetList asseList) { + AssetCountLabel.Text = $"assets " + + $"included:{asseList.Original.Count(asset => asset.IsIncludedPending)} " + + $"totlal:{asseList.Original.Count}"; + } + + + string lastProfileName = LoadOrderToolSettings.Instace?.LastProfileName; + LastProfileLabel.Visible = !lastProfileName.IsNullorEmpty(); + LastProfileLabel.Text = $"Last profile was '{lastProfileName}'"; + } catch(Exception ex) { ex.Log(); } + } + public void RefreshAll() { dataGridMods.RefreshModList(); dataGridAssets.Refresh(); + UpdateStatus(); } public async Task ReloadAll() { diff --git a/LoadOrder/UI/ModDataGrid.cs b/LoadOrder/UI/ModDataGrid.cs index 2357965..196649b 100644 --- a/LoadOrder/UI/ModDataGrid.cs +++ b/LoadOrder/UI/ModDataGrid.cs @@ -191,6 +191,7 @@ public class ModDataGrid : DataGridView { } else { return; } + LoadOrderWindow.Instance.UpdateStatus(); } catch (Exception ex) { Log.Exception(ex); } @@ -340,7 +341,7 @@ public class ModDataGrid : DataGridView { } ModList.FilterIn(); PopulateMods(); - LoadOrderWindow.Instance.ModCountLabel.Text = $"showing {ModList.Filtered.Count}/{ModList.Count} mods"; + LoadOrderWindow.Instance.UpdateStatus(); } public DataGridViewRow GetRow(PluginManager.PluginInfo pluginInfo) {