orca r3436 - in trunk: . src/orca



Author: richb
Date: Tue Jan  8 21:54:15 2008
New Revision: 3436
URL: http://svn.gnome.org/viewvc/orca?rev=3436&view=rev

Log:
        * src/orca/orca-setup.glade:
          src/orca/orca_gui_prefs.py:
          Fixed bug #463867 - Source display and Target display should 
          self-populate in Orca Prefs dialog. 
          (Tag-team effort with Joanie - thanks!)


Modified:
   trunk/ChangeLog
   trunk/src/orca/orca-setup.glade
   trunk/src/orca/orca_gui_prefs.py

Modified: trunk/src/orca/orca-setup.glade
==============================================================================
--- trunk/src/orca/orca-setup.glade	(original)
+++ trunk/src/orca/orca-setup.glade	Tue Jan  8 21:54:15 2008
@@ -1252,8 +1252,8 @@
 				  <property name="wrap">False</property>
 				  <property name="adjustment">10 1 9999 1 10 10</property>
 				  <accessibility>
-				    <atkrelation target="speakProgressBarLabel" type="labelled-by"/>
 				    <atkrelation target="speakProgressBarUnitsLabel" type="labelled-by"/>
+				    <atkrelation target="speakProgressBarLabel" type="labelled-by"/>
 				  </accessibility>
 				  <signal name="value_changed" handler="speakProgressBarValueChanged" last_modification_time="Thu, 14 Jun 2007 15:09:00 GMT"/>
 				</widget>
@@ -3366,8 +3366,8 @@
 							  <property name="wrap">False</property>
 							  <property name="adjustment">1 24 256 1 10 10</property>
 							  <accessibility>
-							    <atkrelation target="magCursorSizeUnitsLabel" type="labelled-by"/>
 							    <atkrelation target="magCursorSizeLabel" type="labelled-by"/>
+							    <atkrelation target="magCursorSizeUnitsLabel" type="labelled-by"/>
 							  </accessibility>
 							  <signal name="value_changed" handler="magCursorSizeValueChanged" last_modification_time="Wed, 03 May 2006 15:31:48 GMT"/>
 							</widget>
@@ -3719,8 +3719,8 @@
 							  <property name="wrap">False</property>
 							  <property name="adjustment">1 1 256 1 10 10</property>
 							  <accessibility>
-							    <atkrelation target="magCrossHairSizeUnitsLabel" type="labelled-by"/>
 							    <atkrelation target="magCrossHairSizeLabel" type="labelled-by"/>
+							    <atkrelation target="magCrossHairSizeUnitsLabel" type="labelled-by"/>
 							  </accessibility>
 							  <signal name="value_changed" handler="magCrossHairSizeValueChanged" last_modification_time="Wed, 03 May 2006 15:39:23 GMT"/>
 							</widget>
@@ -4157,8 +4157,8 @@
 						  <property name="wrap">False</property>
 						  <property name="adjustment">0 0 100 1 10 10</property>
 						  <accessibility>
-						    <atkrelation target="magEdgeMarginLabel" type="labelled-by"/>
 						    <atkrelation target="magEdgeMarginUnitsLabel" type="labelled-by"/>
+						    <atkrelation target="magEdgeMarginLabel" type="labelled-by"/>
 						  </accessibility>
 						  <signal name="value_changed" handler="magEdgeMarginValueChanged" last_modification_time="Thu, 06 Dec 2007 22:57:50 GMT"/>
 						</widget>
@@ -6065,15 +6065,15 @@
 		      <property name="column_spacing">20</property>
 
 		      <child>
-			<widget class="GtkHBox" id="hbox51">
+			<widget class="GtkHBox" id="hbox52">
 			  <property name="visible">True</property>
 			  <property name="homogeneous">False</property>
 			  <property name="spacing">3</property>
 
 			  <child>
-			    <widget class="GtkLabel" id="magSourceDisplayLabel">
+			    <widget class="GtkLabel" id="magTargetDisplayLabel">
 			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">S_ource display:</property>
+			      <property name="label" translatable="yes">Target displa_y:</property>
 			      <property name="use_underline">True</property>
 			      <property name="use_markup">False</property>
 			      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -6083,13 +6083,13 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
-			      <property name="mnemonic_widget">magSourceDisplayEntry</property>
+			      <property name="mnemonic_widget">magTargetDisplayEntry</property>
 			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 			      <property name="width_chars">-1</property>
 			      <property name="single_line_mode">False</property>
 			      <property name="angle">0</property>
 			      <accessibility>
-				<atkrelation target="magSourceDisplayEntry" type="label-for"/>
+				<atkrelation target="magTargetDisplayEntry" type="label-for"/>
 			      </accessibility>
 			    </widget>
 			    <packing>
@@ -6100,46 +6100,45 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkEntry" id="magSourceDisplayEntry">
+			    <widget class="GtkComboBoxEntry" id="magTargetDisplayEntry">
+			      <property name="width_request">89</property>
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="editable">True</property>
-			      <property name="visibility">True</property>
-			      <property name="max_length">0</property>
-			      <property name="text"></property>
+			      <property name="add_tearoffs">False</property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char">*</property>
-			      <property name="activates_default">False</property>
+			      <property name="focus_on_click">True</property>
 			      <accessibility>
-				<atkrelation target="magSourceDisplayLabel" type="labelled-by"/>
+				<atkrelation target="magTargetDisplayLabel" type="labelled-by"/>
 			      </accessibility>
-			      <signal name="changed" handler="magSourceDisplayChanged" last_modification_time="Tue, 19 Sep 2006 19:53:43 GMT"/>
+			      <signal name="changed" handler="magTargetDisplayChanged" last_modification_time="Wed, 02 Jan 2008 21:16:20 GMT"/>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			      <property name="pack_type">GTK_PACK_END</property>
 			    </packing>
 			  </child>
 			</widget>
 			<packing>
-			  <property name="left_attach">0</property>
-			  <property name="right_attach">1</property>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
 			  <property name="top_attach">0</property>
 			  <property name="bottom_attach">1</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options">fill</property>
 			</packing>
 		      </child>
 
 		      <child>
-			<widget class="GtkHBox" id="hbox52">
+			<widget class="GtkHBox" id="hbox51">
 			  <property name="visible">True</property>
 			  <property name="homogeneous">False</property>
 			  <property name="spacing">3</property>
 
 			  <child>
-			    <widget class="GtkLabel" id="magTargetDisplayLabel">
+			    <widget class="GtkLabel" id="magSourceDisplayLabel">
 			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Target displa_y:</property>
+			      <property name="label" translatable="yes">S_ource display:</property>
 			      <property name="use_underline">True</property>
 			      <property name="use_markup">False</property>
 			      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -6149,13 +6148,13 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
-			      <property name="mnemonic_widget">magTargetDisplayEntry</property>
+			      <property name="mnemonic_widget">magSourceDisplayEntry</property>
 			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 			      <property name="width_chars">-1</property>
 			      <property name="single_line_mode">False</property>
 			      <property name="angle">0</property>
 			      <accessibility>
-				<atkrelation target="magTargetDisplayEntry" type="label-for"/>
+				<atkrelation target="magSourceDisplayEntry" type="label-for"/>
 			      </accessibility>
 			    </widget>
 			    <packing>
@@ -6166,33 +6165,31 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkEntry" id="magTargetDisplayEntry">
+			    <widget class="GtkComboBoxEntry" id="magSourceDisplayEntry">
+			      <property name="width_request">89</property>
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="editable">True</property>
-			      <property name="visibility">True</property>
-			      <property name="max_length">0</property>
-			      <property name="text"></property>
+			      <property name="add_tearoffs">False</property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char">*</property>
-			      <property name="activates_default">False</property>
+			      <property name="focus_on_click">True</property>
 			      <accessibility>
-				<atkrelation target="magTargetDisplayLabel" type="labelled-by"/>
+				<atkrelation target="magSourceDisplayLabel" type="labelled-by"/>
 			      </accessibility>
-			      <signal name="changed" handler="magTargetDisplayChanged" last_modification_time="Tue, 19 Sep 2006 19:54:09 GMT"/>
+			      <signal name="changed" handler="magSourceDisplayChanged" last_modification_time="Wed, 02 Jan 2008 21:16:33 GMT"/>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			      <property name="pack_type">GTK_PACK_END</property>
 			    </packing>
 			  </child>
 			</widget>
 			<packing>
-			  <property name="left_attach">1</property>
-			  <property name="right_attach">2</property>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
 			  <property name="top_attach">0</property>
 			  <property name="bottom_attach">1</property>
+			  <property name="x_options">fill</property>
 			  <property name="y_options">fill</property>
 			</packing>
 		      </child>

Modified: trunk/src/orca/orca_gui_prefs.py
==============================================================================
--- trunk/src/orca/orca_gui_prefs.py	(original)
+++ trunk/src/orca/orca_gui_prefs.py	Tue Jan  8 21:54:15 2008
@@ -1262,8 +1262,8 @@
         display = gtk.gdk.display_get_default()
         nScreens = display.get_n_screens()
         targetScreen = display.get_default_screen()
-        targetDisplay = \
-          orca_state.advancedMag.get_widget("magTargetDisplayEntry").get_text()
+        targetDisplay = orca_state.advancedMag.get_widget(\
+                             "magTargetDisplayEntry").get_active_text()
         if targetDisplay:
             t = targetDisplay.split(".")
             try:
@@ -1289,9 +1289,11 @@
             0, targetHeight, 
             1,
             targetHeight / 16, targetHeight)
-        self.get_widget("magZoomerTopSpinButton").set_adjustment(adjustment)
+
+        spinButton = orca_state.orcaOS.get_widget("magZoomerTopSpinButton")
+        spinButton.set_adjustment(adjustment)
         if topPosition > targetHeight:
-            self.get_widget("magZoomerTopSpinButton").update()
+            spinButton.update()
 
         # Get the zoomer placement left preference and set the left spin
         # button value accordingly. Set the left spin button "max size" to
@@ -1304,9 +1306,11 @@
             0, targetWidth, 
             1,
             targetWidth / 16, targetWidth)
-        self.get_widget("magZoomerLeftSpinButton").set_adjustment(adjustment)
+
+        spinButton = orca_state.orcaOS.get_widget("magZoomerLeftSpinButton")
+        spinButton.set_adjustment(adjustment)
         if leftPosition > targetWidth:
-            self.get_widget("magZoomerLeftSpinButton").update()
+            spinButton.update()
 
         # Get the zoomer placement right preference and set the right spin
         # button value accordingly. Set the right spin button "max size" to
@@ -1319,9 +1323,11 @@
             0, targetWidth, 
             1,
             targetWidth / 16, targetWidth)
-        self.get_widget("magZoomerRightSpinButton").set_adjustment(adjustment)
+
+        spinButton = orca_state.orcaOS.get_widget("magZoomerRightSpinButton")
+        spinButton.set_adjustment(adjustment)
         if rightPosition > targetWidth:
-            self.get_widget("magZoomerRightSpinButton").update()
+            spinButton.update()
 
         # Get the zoomer placement bottom preference and set the bottom
         # spin button value accordingly. Set the bottom spin button "max size"
@@ -1334,9 +1340,11 @@
             0, targetHeight, 
             1,
             targetHeight / 16, targetHeight)
-        self.get_widget("magZoomerBottomSpinButton").set_adjustment(adjustment)
+
+        spinButton = orca_state.orcaOS.get_widget("magZoomerBottomSpinButton")
+        spinButton.set_adjustment(adjustment)
         if bottomPosition > targetHeight:
-            self.get_widget("magZoomerBottomSpinButton").update()
+            spinButton.update()
 
     def _initGUIState(self):
         """Adjust the settings of the various components on the
@@ -1547,8 +1555,8 @@
         display = gtk.gdk.display_get_default()
         nScreens = display.get_n_screens()
         sourceScreen = display.get_default_screen()
-        sourceDisplay = \
-          orca_state.advancedMag.get_widget("magSourceDisplayEntry").get_text()
+        sourceDisplay = orca_state.advancedMag.get_widget(\
+                              "magSourceDisplayEntry").get_active_text()
         if sourceDisplay:
             s = sourceDisplay.split(".")
             try:
@@ -1733,7 +1741,7 @@
 
         self.enableLiveUpdating = liveUpdating
 
-    def getComboBoxIndex(self, combobox, searchStr):
+    def getComboBoxIndex(self, combobox, searchStr, col=0):
         """ For each of the entries in the given combo box, look for searchStr.
             Return the index of the entry if searchStr is found.
 
@@ -1748,7 +1756,7 @@
         model = combobox.get_model()
         myiter = model.get_iter_first()
         for i in range(0, len(model)):
-            name = model.get_value(myiter, 0)
+            name = model.get_value(myiter, col)
             if name == searchStr:
                 return i
             myiter = model.iter_next(myiter)
@@ -1804,6 +1812,12 @@
         model = gtk.ListStore(int, str)
         combobox.set_model(model)
 
+        # Force the display comboboxes to be left aligned.
+        #
+        if isinstance(combobox, gtk.ComboBoxEntry):
+            size = combobox.size_request()
+            cell.set_fixed_size(size[0] - 29, -1)
+
         return model
 
     def _setKeyEchoItems(self):
@@ -3705,6 +3719,8 @@
         # To make pylint happy.
         #
         self.savedSettings = None
+        self.sourceDisplayModel = None
+        self.targetDisplayModel = None
 
     def init(self):
         """Initialize the magnification Advanced Settings dialog GUI.
@@ -3712,6 +3728,12 @@
         to match. 
         """
 
+        if not self.sourceDisplayModel:
+            self.sourceDisplayModel = \
+                self._initComboBox(self.get_widget("magSourceDisplayEntry"))
+        if not self.targetDisplayModel:
+            self.targetDisplayModel = \
+                self._initComboBox(self.get_widget("magTargetDisplayEntry"))
         self._initGUIState()
 
     def _initGUIState(self):
@@ -3750,11 +3772,34 @@
 
         # Get the magnification source and target displays.
         #
+        display = gtk.gdk.display_get_default()
+        nScreens = display.get_n_screens()
+        sourceScreen = display.get_default_screen()
+
+        self.sourceDisplayModel.clear()
+        self.targetDisplayModel.clear()
+        for screenNo in range(0, nScreens):
+            screenName = ":0." + str(screenNo)
+            self.sourceDisplayModel.append((screenNo, screenName))
+            self.targetDisplayModel.append((screenNo, screenName))
+
         sourceDisplay = prefs["magSourceDisplay"]
-        self.get_widget("magSourceDisplayEntry").set_text(sourceDisplay)
+        sourceComboBox = self.get_widget("magSourceDisplayEntry")
+        index = self.getComboBoxIndex(sourceComboBox, sourceDisplay, 1)
+        model = sourceComboBox.get_model()
+        displayIter = model.get_iter(index)
+        if displayIter:
+            value = model.get_value(displayIter, 1)
+            sourceComboBox.get_child().set_text(value)
 
         targetDisplay = prefs["magTargetDisplay"]
-        self.get_widget("magTargetDisplayEntry").set_text(targetDisplay)
+        targetComboBox = self.get_widget("magTargetDisplayEntry")
+        index = self.getComboBoxIndex(targetComboBox, targetDisplay, 1)
+        model = targetComboBox.get_model()
+        displayIter = model.get_iter(index)
+        if displayIter:
+            value = model.get_value(displayIter, 1)
+            targetComboBox.get_child().set_text(value)
 
         self.enableLiveUpdating = liveUpdating
         self.updateRGBBrightness()
@@ -4156,7 +4201,21 @@
         - widget: the component that generated the signal.
         """
 
-        self.prefsDict["magSourceDisplay"] = widget.get_text()
+        model = widget.get_model()
+        displayIter = widget.get_active_iter()
+        if displayIter:
+            value = model.get_value(displayIter, 1)
+            widget.get_child().set_text(value)
+        else:
+            value = widget.get_child().get_text()
+            index = self.getComboBoxIndex(widget, value, 1)
+            firstIter = model.get_iter_first()
+            if firstIter:
+                firstValue = model.get_value(firstIter, 1)
+                if index or (value == firstValue):
+                    widget.set_active(index)
+
+        self.prefsDict["magSourceDisplay"] = value
 
     def magTargetDisplayChanged(self, widget):
         """Signal handler for the "changed" signal for the
@@ -4169,8 +4228,23 @@
         - widget: the component that generated the signal.
         """
 
-        self.prefsDict["magTargetDisplay"] = widget.get_text()
-        self._setZoomerSpinButtons()
+        model = widget.get_model()
+        displayIter = widget.get_active_iter()
+        if displayIter:
+            value = model.get_value(displayIter, 1)
+            widget.get_child().set_text(value)
+        else:
+            value = widget.get_child().get_text()
+            index = self.getComboBoxIndex(widget, value, 1)
+            firstIter = model.get_iter_first()
+            if firstIter:
+                firstValue = model.get_value(firstIter, 1)
+                if index or (value == firstValue):
+                    widget.set_active(index)
+
+        self.prefsDict["magTargetDisplay"] = value
+        if orca_state.orcaOS:
+            self._setZoomerSpinButtons()
 
     def restoreAdvancedSettings(self):
         """Restores the previously saved values of the settings on the 



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