gnome-subtitles r968 - in trunk: . data src/Glade src/GnomeSubtitles/Core src/GnomeSubtitles/Dialogs src/GnomeSubtitles/SubtitleEdit



Author: pcastro
Date: Sat Mar  8 12:27:44 2008
New Revision: 968
URL: http://svn.gnome.org/viewvc/gnome-subtitles?rev=968&view=rev

Log:
Allow to set the language for text and translation separately.


Modified:
   trunk/NEWS
   trunk/data/gnome-subtitles.schemas
   trunk/src/Glade/MainWindow.glade
   trunk/src/Glade/SetLanguageDialog.glade
   trunk/src/GnomeSubtitles/Core/Config.cs
   trunk/src/GnomeSubtitles/Core/EventHandlers.cs
   trunk/src/GnomeSubtitles/Core/Menus.cs
   trunk/src/GnomeSubtitles/Core/SpellLanguages.cs
   trunk/src/GnomeSubtitles/Core/WidgetNames.cs
   trunk/src/GnomeSubtitles/Dialogs/SetLanguageDialog.cs
   trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditText.cs
   trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditTextView.cs
   trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditTranslation.cs

Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS	(original)
+++ trunk/NEWS	Sat Mar  8 12:27:44 2008
@@ -1,6 +1,13 @@
 Gnome Subtitles
 ===============
 
+0.8
+===
+
+Bug fixes:
+- Crash on close of "Add or remove" encoding dialog (#520804)
+
+
 0.7.2 (06/01/2008)
 ==================
 

Modified: trunk/data/gnome-subtitles.schemas
==============================================================================
--- trunk/data/gnome-subtitles.schemas	(original)
+++ trunk/data/gnome-subtitles.schemas	Sat Mar  8 12:27:44 2008
@@ -25,17 +25,28 @@
 			</locale>
 		</schema>
 		<schema>
-			<key>/schemas/apps/gnome-subtitles/preferences/spellcheck/active_language</key>
-			<applyto>/apps/gnome-subtitles/preferences/spellcheck/active_language</applyto>
+			<key>/schemas/apps/gnome-subtitles/preferences/spellcheck/active_text_language</key>
+			<applyto>/apps/gnome-subtitles/preferences/spellcheck/active_text_language</applyto>
 			<owner>gnome-subtitles</owner>
 			<type>string</type>
 			<default></default>
 			<locale name="C">
-				<short>Active spellcheck language</short>
+				<short>Active spellcheck language for text</short>
 				<long>The language used to check the spelling of subtitle text.</long>
 			</locale>
 		</schema>
 		<schema>
+			<key>/schemas/apps/gnome-subtitles/preferences/spellcheck/active_translation_language</key>
+			<applyto>/apps/gnome-subtitles/preferences/spellcheck/active_translation_language</applyto>
+			<owner>gnome-subtitles</owner>
+			<type>string</type>
+			<default></default>
+			<locale name="C">
+				<short>Active spellcheck language for translation</short>
+				<long>The language used to check the spelling of subtitle translation.</long>
+			</locale>
+		</schema>
+		<schema>
 			<key>/schemas/apps/gnome-subtitles/preferences/spellcheck/autocheck</key>
 			<applyto>/apps/gnome-subtitles/preferences/spellcheck/autocheck</applyto>
 			<owner>gnome-subtitles</owner>

Modified: trunk/src/Glade/MainWindow.glade
==============================================================================
--- trunk/src/Glade/MainWindow.glade	(original)
+++ trunk/src/Glade/MainWindow.glade	Sat Mar  8 12:27:44 2008
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.0 on Sat Mar  1 22:54:48 2008 
+<!--Generated with glade3 3.4.0 on Sat Mar  8 12:19:09 2008 
 	Version: 3.0.1
 	Date: Thu Dec  7 16:42:10 2006
 	User: noup
@@ -73,7 +73,7 @@
                       <widget class="GtkMenuItem" id="fileTranslation">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">Translation</property>
+                        <property name="label" translatable="yes">_Translation</property>
                         <property name="use_underline">True</property>
                         <child>
                           <widget class="GtkMenu" id="fileTranslationMenu">
@@ -854,7 +854,7 @@
                 <property name="label" translatable="yes">_Tools</property>
                 <property name="use_underline">True</property>
                 <child>
-                  <widget class="GtkMenu" id="menu2">
+                  <widget class="GtkMenu" id="toolsMenu">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <child>
@@ -868,13 +868,23 @@
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkMenuItem" id="toolsSetLanguage">
+                      <widget class="GtkMenuItem" id="toolsSetTextLanguage">
                         <property name="visible">True</property>
                         <property name="sensitive">False</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">_Set Language</property>
+                        <property name="label" translatable="yes">Set _Text Language</property>
                         <property name="use_underline">True</property>
-                        <signal name="activate" handler="OnToolsSetLanguage"/>
+                        <signal name="activate" handler="OnToolsSetTextLanguage"/>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkMenuItem" id="toolsSetTranslationLanguage">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="label" translatable="yes">Set Translatio_n Language</property>
+                        <property name="use_underline">True</property>
+                        <signal name="activate" handler="OnToolsSetTranslationLanguage"/>
                       </widget>
                     </child>
                   </widget>

Modified: trunk/src/Glade/SetLanguageDialog.glade
==============================================================================
--- trunk/src/Glade/SetLanguageDialog.glade	(original)
+++ trunk/src/Glade/SetLanguageDialog.glade	Sat Mar  8 12:27:44 2008
@@ -23,7 +23,6 @@
               <widget class="GtkLabel" id="introLabel">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
-                <property name="label" translatable="yes">Select the _language of the current subtitles.</property>
                 <property name="use_underline">True</property>
                 <property name="wrap">True</property>
                 <property name="mnemonic_widget">languagesTreeView</property>

Modified: trunk/src/GnomeSubtitles/Core/Config.cs
==============================================================================
--- trunk/src/GnomeSubtitles/Core/Config.cs	(original)
+++ trunk/src/GnomeSubtitles/Core/Config.cs	Sat Mar  8 12:27:44 2008
@@ -35,7 +35,8 @@
 	
 	/* Constant key strings */
 	private const string keyPrefsEncodingsShownInMenu = keyPrefsEncodings + "shown_in_menu";
-	private const string keyPrefsSpellCheckActiveLanguage = keyPrefsSpellCheck + "active_language";
+	private const string keyPrefsSpellCheckActiveTextLanguage = keyPrefsSpellCheck + "active_text_language";
+	private const string keyPrefsSpellCheckActiveTranslationLanguage = keyPrefsSpellCheck + "active_translation_language";
 	private const string keyPrefsSpellCheckAutocheck = keyPrefsSpellCheck + "autocheck";
 	private const string keyPrefsVideoAutoChooseFile = keyPrefsVideo + "auto_choose_file";
 	private const string keyPrefsWindowHeight = keyPrefsWindow + "height";
@@ -55,9 +56,14 @@
 		set { SetStrings(keyPrefsEncodingsShownInMenu, value); }
 	}
 	
-	public string PrefsSpellCheckActiveLanguage {
-		get { return GetString(keyPrefsSpellCheckActiveLanguage, String.Empty); }
-		set { Set(keyPrefsSpellCheckActiveLanguage, value); }
+	public string PrefsSpellCheckActiveTextLanguage {
+		get { return GetString(keyPrefsSpellCheckActiveTextLanguage, String.Empty); }
+		set { Set(keyPrefsSpellCheckActiveTextLanguage, value); }
+	}
+	
+	public string PrefsSpellCheckActiveTranslationLanguage {
+		get { return GetString(keyPrefsSpellCheckActiveTranslationLanguage, String.Empty); }
+		set { Set(keyPrefsSpellCheckActiveTranslationLanguage, value); }
 	}
 	
 	public bool PrefsSpellCheckAutocheck {

Modified: trunk/src/GnomeSubtitles/Core/EventHandlers.cs
==============================================================================
--- trunk/src/GnomeSubtitles/Core/EventHandlers.cs	(original)
+++ trunk/src/GnomeSubtitles/Core/EventHandlers.cs	Sat Mar  8 12:27:44 2008
@@ -273,8 +273,12 @@
 		Global.SpellLanguages.Enabled = enabled;
 	}
 	
-	public void OnToolsSetLanguage (object o, EventArgs args) {
-		new SetLanguageDialog().Show();
+	public void OnToolsSetTextLanguage (object o, EventArgs args) {
+		new SetLanguageDialog(SubtitleTextType.Text).Show();
+	}
+	
+	public void OnToolsSetTranslationLanguage (object o, EventArgs args) {
+		new SetLanguageDialog(SubtitleTextType.Translation).Show();
 	}
 	
 	

Modified: trunk/src/GnomeSubtitles/Core/Menus.cs
==============================================================================
--- trunk/src/GnomeSubtitles/Core/Menus.cs	(original)
+++ trunk/src/GnomeSubtitles/Core/Menus.cs	Sat Mar  8 12:27:44 2008
@@ -50,8 +50,7 @@
 		SetFrameRateMenus();
 		SetActiveTimingMode(Global.TimingMode);
 		
-		SetToolsSetLanguageSensitivity(true);
-		SetToolsAutocheckSpellingSensitivity(Global.SpellLanguages.HasActiveLanguage);			
+		SetToolsAutocheckSpellingSensitivity(true);
 		SetCheckMenuItemActivity(WidgetNames.ToolsAutocheckSpelling, Global.SpellLanguages.Enabled);
 	}
 	
@@ -153,10 +152,6 @@
 		SetSensitivity(WidgetNames.SearchFindPrevious, true);
 	}
 	
-	public void SetToolsSetLanguageSensitivity (bool sensitivity) {
-		SetSensitivity(WidgetNames.ToolsSetLanguage, sensitivity);
-	}
-	
 	public void SetToolsAutocheckSpellingSensitivity (bool sensitivity) {
 		SetSensitivity(WidgetNames.ToolsAutocheckSpelling, sensitivity);
 	}
@@ -298,7 +293,8 @@
 			SetSensitivity(WidgetNames.SearchFind, true);
 			SetSensitivity(WidgetNames.SearchReplace, true);
 			/* Tools Menu */
-			SetToolsSetLanguageSensitivity(true);
+			SetSensitivity(WidgetNames.ToolsSetTextLanguage, true);
+			SetSensitivity(WidgetNames.ToolsSetTranslationLanguage, false);
 			
 			/* Toolbar */
 			SetSensitivity(WidgetNames.SaveButton, true);
@@ -323,6 +319,9 @@
 			/* Search Menu */
 			SetSensitivity(WidgetNames.SearchFindNext, false);
 			SetSensitivity(WidgetNames.SearchFindPrevious, false);
+			/* Tools Menu */
+			SetSensitivity(WidgetNames.ToolsSetTranslationLanguage, false);
+			
 			/* Toolbar */
 			SetSensitivity(WidgetNames.UndoButton, false);
 			SetSensitivity(WidgetNames.RedoButton, false);
@@ -336,6 +335,7 @@
 		SetSensitivity(WidgetNames.FileTranslationSave, sensitivity);
 		SetSensitivity(WidgetNames.FileTranslationSaveAs, sensitivity);
 		SetSensitivity(WidgetNames.FileTranslationClose, sensitivity);
+		SetSensitivity(WidgetNames.ToolsSetTranslationLanguage, sensitivity);
 		SetViewVideoSubtitlesSensitivity();
 	}
 	

Modified: trunk/src/GnomeSubtitles/Core/SpellLanguages.cs
==============================================================================
--- trunk/src/GnomeSubtitles/Core/SpellLanguages.cs	(original)
+++ trunk/src/GnomeSubtitles/Core/SpellLanguages.cs	Sat Mar  8 12:27:44 2008
@@ -29,12 +29,12 @@
 public delegate void LanguageListHandler (string langTag, string providerName, string providerDesc, string providerFile, IntPtr userdata);
 
 public class SpellLanguages {
-	private ArrayList languages = null;
-	private int activeLanguageIndex = -1;
 	private bool enabled = false;
-	
+	private ArrayList languages = null;
+	private int activeTextLanguageIndex = -1;
+	private int activeTranslationLanguageIndex = -1;
+
 	private LanguageListHandler languageListHandler = null;
-	
 
 	public SpellLanguages () {
 		languageListHandler = OnLanguageList;
@@ -43,8 +43,9 @@
 	}
 	
 	/* Events */
-	public event EventHandler LanguageChanged = null;
 	public event EventHandler ToggleEnabled = null;
+	public event EventHandler TextLanguageChanged = null;
+	public event EventHandler TranslationLanguageChanged = null;
 	
 	
 	/* Public members */
@@ -58,33 +59,30 @@
 		}
 	}
 	
-	public int ActiveLanguageIndex {
-		get { return activeLanguageIndex; }
+	public int ActiveTextLanguageIndex {
+		get { return GetActiveLanguageIndex(SubtitleTextType.Text); }
 	}
 	
-	public string ActiveLanguage {
-		get {
-			if (activeLanguageIndex == -1)
-				return String.Empty;
-			else
-				return languages[activeLanguageIndex] as string;
-		}
-		set { 
-			int index = GetActiveLanguageIndex(value);
-			activeLanguageIndex = index;
-			
-			bool isEmpty = ((index == -1) || (value == null) || (value == String.Empty));
-			string activeLanguage = (isEmpty ? String.Empty : value);
-			SetActiveLanguageInConfig(activeLanguage);
-
-			EmitLanguageChanged();
-			if (!isEmpty)
-				Global.GUI.Menus.SetToolsAutocheckSpellingSensitivity(true);
-		}
+	public int ActiveTranslationLanguageIndex {
+		get { return GetActiveLanguageIndex(SubtitleTextType.Translation); }
+	}
+	
+	public string ActiveTextLanguage {
+		get { return GetActiveLanguage(SubtitleTextType.Text); }
+		set { SetActiveLanguage(SubtitleTextType.Text, value); }
+	}
+	
+	public string ActiveTranslationLanguage {
+		get { return GetActiveLanguage(SubtitleTextType.Translation); }
+		set { SetActiveLanguage(SubtitleTextType.Translation, value); }
 	}
 	
-	public bool HasActiveLanguage {
-		get { return activeLanguageIndex != -1; }
+	public bool HasActiveTextLanguage {
+		get { return ActiveTextLanguageIndex != -1; }
+	}
+	
+	public bool HasActiveTranslationLanguage {
+		get { return ActiveTranslationLanguageIndex != -1; }
 	}
 	
 	public bool Enabled {
@@ -98,6 +96,34 @@
 		get { return enabled; }
 	}
 	
+	public int GetActiveLanguageIndex (SubtitleTextType textType) {
+		if (textType == SubtitleTextType.Text)
+			return activeTextLanguageIndex;
+		else
+			return activeTranslationLanguageIndex;
+	}
+	
+	public string GetActiveLanguage (SubtitleTextType textType) {
+		int index = GetActiveLanguageIndex(textType);
+		if (index == -1)
+			return String.Empty;
+		else
+			return languages[index] as string;
+	}
+	
+	public void SetActiveLanguage (SubtitleTextType textType, string language) {
+		int index = GetLanguageIndex(language);
+		SetActiveLanguageIndex(textType, index);
+			
+		bool isEmpty = ((index == -1) || (language == null) || (language == String.Empty));
+		string activeLanguage = (isEmpty ? String.Empty : language);
+		SetActiveLanguageInConfig(textType, activeLanguage);
+
+		EmitLanguageChanged(textType);
+		if (!isEmpty)
+			Global.GUI.Menus.SetToolsAutocheckSpellingSensitivity(true);
+	}
+	
 	
 	/* LibEnchant imports */
 	
@@ -118,7 +144,7 @@
 			Init();
 		
 		FillLanguages();
-		GetActiveLanguageFromConfig();
+		GetActiveLanguagesFromConfig();
 	}
 	
 	private void FillLanguages () {
@@ -133,30 +159,40 @@
 		languages.Sort();
 	}
 	
-	private void GetActiveLanguageFromConfig () {
-		string activeLanguage = Global.Config.PrefsSpellCheckActiveLanguage;
-		this.activeLanguageIndex = GetActiveLanguageIndex(activeLanguage);
+	private void SetActiveLanguageIndex (SubtitleTextType textType, int index) {
+		if (textType == SubtitleTextType.Text)
+			activeTextLanguageIndex = index;
+		else
+			activeTranslationLanguageIndex = index;
 	}
 	
-	private void GetEnabledFromConfig () {
-		this.enabled = Global.Config.PrefsSpellCheckAutocheck && this.HasActiveLanguage;
+	private void GetActiveLanguagesFromConfig () {
+		string activeTextLanguage = Global.Config.PrefsSpellCheckActiveTextLanguage;
+		this.activeTextLanguageIndex = GetLanguageIndex(activeTextLanguage);
 		
-		/* Check for inconsistency */
-		if (Global.Config.PrefsSpellCheckAutocheck && (!this.HasActiveLanguage))
-			Global.Config.PrefsSpellCheckAutocheck = false;
+		string activeTranslationLanguage = Global.Config.PrefsSpellCheckActiveTranslationLanguage;
+		this.activeTranslationLanguageIndex = GetLanguageIndex(activeTranslationLanguage);
 	}
 	
-	private void SetActiveLanguageInConfig (string activeLanguage) {
-		Global.Config.PrefsSpellCheckActiveLanguage = activeLanguage;
+	private void GetEnabledFromConfig () {
+		this.enabled = Global.Config.PrefsSpellCheckAutocheck;
 	}
 	
-	private int GetActiveLanguageIndex (String activeLanguage) {
-		return languages.IndexOf(activeLanguage);
+	private void SetActiveLanguageInConfig (SubtitleTextType textType, string activeLanguage) {
+		if (textType == SubtitleTextType.Text)
+			Global.Config.PrefsSpellCheckActiveTextLanguage = activeLanguage;
+		else
+			Global.Config.PrefsSpellCheckActiveTranslationLanguage = activeLanguage;
+	}
+	
+	private int GetLanguageIndex (String language) {
+		return languages.IndexOf(language);
 	}
 	
 	private void Init () {
 		languages = new ArrayList();
-		activeLanguageIndex = -1;
+		activeTextLanguageIndex = -1;
+		activeTranslationLanguageIndex = -1;
 	}
 	
 	/* Event members */
@@ -170,9 +206,21 @@
     		this.ToggleEnabled(this, EventArgs.Empty);
     }
     
-    private void EmitLanguageChanged () {
-    	if (this.LanguageChanged != null)
-    		this.LanguageChanged(this, EventArgs.Empty);
+    private void EmitLanguageChanged (SubtitleTextType textType) {
+    	if (textType == SubtitleTextType.Text)
+    		EmitTextLanguageChanged();
+    	else
+    		EmitTranslationLanguageChanged();
+    }
+    
+    private void EmitTextLanguageChanged () {
+    	if (this.TextLanguageChanged != null)
+    		this.TextLanguageChanged(this, EventArgs.Empty);
+    }
+    
+    private void EmitTranslationLanguageChanged () {
+    	if (this.TranslationLanguageChanged != null)
+    		this.TranslationLanguageChanged(this, EventArgs.Empty);
     }
 
 }

Modified: trunk/src/GnomeSubtitles/Core/WidgetNames.cs
==============================================================================
--- trunk/src/GnomeSubtitles/Core/WidgetNames.cs	(original)
+++ trunk/src/GnomeSubtitles/Core/WidgetNames.cs	Sat Mar  8 12:27:44 2008
@@ -81,7 +81,8 @@
 	
 	/* Tools Menu */
 	public const string ToolsAutocheckSpelling = "toolsAutocheckSpelling";
-	public const string ToolsSetLanguage = "toolsSetLanguage";
+	public const string ToolsSetTextLanguage = "toolsSetTextLanguage";
+	public const string ToolsSetTranslationLanguage = "toolsSetTranslationLanguage";
 
 
 	/* Toolbar */

Modified: trunk/src/GnomeSubtitles/Dialogs/SetLanguageDialog.cs
==============================================================================
--- trunk/src/GnomeSubtitles/Dialogs/SetLanguageDialog.cs	(original)
+++ trunk/src/GnomeSubtitles/Dialogs/SetLanguageDialog.cs	Sat Mar  8 12:27:44 2008
@@ -19,6 +19,8 @@
 
 using Glade;
 using Gtk;
+using Mono.Unix;
+using SubLib;
 using System;
 
 namespace GnomeSubtitles {
@@ -26,18 +28,30 @@
 public class SetLanguageDialog : GladeDialog {
 	private ListStore store = null;
 	private int colNum = 0;
+	private SubtitleTextType textType;
 
 	/* Constant strings */
 	private const string gladeFilename = "SetLanguageDialog.glade";
+	
+	/* Strings */
+	private string dialogTitleText = Catalog.GetString("Set Text Language");
+	private string dialogTitleTranslation = Catalog.GetString("Set Translation Language");
+	private string introLabelText = Catalog.GetString("Select the text _language of the current subtitles.");
+	private string introLabelTranslation = Catalog.GetString("Select the translation _language of the current subtitles.");
 
 	/* Widgets */
 	
 	[WidgetAttribute] private TreeView languagesTreeView;
+	[WidgetAttribute] private Label introLabel;
 
 
-	public SetLanguageDialog () : base(gladeFilename) {
+	public SetLanguageDialog (SubtitleTextType textType) : base(gladeFilename) {
+		this.textType = textType;
+	
+		SetDialogTitle(textType);
+		SetIntroLabel(textType);
 		FillAvailableLanguages();
-		SelectActiveLanguage();
+		SelectActiveLanguage(textType);
 	}
 
 	/* Private members */
@@ -54,21 +68,20 @@
 		languagesTreeView.Model = store;
 	}
 	
-	private void SelectActiveLanguage () {
+	private void SelectActiveLanguage (SubtitleTextType textType) {
 		int count = store.IterNChildren();
 		if (count == 0)
 			return;
 		
-		int activeLanguageIndex = GetActiveLanguageIndex(count);
-		
+		int activeLanguageIndex = GetActiveLanguageIndex(textType, count);
 		
 		TreePath path = Util.IntToPath(activeLanguageIndex);
 		languagesTreeView.ScrollToCell(path, null, true, 0.5f, 0.5f);
    		languagesTreeView.SetCursor(path, null, false);
 	}
 	
-	private int GetActiveLanguageIndex (int count) {
-		int activeLanguageIndex = Global.SpellLanguages.ActiveLanguageIndex;
+	private int GetActiveLanguageIndex (SubtitleTextType textType, int count) {
+		int activeLanguageIndex = Global.SpellLanguages.GetActiveLanguageIndex(textType);
 		/* Set active language to the first if invalid */
 		if ((activeLanguageIndex == -1) || (activeLanguageIndex >= count))
 			activeLanguageIndex = 0;
@@ -78,7 +91,7 @@
 	
 	private void SetSpellLanguage () {
 		string activeLanguage = GetSelectedLanguage();
-		Global.SpellLanguages.ActiveLanguage = activeLanguage;
+		Global.SpellLanguages.SetActiveLanguage(textType, activeLanguage);
 	}
 	
 	private string GetSelectedLanguage () {
@@ -104,6 +117,14 @@
 		return selected;
 	}
 	
+	private void SetDialogTitle (SubtitleTextType textType) {
+		dialog.Title = (textType == SubtitleTextType.Text ? dialogTitleText : dialogTitleTranslation);
+	}
+	
+	private void SetIntroLabel (SubtitleTextType textType) {
+		introLabel.TextWithMnemonic = (textType == SubtitleTextType.Text ? introLabelText : introLabelTranslation);
+	}
+	
 	/* Event handlers */
 
 	#pragma warning disable 169		//Disables warning about handlers not being used

Modified: trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditText.cs
==============================================================================
--- trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditText.cs	(original)
+++ trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditText.cs	Sat Mar  8 12:27:44 2008
@@ -1,6 +1,6 @@
 /*
  * This file is part of Gnome Subtitles.
- * Copyright (C) 2007 Pedro Castro
+ * Copyright (C) 2007-2008 Pedro Castro
  *
  * Gnome Subtitles is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -46,7 +46,14 @@
 	protected override void ExecuteDeleteCommand (int index, string text, int cursor) {
 		Global.CommandManager.Execute(new DeleteTextCommand(index, text, cursor));
 	}
-
+	
+	protected override string GetSpellActiveLanguage () {
+		return Global.SpellLanguages.ActiveTextLanguage;
+	}
+	
+	protected override void ConnectLanguageChangedSignal () {
+		Global.SpellLanguages.TextLanguageChanged += OnSpellLanguageChanged;
+	}
 }
 
 }
\ No newline at end of file

Modified: trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditTextView.cs
==============================================================================
--- trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditTextView.cs	(original)
+++ trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditTextView.cs	Sat Mar  8 12:27:44 2008
@@ -69,6 +69,8 @@
 	protected abstract string GetSubtitleTextContent (Subtitle subtitle);
 	protected abstract void ExecuteInsertCommand (int index, string insertion);
 	protected abstract void ExecuteDeleteCommand (int index, string deletion, int cursor);
+	protected abstract string GetSpellActiveLanguage ();
+	protected abstract void ConnectLanguageChangedSignal ();
 	
 	/* Events */
 	public event EventHandler ToggleOverwrite = null;
@@ -212,7 +214,10 @@
 	}
 	
 	private bool GtkSpellSetLanguage (string language) {
-		return gtkspell_set_language(spellTextView, "asdasd", IntPtr.Zero);
+		if ((language == null) || (language == String.Empty))
+			return false;
+		else
+			return gtkspell_set_language(spellTextView, language, IntPtr.Zero);
 	}
 	
 
@@ -363,20 +368,13 @@
 		bool enabled = Global.SpellLanguages.Enabled;
 		if (enabled) {
 			GtkSpellAttach();
-			string language = Global.SpellLanguages.ActiveLanguage;
+			string language = GetSpellActiveLanguage();
 			GtkSpellSetLanguage(language);
 		}
 		else
 			GtkSpellDetach();
 	}
 	
-	private void OnSpellLanguageChanged (object o, EventArgs args) {
-		if (Global.SpellLanguages.Enabled) {
-			string language = Global.SpellLanguages.ActiveLanguage;
-			GtkSpellSetLanguage(language);
-		}
-	}
-	
 	private void OnDestroyed (object o, EventArgs args) {
 		GtkSpellDetach();
 	}
@@ -419,14 +417,20 @@
 		
 		/* Spell signals */
 		Global.SpellLanguages.ToggleEnabled += OnSpellToggleEnabled;
-		Global.SpellLanguages.LanguageChanged += OnSpellLanguageChanged;
+		ConnectLanguageChangedSignal();
     }
     
     private void EmitToggleOverwrite () {
     	if (this.ToggleOverwrite != null)
     		this.ToggleOverwrite(this, EventArgs.Empty);
     }
-
+    
+    protected void OnSpellLanguageChanged (object o, EventArgs args) {
+		if (Global.SpellLanguages.Enabled) {
+			string language = GetSpellActiveLanguage();
+			GtkSpellSetLanguage(language);
+		}
+	}
 
 }
 

Modified: trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditTranslation.cs
==============================================================================
--- trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditTranslation.cs	(original)
+++ trunk/src/GnomeSubtitles/SubtitleEdit/SubtitleEditTranslation.cs	Sat Mar  8 12:27:44 2008
@@ -1,6 +1,6 @@
 /*
  * This file is part of Gnome Subtitles.
- * Copyright (C) 2007 Pedro Castro
+ * Copyright (C) 2007-2008 Pedro Castro
  *
  * Gnome Subtitles is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -46,6 +46,14 @@
 	protected override void ExecuteDeleteCommand (int index, string text, int cursor) {
 		Global.CommandManager.Execute(new DeleteTranslationCommand(index, text, cursor));
 	}
+	
+	protected override string GetSpellActiveLanguage () {
+		return Global.SpellLanguages.ActiveTranslationLanguage;
+	}
+	
+	protected override void ConnectLanguageChangedSignal () {
+		Global.SpellLanguages.TranslationLanguageChanged += OnSpellLanguageChanged;
+	}
 
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]