[gnome-subtitles] Show line lengths according to the option in the View menu
- From: Pedro Daniel da Rocha Melo e Castro <pcastro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-subtitles] Show line lengths according to the option in the View menu
- Date: Sun, 17 Jul 2011 16:40:32 +0000 (UTC)
commit 10e0a0a5fcdaa98e00c4f8a5d7e903e2b9039769
Author: Pedro Castro <pedro gnomesubtitles org>
Date: Sun Jul 17 17:39:41 2011 +0100
Show line lengths according to the option in the View menu
Also, check the option directly in Config, not in Menus.
src/Glade/MainWindow.glade | 17 +++++----
src/GnomeSubtitles/Core/Config.cs | 18 ++++++++--
src/GnomeSubtitles/Core/EventHandlers.cs | 5 +++
.../Ui/Edit/SubtitleEditTextViewMargin.cs | 37 +++++++++++++++++--
src/GnomeSubtitles/Ui/Menus.cs | 27 +++------------
src/GnomeSubtitles/Ui/View/SubtitleView.cs | 8 ++++-
6 files changed, 74 insertions(+), 38 deletions(-)
---
diff --git a/src/Glade/MainWindow.glade b/src/Glade/MainWindow.glade
index 3d20921..bb035ca 100644
--- a/src/Glade/MainWindow.glade
+++ b/src/Glade/MainWindow.glade
@@ -247,8 +247,8 @@
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="OnEditRedo"/>
- <accelerator key="Z" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
<accelerator key="Y" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <accelerator key="Z" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</widget>
</child>
<child>
@@ -506,6 +506,7 @@
<property name="visible">True</property>
<property name="label" translatable="yes">_Line Lengths</property>
<property name="use_underline">True</property>
+ <signal name="toggled" handler="OnViewLineLengthsToggled"/>
</widget>
</child>
<child>
@@ -586,8 +587,8 @@
<property name="label" translatable="yes">Find Ne_xt</property>
<property name="use_underline">True</property>
<signal name="activate" handler="OnSearchFindNext"/>
- <accelerator key="g" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="F3" signal="activate"/>
+ <accelerator key="g" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</widget>
</child>
<child>
@@ -597,8 +598,8 @@
<property name="label" translatable="yes">Find Pre_vious</property>
<property name="use_underline">True</property>
<signal name="activate" handler="OnSearchFindPrevious"/>
- <accelerator key="g" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
<accelerator key="F3" signal="activate" modifiers="GDK_SHIFT_MASK"/>
+ <accelerator key="g" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</widget>
</child>
<child>
@@ -842,8 +843,8 @@
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="OnVideoPlayPause"/>
- <accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="F5" signal="activate"/>
+ <accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<child internal-child="image">
<widget class="GtkImage" id="videoPlayPauseImage">
<property name="visible">True</property>
@@ -870,8 +871,8 @@
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="OnVideoRewind"/>
- <accelerator key="k" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="F6" signal="activate"/>
+ <accelerator key="k" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<child internal-child="image">
<widget class="GtkImage" id="videoRewindImage">
<property name="visible">True</property>
@@ -889,8 +890,8 @@
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="OnVideoForward"/>
- <accelerator key="l" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="F7" signal="activate"/>
+ <accelerator key="l" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<child internal-child="image">
<widget class="GtkImage" id="videoForwardImage">
<property name="visible">True</property>
@@ -930,8 +931,8 @@
<property name="label" translatable="yes">Seek _to Selection</property>
<property name="use_underline">True</property>
<signal name="activate" handler="OnVideoSeekToSelection"/>
- <accelerator key="r" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
<accelerator key="F4" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
+ <accelerator key="r" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</widget>
</child>
<child>
@@ -941,8 +942,8 @@
<property name="label" translatable="yes">Select Nearest Subtitle</property>
<property name="use_underline">True</property>
<signal name="activate" handler="OnVideoSelectNearestSubtitle"/>
- <accelerator key="F4" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="r" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <accelerator key="F4" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</widget>
</child>
<child>
diff --git a/src/GnomeSubtitles/Core/Config.cs b/src/GnomeSubtitles/Core/Config.cs
index d7c8be1..54ff8bf 100644
--- a/src/GnomeSubtitles/Core/Config.cs
+++ b/src/GnomeSubtitles/Core/Config.cs
@@ -79,6 +79,8 @@ public class Config {
private const string keyPrefsTimingsTimeBetweenSubtitles = keyPrefsTimings + "time_between_subs";
/* Cached values */
+ private bool isValuePrefsViewLineLengthsCached = false;
+ private bool valuePrefsViewLineLengths = false;
private bool isValuePrefsVideoApplyReactionDelayCached = false;
private bool valuePrefsVideoApplyReactionDelay = false;
private int valuePrefsVideoReactionDelay = -1;
@@ -181,10 +183,20 @@ public class Config {
}
public bool PrefsViewLineLengths {
- get { return GetBool(keyPrefsViewLineLengths, true); }
- set { Set(keyPrefsViewLineLengths, value); }
+ get {
+ if (!isValuePrefsViewLineLengthsCached) {
+ this.valuePrefsViewLineLengths = GetBool(keyPrefsViewLineLengths, true);
+ this.isValuePrefsViewLineLengthsCached = true;
+ }
+ return valuePrefsViewLineLengths;
+ }
+ set {
+ Set(keyPrefsViewLineLengths, value);
+ this.valuePrefsViewLineLengths = value;
+ this.isValuePrefsViewLineLengthsCached = true;
+ }
}
-
+
public int PrefsWindowHeight {
get { return GetInt(keyPrefsWindowHeight, 600, 200, true, 0, false); }
set { Set(keyPrefsWindowHeight, value); }
diff --git a/src/GnomeSubtitles/Core/EventHandlers.cs b/src/GnomeSubtitles/Core/EventHandlers.cs
index 9ec7ad3..014fc54 100644
--- a/src/GnomeSubtitles/Core/EventHandlers.cs
+++ b/src/GnomeSubtitles/Core/EventHandlers.cs
@@ -184,6 +184,11 @@ public class EventHandlers {
if ((o as RadioMenuItem).Active)
Base.TimingMode = TimingMode.Frames;
}
+
+ public void OnViewLineLengthsToggled (object o, EventArgs args) {
+ CheckMenuItem menuItem = o as CheckMenuItem;
+ Base.Config.PrefsViewLineLengths = menuItem.Active;
+ }
public void OnViewVideo (object o, EventArgs args) {
if ((o as CheckMenuItem).Active)
diff --git a/src/GnomeSubtitles/Ui/Edit/SubtitleEditTextViewMargin.cs b/src/GnomeSubtitles/Ui/Edit/SubtitleEditTextViewMargin.cs
index 3326893..af067a8 100644
--- a/src/GnomeSubtitles/Ui/Edit/SubtitleEditTextViewMargin.cs
+++ b/src/GnomeSubtitles/Ui/Edit/SubtitleEditTextViewMargin.cs
@@ -150,6 +150,26 @@ public class SubtitleEditTextViewMargin {
private void Refresh () {
textView.QueueDraw();
}
+
+ private void HideMarginWindow () {
+ this.textView.SetBorderWindowSize(TextWindowType.Right, 0);
+ }
+
+ private void Enable () {
+ textView.ExposeEvent += OnExposeEvent;
+ textView.Buffer.Changed += OnBufferChanged; //To calculate margin digit count (based on the largest line char count)
+ textView.StateChanged += OnStateChanged;
+
+ Refresh();
+ }
+
+ private void Disable () {
+ textView.ExposeEvent -= OnExposeEvent;
+ textView.Buffer.Changed -= OnBufferChanged; //To calculate margin digit count (based on the largest line char count)
+ textView.StateChanged -= OnStateChanged;
+
+ HideMarginWindow();
+ }
/* Event members */
@@ -168,10 +188,11 @@ public class SubtitleEditTextViewMargin {
this.textLayout.GetPixelSize(out this.marginCharWidth, out marginCharHeight);
/* Events */
- textView.ExposeEvent += OnExposeEvent;
- textView.Buffer.Changed += OnBufferChanged; //To calculate margin digit count (based on the largest line char count)
textView.StyleSet += OnStyleSet; //To update colors if the style is changed
- textView.StateChanged += OnStateChanged;
+ (Base.Ui.Menus.GetMenuItem(WidgetNames.ViewLineLengths) as CheckMenuItem).Toggled += OnViewLineLengthsToggled;
+ if (Base.Config.PrefsViewLineLengths) {
+ Enable();
+ }
}
private void OnExposeEvent (object o, ExposeEventArgs args) {
@@ -192,9 +213,17 @@ public class SubtitleEditTextViewMargin {
private void OnStateChanged (object o, StateChangedArgs args) {
TextView textView = o as TextView;
if (textView.State == StateType.Insensitive) {
- textView.SetBorderWindowSize(TextWindowType.Right, 0); //Don't show the margin if the text view is insensitive
+ HideMarginWindow();
}
}
+
+ private void OnViewLineLengthsToggled (object o, EventArgs args) {
+ CheckMenuItem menuItem = o as CheckMenuItem;
+ if (menuItem.Active)
+ Enable();
+ else
+ Disable();
+ }
}
diff --git a/src/GnomeSubtitles/Ui/Menus.cs b/src/GnomeSubtitles/Ui/Menus.cs
index dd69a07..25db2d5 100644
--- a/src/GnomeSubtitles/Ui/Menus.cs
+++ b/src/GnomeSubtitles/Ui/Menus.cs
@@ -31,9 +31,6 @@ public class Menus {
/* Constant strings */
private string videoTagText = Catalog.GetString("Video");
-
- /* Stored values */
- private bool viewLineLengthsEnabled = false;
public Menus () {
SetToolbarHomogeneity(); //TODO needed until homogeneity definition in glade starts working
@@ -58,10 +55,6 @@ public class Menus {
}
}
- public bool ViewLineLengthsEnabled {
- get { return viewLineLengthsEnabled; }
- }
-
/* Public methods */
@@ -125,6 +118,10 @@ public class Menus {
}
}
}
+
+ public MenuItem GetMenuItem (string widgetName) {
+ return Base.GetWidget(WidgetNames.ViewLineLengths) as MenuItem;
+ }
/* Private members */
@@ -165,10 +162,7 @@ public class Menus {
private void SetBlankActivity () {
SetCheckMenuItemActivity(WidgetNames.ToolsAutocheckSpelling, Base.SpellLanguages.Enabled);
-
- /* Set View Line Lengths */
- this.viewLineLengthsEnabled = Base.Config.PrefsViewLineLengths;
- SetCheckMenuItemActivity(WidgetNames.ViewLineLengths, this.viewLineLengthsEnabled);
+ SetCheckMenuItemActivity(WidgetNames.ViewLineLengths, Base.Config.PrefsViewLineLengths);
}
private void SetViewVideoActivity (bool activity) {
@@ -523,8 +517,6 @@ public class Menus {
Base.CommandManager.UndoToggled += OnCommandManagerUndoToggled;
Base.CommandManager.RedoToggled += OnCommandManagerRedoToggled;
Base.CommandManager.CommandActivated += OnCommandManagerCommandActivated;
-
- (Base.GetWidget(WidgetNames.ViewLineLengths) as CheckMenuItem).Toggled += OnViewLineLengthsToggled;
}
private void OnBaseDocumentLoaded (Document document) {
@@ -648,15 +640,6 @@ public class Menus {
menuItem.Toggled -= handler;
}
}
-
- private void OnViewLineLengthsToggled (object o, EventArgs args) {
- bool newValue = ((o as CheckMenuItem).Active);
- if (newValue != viewLineLengthsEnabled) {
- viewLineLengthsEnabled = newValue;
- Base.Config.PrefsViewLineLengths = newValue;
- Base.Ui.View.Refresh();
- }
- }
}
diff --git a/src/GnomeSubtitles/Ui/View/SubtitleView.cs b/src/GnomeSubtitles/Ui/View/SubtitleView.cs
index 0822879..6d4b296 100644
--- a/src/GnomeSubtitles/Ui/View/SubtitleView.cs
+++ b/src/GnomeSubtitles/Ui/View/SubtitleView.cs
@@ -353,7 +353,7 @@ public class SubtitleView {
GetStyleMarkup(subtitleStyle, ref stylePrefix, ref styleSuffix);
bool first = true;
- bool viewLineLengths = Base.Ui.Menus.ViewLineLengthsEnabled;
+ bool viewLineLengths = Base.Config.PrefsViewLineLengths;
foreach (string line in subtitleText) {
textMarkup += (first ? String.Empty : "\n") + stylePrefix + GLib.Markup.EscapeText(line) + styleSuffix + (viewLineLengths ? " <span size=\"small\"><sup>(" + line.Length + ")</sup></span>" : String.Empty);
if (first)
@@ -389,6 +389,8 @@ public class SubtitleView {
Base.TranslationLoaded += OnBaseTranslationLoaded;
Base.TranslationUnloaded += OnBaseTranslationUnloaded;
Base.TimingModeChanged += OnBaseTimingModeChanged;
+
+ (Base.Ui.Menus.GetMenuItem(WidgetNames.ViewLineLengths) as CheckMenuItem).Toggled += OnViewLineLengthsToggled;
}
private void OnBaseDocumentLoaded (Document document) {
@@ -443,6 +445,10 @@ public class SubtitleView {
private void SetEmptyModel () {
tree.Model = new ListStore(typeof(Subtitle));
}
+
+ private void OnViewLineLengthsToggled (object o, EventArgs args) {
+ Refresh();
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]