From 314f10dd8a668d4756726ad2a7542270c27ad4c1 Mon Sep 17 00:00:00 2001 From: niksedk Date: Sun, 11 Jul 2021 22:31:32 +0200 Subject: [PATCH] ASSA style manager: jump to current line style - thx Leon :) Fix #5194 --- src/ui/Forms/Assa/Styles.cs | 22 ++++++++++++++++------ src/ui/Forms/Main.cs | 4 +++- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/ui/Forms/Assa/Styles.cs b/src/ui/Forms/Assa/Styles.cs index acfd78c01..c1a9d4de3 100644 --- a/src/ui/Forms/Assa/Styles.cs +++ b/src/ui/Forms/Assa/Styles.cs @@ -56,7 +56,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa private ListView ActiveListView => _fileStyleActive ? listViewStyles : listViewStorage; - public Styles(Subtitle subtitle, SubtitleFormat format, Main mainForm) + public Styles(Subtitle subtitle, SubtitleFormat format, Main mainForm, string currentStyleName) { UiUtil.PreInitialize(this); InitializeComponent(); @@ -296,7 +296,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa buttonOK.Text = LanguageSettings.Current.General.Ok; buttonCancel.Text = LanguageSettings.Current.General.Cancel; - InitializeStylesListView(); + InitializeStylesListView(currentStyleName); listViewStorage_SelectedIndexChanged(this, EventArgs.Empty); UiUtil.FixLargeFonts(this, buttonCancel); @@ -638,7 +638,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa privateFontCollection.Dispose(); } - private void InitializeStylesListView() + private void InitializeStylesListView(string currentStyleName) { if (_currentFileStyles.Count == 0) { @@ -646,12 +646,22 @@ namespace Nikse.SubtitleEdit.Forms.Assa } listViewStyles.Items.Clear(); + var selectionSet = false; foreach (var style in _currentFileStyles) { AddStyle(listViewStyles, style, _subtitle, _isSubStationAlpha); + if (style.Name == currentStyleName) + { + listViewStyles.Items[listViewStyles.Items.Count - 1].Selected = true; + selectionSet = true; + } + else + { + listViewStyles.Items[listViewStyles.Items.Count - 1].Selected = false; + } } - if (listViewStyles.Items.Count > 0) + if (listViewStyles.Items.Count > 0 && !selectionSet) { listViewStyles.Items[0].Selected = true; } @@ -1466,7 +1476,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa if (listViewStyles.Items.Count == 0) { - InitializeStylesListView(); + InitializeStylesListView(string.Empty); } UpdateSelectedIndices(listViewStyles); @@ -1486,7 +1496,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa listViewStyles.Items.Clear(); _currentFileStyles.Clear(); - InitializeStylesListView(); + InitializeStylesListView(string.Empty); UpdateSelectedIndices(listViewStyles); } diff --git a/src/ui/Forms/Main.cs b/src/ui/Forms/Main.cs index be6f40d82..1496481bd 100644 --- a/src/ui/Forms/Main.cs +++ b/src/ui/Forms/Main.cs @@ -27934,7 +27934,9 @@ namespace Nikse.SubtitleEdit.Forms var formatType = format.GetType(); if (formatType == typeof(AdvancedSubStationAlpha)) { - using (var assaStyles = new Assa.Styles(_subtitle, format, this)) + var p = _subtitle.GetParagraphOrDefault(FirstSelectedIndex); + var currentStyleName = p == null ? string.Empty : p.Extra; + using (var assaStyles = new Assa.Styles(_subtitle, format, this, currentStyleName)) { if (assaStyles.ShowDialog(this) == DialogResult.OK) {