[meld] Replace font-related RadioButtons with a CheckButton



commit 6f99e10180b1040d2779bb092eb22a4ba3bcea10
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Thu Apr 29 08:29:27 2010 +1000

    Replace font-related RadioButtons with a CheckButton
    
    Rather than using RadioButtons to represent the font use-system-default
    preference, this commit switches to using a CheckButton with sensitivity
    setting. We also set the default font, and set a mnemonic widget for the
    custom font label.

 data/ui/preferences.glade |   28 ++++++++++------------------
 meld/preferences.py       |   20 ++++++++++++--------
 2 files changed, 22 insertions(+), 26 deletions(-)
---
diff --git a/data/ui/preferences.glade b/data/ui/preferences.glade
index 5a6143c..1db4073 100644
--- a/data/ui/preferences.glade
+++ b/data/ui/preferences.glade
@@ -56,39 +56,36 @@
                         <child>
                           <widget class="GtkVBox" id="vbox10">
                             <property name="visible">True</property>
+                            <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkRadioButton" id="radiobutton_gnome_font">
-                                <property name="label" translatable="yes">Use GNOME monospace font</property>
+                              <widget class="GtkCheckButton" id="checkbutton_default_font">
+                                <property name="label" translatable="yes">_Use the system fixed width font</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
+                                <property name="active">True</property>
                                 <property name="draw_indicator">True</property>
-                                <signal name="toggled" handler="on_radiobutton_font_toggled"/>
+                                <signal name="toggled" handler="on_checkbutton_default_font_toggled"/>
                               </widget>
                               <packing>
                                 <property name="expand">False</property>
-                                <property name="fill">False</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
                               <widget class="GtkHBox" id="hbox5">
                                 <property name="visible">True</property>
+                                <property name="spacing">6</property>
                                 <child>
-                                  <widget class="GtkRadioButton" id="radiobutton_custom_font">
-                                    <property name="label" translatable="yes">Use custom font</property>
+                                  <widget class="GtkLabel" id="label1">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
+                                    <property name="label" translatable="yes">_Editor font:</property>
                                     <property name="use_underline">True</property>
-                                    <property name="draw_indicator">True</property>
-                                    <property name="group">radiobutton_gnome_font</property>
-                                    <signal name="toggled" handler="on_radiobutton_font_toggled"/>
+                                    <property name="mnemonic_widget">fontpicker</property>
                                   </widget>
                                   <packing>
                                     <property name="expand">False</property>
-                                    <property name="fill">False</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
@@ -97,31 +94,26 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
+                                    <property name="font_name">Monospace 12</property>
                                     <property name="use_font">True</property>
                                     <signal name="font_set" handler="on_fontpicker_font_set"/>
                                   </widget>
                                   <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
                               </widget>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
                           </widget>
                           <packing>
-                            <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
                       </widget>
                       <packing>
-                        <property name="expand">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
diff --git a/meld/preferences.py b/meld/preferences.py
index 296f278..e790b50 100644
--- a/meld/preferences.py
+++ b/meld/preferences.py
@@ -126,10 +126,13 @@ class PreferencesDialog(gnomeglade.Component):
         self.prefs = parentapp.prefs
         # editor
         self.map_widgets_into_lists( ["editor_command"] )
-        if self.prefs.use_custom_font:
-            self.radiobutton_custom_font.set_active(1)
+        if not self.prefs.use_custom_font:
+            self.checkbutton_default_font.set_active(True)
+            self.fontpicker.set_sensitive(False)
         else:
-            self.radiobutton_gnome_font.set_active(1)
+            self.checkbutton_default_font.set_active(False)
+            self.fontpicker.set_sensitive(True)
+            self.fontpicker.set_font_name(self.prefs.custom_font)
         self.fontpicker.set_font_name( self.prefs.custom_font )
         self.spinbutton_tabsize.set_value( self.prefs.tab_size )
         if srcviewer:
@@ -172,11 +175,12 @@ class PreferencesDialog(gnomeglade.Component):
     #
     def on_fontpicker_font_set(self, picker):
         self.prefs.custom_font = picker.get_font_name()
-    def on_radiobutton_font_toggled(self, radio):
-        if radio.get_active():
-            custom = radio == self.radiobutton_custom_font
-            self.fontpicker.set_sensitive(custom)
-            self.prefs.use_custom_font = custom
+
+    def on_checkbutton_default_font_toggled(self, button):
+        use_custom = not button.get_active()
+        self.fontpicker.set_sensitive(use_custom)
+        self.prefs.use_custom_font = use_custom
+
     def on_spinbutton_tabsize_changed(self, spin):
         self.prefs.tab_size = int(spin.get_value())
     def on_checkbutton_spaces_instead_of_tabs_toggled(self, check):



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