[ontv] Code cleanup in dialogs.py



commit 30c431ea844dc47d9737538811834186a4526926
Author: Olof Kindgren <olki src gnome org>
Date:   Thu Sep 16 08:58:34 2010 +0200

    Code cleanup in dialogs.py
    
    Moved stuff to preferences_dialog.ui

 data/preferences_dialog.ui |   52 +++++++++++++++++++++++++++++
 ontv/dialogs.py            |   78 ++++++++++++-------------------------------
 2 files changed, 74 insertions(+), 56 deletions(-)
---
diff --git a/data/preferences_dialog.ui b/data/preferences_dialog.ui
index b9b9f4d..bba1591 100644
--- a/data/preferences_dialog.ui
+++ b/data/preferences_dialog.ui
@@ -2,6 +2,13 @@
 <interface>
   <!-- interface-requires gtk+ 2.12 -->
   <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkTreeModelFilter" id="treemodelfilter1"/>
+  <object class="GtkListStore" id="channels_model">
+    <columns>
+      <!-- column-name col_obj -->
+      <column type="PyObject"/>
+    </columns>
+  </object>
   <object class="GtkDialog" id="preferences_dialog">
     <property name="width_request">530</property>
     <property name="height_request">520</property>
@@ -58,6 +65,7 @@
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
                                     <property name="use_underline">True</property>
+                                    <signal name="clicked" handler="on_browse_button_clicked"/>
                                   </object>
                                   <packing>
                                     <property name="left_attach">2</property>
@@ -73,6 +81,8 @@
                                     <property name="can_focus">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="invisible_char">&#x25CF;</property>
+                                    <signal name="changed" handler="on_output_file_entry_changed"/>
+                                    <signal name="activate" handler="on_output_file_entry_activate"/>
                                   </object>
                                   <packing>
                                     <property name="left_attach">1</property>
@@ -100,6 +110,8 @@
                                     <property name="can_focus">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="invisible_char">&#x25CF;</property>
+                                    <signal name="changed" handler="on_grabber_command_entry_changed"/>
+                                    <signal name="activate" handler="on_grabber_command_entry_activate"/>
                                   </object>
                                   <packing>
                                     <property name="left_attach">1</property>
@@ -163,6 +175,7 @@
                                 <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_current_programs_checkbutton_toggled"/>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
@@ -178,6 +191,7 @@
                                 <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_upcoming_programs_checkbutton_toggled"/>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
@@ -217,6 +231,7 @@
                                             <property name="use_underline">True</property>
                                             <property name="active">True</property>
                                             <property name="draw_indicator">True</property>
+                                            <signal name="toggled" handler="on_upcoming_programs_below_radiobutton_toggled"/>
                                           </object>
                                           <packing>
                                             <property name="position">0</property>
@@ -317,8 +332,45 @@
                           <object class="GtkTreeView" id="channels_treeview">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="model">channels_model</property>
                             <property name="headers_visible">False</property>
                             <property name="rules_hint">True</property>
+                            <property name="search_column">2</property>
+                            <signal name="row_activated" handler="on_channels_treeview_row_activated"/>
+                            <child>
+                              <object class="GtkTreeViewColumn" id="col_ch_selected">
+                                <property name="title">Selected</property>
+                                <child>
+                                  <object class="GtkCellRendererToggle" id="cr_toggle">
+                                    <property name="xpad">6</property>
+                                    <property name="ypad">3</property>
+                                    <signal name="toggled" handler="on_channels_treeview_toggled" object="channels_model"/>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkTreeViewColumn" id="col_ch_logo">
+                                <property name="title">Logo</property>
+                                <child>
+                                  <object class="GtkCellRendererPixbuf" id="cr_logo">
+                                    <property name="xpad">3</property>
+                                    <property name="ypad">3</property>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkTreeViewColumn" id="col_ch_name">
+                                <property name="title">Channel</property>
+                                <child>
+                                  <object class="GtkCellRendererText" id="cr_name">
+                                    <property name="xpad">3</property>
+                                    <property name="ypad">3</property>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
                           </object>
                         </child>
                       </object>
diff --git a/ontv/dialogs.py b/ontv/dialogs.py
index f759456..5c29b04 100644
--- a/ontv/dialogs.py
+++ b/ontv/dialogs.py
@@ -172,8 +172,6 @@ class PreferencesDialog:
             self.upcoming_programs_below_radiobutton.set_active(True)
         else:
             self.upcoming_programs_right_radiobutton.set_active(True)
-        self.channels_image.set_from_stock(gtk.STOCK_DIALOG_INFO,
-                                           gtk.ICON_SIZE_DIALOG)
 
         self.__auto_reload_id = None
 
@@ -181,14 +179,13 @@ class PreferencesDialog:
         builder = gtk.Builder()
         builder.set_translation_domain(NAME.lower())
         builder.add_from_file(gui.preferences_dialog_ui_file)
+        builder.connect_signals(self)
 
         self.dialog = builder.get_object("preferences_dialog")
-        self.notebook = builder.get_object("notebook")
 
         # General tab
         self.grabber_command_entry = builder.get_object("grabber_command_entry")
         self.output_file_entry = builder.get_object("output_file_entry")
-        self.browse_button = builder.get_object("browse_button")
         self.current_programs_checkbutton = builder.get_object("current_programs_checkbutton")
         self.upcoming_programs_checkbutton = builder.get_object("upcoming_programs_checkbutton")
         self.position_hbox = builder.get_object("position_hbox")
@@ -197,7 +194,15 @@ class PreferencesDialog:
 
         # Channels tab
         self.channels_treeview = builder.get_object("channels_treeview")
-        self.channels_image = builder.get_object("channels_image")
+
+        self.channels_model = builder.get_object("channels_model")
+
+        builder.get_object("col_ch_selected").set_cell_data_func(builder.get_object("cr_toggle"),
+                                                self.__crtoggle_cell_data_func)
+        builder.get_object("col_ch_logo").set_cell_data_func(builder.get_object("cr_logo"),
+                                                self.__crpixbuf_cell_data_func)
+        builder.get_object("col_ch_name").set_cell_data_func(builder.get_object("cr_name"),
+                                                self.__crtext_cell_data_func)
 
         # Reminders tab
         self.reminders_treeview = builder.get_object("reminders_treeview")
@@ -208,37 +213,10 @@ class PreferencesDialog:
         self.update_reminder_button = builder.get_object("update_reminder_button")
         self.remove_reminder_button = builder.get_object("remove_reminder_button")
 
+
     def __make_channels_treeview(self):
-        self.channels_model = gtk.ListStore(object)
         self.channels_model.set_sort_func(0, self.__channels_model_sort_func)
         self.channels_model.set_sort_column_id(0, gtk.SORT_ASCENDING)
-        self.channels_treeview.set_model(self.channels_model)
-
-        crtoggle = gtk.CellRendererToggle()
-        crtoggle.props.xpad = 6
-        crtoggle.props.ypad = 3
-        crtoggle.props.activatable = True
-        crtoggle.connect("toggled", self.__channels_treeview_toggled,
-                         self.channels_model)
-        selected_column = gtk.TreeViewColumn("Selected", crtoggle)
-        selected_column.set_cell_data_func(crtoggle,
-                                           self.__crtoggle_cell_data_func)
-        self.channels_treeview.append_column(selected_column)
-
-        crpixbuf = gtk.CellRendererPixbuf()
-        crpixbuf.props.xpad = 3
-        crpixbuf.props.ypad = 3
-        logo_column = gtk.TreeViewColumn("Logo", crpixbuf)
-        logo_column.set_cell_data_func(crpixbuf, self.__crpixbuf_cell_data_func)
-        self.channels_treeview.append_column(logo_column)
-
-        crtext = gtk.CellRendererText()
-        crtext.props.xpad = 3
-        crtext.props.ypad = 3
-        channel_column = gtk.TreeViewColumn("Channel", crtext)
-        channel_column.set_cell_data_func(crtext, self.__crtext_cell_data_func)
-        self.channels_treeview.append_column(channel_column)
-        self.channels_treeview.set_search_column(2)
         self.channels_treeview.set_search_equal_func(self.__channels_treeview_search_equal)
 
         self.channels_treeview_menu = gtk.Menu()
@@ -254,7 +232,7 @@ class PreferencesDialog:
             return utils.natcmp(channel.name.lower(), other_channel.name.lower())
         return utils.natcmp(channel.lower(), other_channel.lower())
 
-    def __channels_treeview_toggled(self, cell, path, model):
+    def on_channels_treeview_toggled(self, model, path):
         channel = model[path][0]
         channel.selected = not channel.selected
         if channel.selected:
@@ -331,19 +309,7 @@ class PreferencesDialog:
         self.dialog.connect("delete-event", self.__dialog_delete)
         self.dialog.connect("response", self.__dialog_response)
 
-        # General tab
-        self.grabber_command_entry.connect("changed", self.__grabber_command_entry_changed)
-        self.grabber_command_entry.connect("activate", self.__grabber_command_entry_activated)
-        self.output_file_entry.connect("changed", self.__output_file_entry_changed)
-        self.output_file_entry.connect("activate", self.__output_file_entry_activated)
-        self.browse_button.connect("clicked", self.__browse_button_clicked)
-        self.current_programs_checkbutton.connect("toggled", self.__current_programs_checkbutton_toggled)
-        self.upcoming_programs_checkbutton.connect("toggled", self.__upcoming_programs_checkbutton_toggled)
-        self.upcoming_programs_below_radiobutton.connect("toggled", self.__upcoming_programs_below_radiobutton_toggled)
-
         # Channels tab
-        self.channels_treeview.connect("row-activated",
-                                       self.__channels_treeview_row_activated)
         self.channels_treeview.connect("button-press-event",
                                        self.__channels_treeview_button_press,
                                        self.channels_treeview_menu)
@@ -375,19 +341,19 @@ class PreferencesDialog:
     def __dialog_delete(self, dialog, event):
         return True
 
-    def __grabber_command_entry_changed(self, entry):
+    def on_grabber_command_entry_changed(self, entry):
         self.config.grabber_command = entry.get_text()
 
-    def __grabber_command_entry_activated(self, entry):
+    def on_grabber_command_entry_activate(self, entry):
         self.xmltvfile.download()
 
-    def __output_file_entry_changed(self, entry):
+    def on_output_file_entry_changed(self, entry):
         self.config.xmltv_file = entry.get_text()
 
-    def __output_file_entry_activated(self, entry):
+    def on_output_file_entry_activate(self, entry):
         self.xmltvfile.load()
 
-    def __browse_button_clicked(self, button):
+    def on_browse_button_clicked(self, button):
         xml_filter = gtk.FileFilter()
         xml_filter.set_name(_("XML files"))
         xml_filter.add_pattern("text/xml")
@@ -401,20 +367,20 @@ class PreferencesDialog:
         elif response == gtk.RESPONSE_CANCEL:
             fd.hide()
 
-    def __current_programs_checkbutton_toggled(self, checkbutton):
+    def on_current_programs_checkbutton_toggled(self, checkbutton):
         self.config.display_current_programs = checkbutton.get_active()
 
-    def __upcoming_programs_checkbutton_toggled(self, checkbutton):
+    def on_upcoming_programs_checkbutton_toggled(self, checkbutton):
         active = checkbutton.get_active()
         self.config.display_upcoming_programs = active
         self.position_hbox.set_sensitive(active)
 
-    def __upcoming_programs_below_radiobutton_toggled(self, radiobutton):
+    def on_upcoming_programs_below_radiobutton_toggled(self, radiobutton):
         active = radiobutton.get_active()
         self.config.upcoming_programs_below = active
 
-    def __channels_treeview_row_activated(self, treeview, path, column):
-        self.__channels_treeview_toggled(None, path, self.channels_model)
+    def on_channels_treeview_row_activated(self, treeview, path, column):
+        self.on_channels_treeview_toggled(None, path, self.channels_model)
 
     def __channels_treeview_button_press(self, treeview, event, menu):
         if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:



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