gget r20 - in trunk: data gget



Author: johans
Date: Mon Jun 30 09:31:12 2008
New Revision: 20
URL: http://svn.gnome.org/viewvc/gget?rev=20&view=rev

Log:
Made which columns to show in the main window configurable.

Modified:
   trunk/data/gget.glade
   trunk/data/gget.schemas.in
   trunk/gget/Configuration.py
   trunk/gget/Download.py
   trunk/gget/MainWindow.py

Modified: trunk/data/gget.glade
==============================================================================
--- trunk/data/gget.glade	(original)
+++ trunk/data/gget.glade	Mon Jun 30 09:31:12 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.5 on Fri Jun 27 01:23:25 2008 -->
+<!--Generated with glade3 3.4.5 on Mon Jun 30 11:04:22 2008 -->
 <glade-interface>
   <widget class="GtkWindow" id="main_window">
     <property name="width_request">800</property>
@@ -91,6 +91,60 @@
                         <property name="active">True</property>
                       </widget>
                     </child>
+                    <child>
+                      <widget class="GtkMenuItem" id="menuitem5">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Columns</property>
+                        <property name="use_underline">True</property>
+                        <child>
+                          <widget class="GtkMenu" id="menu5">
+                            <property name="visible">True</property>
+                            <child>
+                              <widget class="GtkCheckMenuItem" id="show_status_menu_item">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Status</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckMenuItem" id="show_current_size_menu_item">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Current size</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckMenuItem" id="show_total_size_menu_item">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Total size</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckMenuItem" id="show_progress_menu_item">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Progress</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckMenuItem" id="show_speed_menu_item">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Speed</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckMenuItem" id="show_eta_menu_item">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">ETA</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
                   </widget>
                 </child>
               </widget>
@@ -252,25 +306,16 @@
                     <property name="column_spacing">12</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label3">
-                        <property name="visible">True</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_URL:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">url_entry</property>
-                      </widget>
-                      <packing>
-                        <property name="x_options">GTK_FILL</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkEntry" id="url_entry">
+                      <widget class="GtkFileChooserButton" id="download_filechooserbutton">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
+                        <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
+                        <property name="title" translatable="yes">Select download folder</property>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
                       </packing>
                     </child>
                     <child>
@@ -288,16 +333,25 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkFileChooserButton" id="download_filechooserbutton">
+                      <widget class="GtkEntry" id="url_entry">
                         <property name="visible">True</property>
-                        <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
-                        <property name="title" translatable="yes">Select download folder</property>
+                        <property name="can_focus">True</property>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label3">
+                        <property name="visible">True</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_URL:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">url_entry</property>
+                      </widget>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
                       </packing>
                     </child>
                   </widget>

Modified: trunk/data/gget.schemas.in
==============================================================================
--- trunk/data/gget.schemas.in	(original)
+++ trunk/data/gget.schemas.in	Mon Jun 30 09:31:12 2008
@@ -195,5 +195,89 @@
                 </long>
             </locale>
         </schema>
+        <schema>
+            <key>/schemas/apps/gget/general/show_status</key>
+            <applyto>/apps/gget/general/show_status</applyto>
+            <owner>gget</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Show status</short>
+                <long>
+                    Whether GGet should display a status column for downloads
+                    in the main window.
+                </long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/gget/general/show_current_size</key>
+            <applyto>/apps/gget/general/show_current_size</applyto>
+            <owner>gget</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Show current size</short>
+                <long>
+                    Whether GGet should display a current size column for
+                    downloads in the main window.
+                </long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/gget/general/show_total_size</key>
+            <applyto>/apps/gget/general/show_total_size</applyto>
+            <owner>gget</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Show total size</short>
+                <long>
+                    Whether GGet should display a total size column for
+                    downloads in the main window.
+                </long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/gget/general/show_progress</key>
+            <applyto>/apps/gget/general/show_progress</applyto>
+            <owner>gget</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Show progress</short>
+                <long>
+                    Whether GGet should display a progress column for
+                    downloads in the main window.
+                </long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/gget/general/show_speed</key>
+            <applyto>/apps/gget/general/show_speed</applyto>
+            <owner>gget</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Show speed</short>
+                <long>
+                    Whether GGet should display a speed column for
+                    downloads in the main window.
+                </long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/gget/general/show_eta</key>
+            <applyto>/apps/gget/general/show_eta</applyto>
+            <owner>gget</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Show ETA</short>
+                <long>
+                    Whether GGet should display a ETA (Estimated Time of
+                    Arrival) column for downloads in the main window.
+                </long>
+            </locale>
+        </schema>
     </schemalist>
 </gconfschemafile>

Modified: trunk/gget/Configuration.py
==============================================================================
--- trunk/gget/Configuration.py	(original)
+++ trunk/gget/Configuration.py	Mon Jun 30 09:31:12 2008
@@ -44,6 +44,12 @@
 KEY_WINDOW_HEIGHT     = "/general/window_height"
 KEY_WINDOW_POSITION_X = "/general/window_position_x"
 KEY_WINDOW_POSITION_Y = "/general/window_position_y"
+KEY_SHOW_STATUS       = "/general/show_status"
+KEY_SHOW_CURRENT_SIZE = "/general/show_current_size"
+KEY_SHOW_TOTAL_SIZE   = "/general/show_total_size"
+KEY_SHOW_PROGRESS     = "/general/show_progress"
+KEY_SHOW_SPEED        = "/general/show_speed"
+KEY_SHOW_ETA          = "/general/show_eta"
 
 KEY_TOOLBAR_STYLE = "/interface/toolbar_style"
 
@@ -62,7 +68,13 @@
                      KEY_WINDOW_HEIGHT:     'int',
                      KEY_WINDOW_POSITION_X: 'int',
                      KEY_WINDOW_POSITION_Y: 'int',
-                     KEY_TOOLBAR_STYLE:     'string'
+                     KEY_TOOLBAR_STYLE:     'string',
+                     KEY_SHOW_STATUS:       'bool',
+                     KEY_SHOW_CURRENT_SIZE: 'bool',
+                     KEY_SHOW_TOTAL_SIZE:   'bool',
+                     KEY_SHOW_PROGRESS:     'bool',
+                     KEY_SHOW_SPEED:        'bool',
+                     KEY_SHOW_ETA:          'bool'
                      }
 
 class Configuration(object):
@@ -316,4 +328,76 @@
 
     toolbar_style = property(get_toolbar_style, set_toolbar_style)
 
+    # Show status
+    def get_show_status(self, use_cache=True):
+        if use_cache:
+            return self.option_cache[KEY_SHOW_STATUS]
+        else:
+            return self.__get_option(KEY_SHOW_STATUS)
+
+    def set_show_status(self, show_status):
+        self.__set_option(KEY_SHOW_STATUS, show_status)
+
+    show_status = property(get_show_status, set_show_status)
+
+    # Show current size
+    def get_show_current_size(self, use_cache=True):
+        if use_cache:
+            return self.option_cache[KEY_SHOW_CURRENT_SIZE]
+        else:
+            return self.__get_option(KEY_SHOW_CURRENT_SIZE)
+
+    def set_show_current_size(self, show_current_size):
+        self.__set_option(KEY_SHOW_CURRENT_SIZE, show_current_size)
+
+    show_current_size = property(get_show_current_size, set_show_current_size)
+
+    # Show total size
+    def get_show_total_size(self, use_cache=True):
+        if use_cache:
+            return self.option_cache[KEY_SHOW_TOTAL_SIZE]
+        else:
+            return self.__get_option(KEY_SHOW_TOTAL_SIZE)
+
+    def set_show_total_size(self, show_total_size):
+        self.__set_option(KEY_SHOW_TOTAL_SIZE, show_total_size)
+
+    show_total_size = property(get_show_total_size, set_show_total_size)
+
+    # Show progress
+    def get_show_progress(self, use_cache=True):
+        if use_cache:
+            return self.option_cache[KEY_SHOW_PROGRESS]
+        else:
+            return self.__get_option(KEY_SHOW_PROGRESS)
+
+    def set_show_progress(self, show_progress):
+        self.__set_option(KEY_SHOW_PROGRESS, show_progress)
+
+    show_progress = property(get_show_progress, set_show_progress)
+
+    # Show speed
+    def get_show_speed(self, use_cache=True):
+        if use_cache:
+            return self.option_cache[KEY_SHOW_SPEED]
+        else:
+            return self.__get_option(KEY_SHOW_SPEED)
+
+    def set_show_speed(self, show_speed):
+        self.__set_option(KEY_SHOW_SPEED, show_speed)
+
+    show_speed = property(get_show_speed, set_show_speed)
+
+    # Show eta
+    def get_show_eta(self, use_cache=True):
+        if use_cache:
+            return self.option_cache[KEY_SHOW_ETA]
+        else:
+            return self.__get_option(KEY_SHOW_ETA)
+
+    def set_show_eta(self, show_eta):
+        self.__set_option(KEY_SHOW_ETA, show_eta)
+
+    show_eta = property(get_show_eta, set_show_eta)
+
 # vim: set sw=4 et sts=4 tw=79 fo+=l:

Modified: trunk/gget/Download.py
==============================================================================
--- trunk/gget/Download.py	(original)
+++ trunk/gget/Download.py	Mon Jun 30 09:31:12 2008
@@ -48,7 +48,7 @@
         self.file_name = os.path.basename(self.url)
         self.file = os.path.join(path, self.file_name)
 
-        self.size = 0
+        self.total_size = 0
         self.block_count = 0
         self.block_size = 0
         self.percent_complete = 0
@@ -72,7 +72,7 @@
         Utils.debug_print("Download.update called with block_count: %s block_size: %s total_size: %s" % (block_count, block_size, total_size))
         self.block_count = block_count
         self.block_size = block_size
-        self.size = total_size
+        self.total_size = total_size
 
         current_bytes = float(block_count * block_size) / 1024 / 1024
         total_bytes = float(total_size) / 1024 / 1024

Modified: trunk/gget/MainWindow.py
==============================================================================
--- trunk/gget/MainWindow.py	(original)
+++ trunk/gget/MainWindow.py	Mon Jun 30 09:31:12 2008
@@ -71,10 +71,24 @@
         self.show_statusbar_menu_item.set_active(self.config.show_statusbar)
 
         self.toolbar.props.visible = self.config.show_toolbar
-        self.statusbar.props.visible = self.config.show_statusbar
-
         self.__set_toolbar_style(self.config.toolbar_style)
 
+        self.show_status_menu_item.set_active(self.config.show_status)
+        self.show_current_size_menu_item.set_active(self.config.show_current_size)
+        self.show_total_size_menu_item.set_active(self.config.show_total_size)
+        self.show_progress_menu_item.set_active(self.config.show_progress)
+        self.show_speed_menu_item.set_active(self.config.show_speed)
+        self.show_eta_menu_item.set_active(self.config.show_eta)
+
+        self.status_treeview_column.props.visible = self.config.show_status
+        self.size_treeview_column.props.visible = self.config.show_current_size
+        self.total_size_treeview_column.props.visible = self.config.show_total_size
+        self.progress_treeview_column.props.visible = self.config.show_progress
+        self.speed_treeview_column.props.visible = self.config.show_speed
+        self.eta_treeview_column.props.visible = self.config.show_eta
+
+        self.statusbar.props.visible = self.config.show_statusbar
+
     def __get_widgets(self):
         """Get widgets from the glade file."""
         xml = gtk.glade.XML(GUI.glade_file, domain=NAME.lower())
@@ -91,6 +105,12 @@
         # Show menu
         self.show_toolbar_menu_item = xml.get_widget("show_toolbar_menu_item")
         self.show_statusbar_menu_item = xml.get_widget("show_statusbar_menu_item")
+        self.show_status_menu_item = xml.get_widget("show_status_menu_item")
+        self.show_current_size_menu_item = xml.get_widget("show_current_size_menu_item")
+        self.show_total_size_menu_item = xml.get_widget("show_total_size_menu_item")
+        self.show_progress_menu_item = xml.get_widget("show_progress_menu_item")
+        self.show_speed_menu_item = xml.get_widget("show_speed_menu_item")
+        self.show_eta_menu_item = xml.get_widget("show_eta_menu_item")
 
         # Help menu
         self.about_menu_item = xml.get_widget("about_menu_item")
@@ -111,73 +131,69 @@
         self.downloads_model = gtk.ListStore(object)
         self.downloads_treeview.set_model(self.downloads_model)
 
+        cell_renderer_pixbuf = gtk.CellRendererPixbuf()
+        cell_renderer_pixbuf.props.xpad = 3
+        cell_renderer_pixbuf.props.ypad = 3
+
+        cell_renderer_text = gtk.CellRendererText()
+        cell_renderer_text.props.xpad = 3
+        cell_renderer_text.props.ypad = 3
+
+        cell_renderer_progress = gtk.CellRendererProgress()
+        cell_renderer_progress.props.xpad = 3
+        cell_renderer_progress.props.ypad = 3
+
         # Name column
-        image_cell_renderer = gtk.CellRendererPixbuf()
-        image_cell_renderer.props.xpad = 3
-        image_cell_renderer.props.ypad = 3
-
-        name_cell_renderer = gtk.CellRendererText()
-        name_cell_renderer.props.xpad = 3
-        name_cell_renderer.props.ypad = 3
-
-        name_treeview_column = gtk.TreeViewColumn(_("Name"))
-        name_treeview_column.pack_start(image_cell_renderer)
-        name_treeview_column.set_cell_data_func(image_cell_renderer,
+        self.name_treeview_column = gtk.TreeViewColumn(_("Name"))
+        self.name_treeview_column.pack_start(cell_renderer_pixbuf)
+        self.name_treeview_column.set_cell_data_func(cell_renderer_pixbuf,
                 self.__image_cell_data_func)
-        name_treeview_column.pack_start(name_cell_renderer)
-        name_treeview_column.set_cell_data_func(name_cell_renderer,
+        self.name_treeview_column.pack_start(cell_renderer_text)
+        self.name_treeview_column.set_cell_data_func(cell_renderer_text,
                 self.__name_cell_data_func)
-        self.downloads_treeview.append_column(name_treeview_column)
+        self.downloads_treeview.append_column(self.name_treeview_column)
 
         # Status column
-        status_cell_renderer = gtk.CellRendererText()
-        status_cell_renderer.props.xpad = 3
-        status_cell_renderer.props.ypad = 3
-        status_treeview_column = gtk.TreeViewColumn(_("Status"),
-                status_cell_renderer)
-        status_treeview_column.set_cell_data_func(status_cell_renderer,
+        self.status_treeview_column = gtk.TreeViewColumn(_("Status"),
+                cell_renderer_text)
+        self.status_treeview_column.set_cell_data_func(cell_renderer_text,
                 self.__status_cell_data_func)
-        self.downloads_treeview.append_column(status_treeview_column)
+        self.downloads_treeview.append_column(self.status_treeview_column)
 
-        # Size column
-        size_cell_renderer = gtk.CellRendererText()
-        size_cell_renderer.props.xpad = 3
-        size_cell_renderer.props.ypad = 3
-        size_treeview_column = gtk.TreeViewColumn(_("Size"),
-                size_cell_renderer)
-        size_treeview_column.set_cell_data_func(size_cell_renderer,
+        # Current size column
+        self.size_treeview_column = gtk.TreeViewColumn(_("Current size"),
+                cell_renderer_text)
+        self.size_treeview_column.set_cell_data_func(cell_renderer_text,
                 self.__size_cell_data_func)
-        self.downloads_treeview.append_column(size_treeview_column)
+        self.downloads_treeview.append_column(self.size_treeview_column)
+
+        # Total size column
+        self.total_size_treeview_column = gtk.TreeViewColumn(_("Total size"),
+                cell_renderer_text)
+        self.total_size_treeview_column.set_cell_data_func(cell_renderer_text,
+                self.__total_size_cell_data_func)
+        self.downloads_treeview.append_column(self.total_size_treeview_column)
 
         # Progress column
-        progress_cell_renderer = gtk.CellRendererProgress()
-        progress_cell_renderer.props.xpad = 3
-        progress_cell_renderer.props.ypad = 3
-        progress_treeview_column = gtk.TreeViewColumn(_("Progress"),
-                progress_cell_renderer)
-        progress_treeview_column.set_cell_data_func(progress_cell_renderer,
+        self.progress_treeview_column = gtk.TreeViewColumn(_("Progress"),
+                cell_renderer_progress)
+        self.progress_treeview_column.set_cell_data_func(cell_renderer_progress,
                 self.__progress_cell_data_func)
-        self.downloads_treeview.append_column(progress_treeview_column)
+        self.downloads_treeview.append_column(self.progress_treeview_column)
 
         # Speed column
-        speed_cell_renderer = gtk.CellRendererText()
-        speed_cell_renderer.props.xpad = 3
-        speed_cell_renderer.props.ypad = 3
-        speed_treeview_column = gtk.TreeViewColumn(_("Speed"),
-                speed_cell_renderer)
-        speed_treeview_column.set_cell_data_func(speed_cell_renderer,
+        self.speed_treeview_column = gtk.TreeViewColumn(_("Speed"),
+                cell_renderer_text)
+        self.speed_treeview_column.set_cell_data_func(cell_renderer_text,
                 self.__speed_cell_data_func)
-        self.downloads_treeview.append_column(speed_treeview_column)
+        self.downloads_treeview.append_column(self.speed_treeview_column)
 
         # ETA column
-        eta_cell_renderer = gtk.CellRendererText()
-        eta_cell_renderer.props.xpad = 3
-        eta_cell_renderer.props.ypad = 3
-        eta_treeview_column = gtk.TreeViewColumn(_("ETA"),
-                eta_cell_renderer)
-        eta_treeview_column.set_cell_data_func(eta_cell_renderer,
+        self.eta_treeview_column = gtk.TreeViewColumn(_("ETA"),
+                cell_renderer_text)
+        self.eta_treeview_column.set_cell_data_func(cell_renderer_text,
                 self.__eta_cell_data_func)
-        self.downloads_treeview.append_column(eta_treeview_column)
+        self.downloads_treeview.append_column(self.eta_treeview_column)
 
         # Context menu
         self.downloads_treeview_menu = gtk.Menu()
@@ -214,13 +230,17 @@
     def __size_cell_data_func(self, column, cell, model, iter):
         """Data function for the file size of downloads."""
         download = model.get_value(iter, 0)
-        cell.props.text = Utils.get_readable_size(download.size)
+        cell.props.text = Utils.get_readable_size(float(download.block_count * download.block_size))
+
+    def __total_size_cell_data_func(self, column, cell, model, iter):
+        """Data function for the file size of downloads."""
+        download = model.get_value(iter, 0)
+        cell.props.text = Utils.get_readable_size(download.total_size)
 
     def __progress_cell_data_func(self, column, cell, model, iter):
         """Data function for the progress bar of downloads."""
         download = model.get_value(iter, 0)
         cell.props.value = download.percent_complete
-        cell.props.text = _("%s of %s complete") % (Utils.get_readable_size(float(download.block_count * download.block_size)), Utils.get_readable_size(download.size))
 
     def __speed_cell_data_func(self, column, cell, model, iter):
         """Data function for the speed of downloads."""
@@ -253,6 +273,19 @@
         self.show_statusbar_menu_item.connect("toggled",
                 self.__show_statusbar_menu_item_toggled)
 
+        self.show_status_menu_item.connect("toggled",
+                self.__show_status_menu_item_toggled)
+        self.show_current_size_menu_item.connect("toggled",
+                self.__show_current_size_menu_item_toggled)
+        self.show_total_size_menu_item.connect("toggled",
+                self.__show_total_size_menu_item_toggled)
+        self.show_progress_menu_item.connect("toggled",
+                self.__show_progress_menu_item_toggled)
+        self.show_speed_menu_item.connect("toggled",
+                self.__show_speed_menu_item_toggled)
+        self.show_eta_menu_item.connect("toggled",
+                self.__show_eta_menu_item_toggled)
+
         # Help
         self.about_menu_item.connect("activate",
                 self.__about_menu_item_activate)
@@ -272,6 +305,7 @@
         self.downloads_treeview.connect("button-press-event",
                 self.__downloads_treeview_button_press,
                 self.downloads_treeview_menu)
+
         self.pause_imi.connect("activate", self.__pause_imi_activate)
         self.resume_imi.connect("activate", self.__resume_imi_activate)
         self.cancel_imi.connect("activate", self.__cancel_download)
@@ -327,6 +361,30 @@
         """Show/Hide statusbar"""
         self.config.show_statusbar = menu_item.get_active()
 
+    def __show_status_menu_item_toggled(self, menu_item):
+        """Show/Hide Status column"""
+        self.config.show_status = menu_item.get_active()
+
+    def __show_current_size_menu_item_toggled(self, menu_item):
+        """Show/Hide Current size column"""
+        self.config.show_current_size = menu_item.get_active()
+
+    def __show_total_size_menu_item_toggled(self, menu_item):
+        """Show/Hide Total size column"""
+        self.config.show_total_size = menu_item.get_active()
+
+    def __show_progress_menu_item_toggled(self, menu_item):
+        """Show/Hide Progress column"""
+        self.config.show_progress = menu_item.get_active()
+
+    def __show_speed_menu_item_toggled(self, menu_item):
+        """Show/Hide Speed column"""
+        self.config.show_speed = menu_item.get_active()
+
+    def __show_eta_menu_item_toggled(self, menu_item):
+        """Show/Hide ETA column"""
+        self.config.show_eta = menu_item.get_active()
+
     def __about_menu_item_activate(self, menu_item):
         """Show the about dialog."""
         ad = AboutDialog()
@@ -361,6 +419,20 @@
     def __downloads_treeview_button_press(self, treeview, event, menu):
         """Show context menu for downloads treeview"""
         if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
+            download = GUI.get_selected_value(self.downloads_treeview)
+            if download:
+                menu.popup(None, None, None, event.button, event.time)
+
+    def __test(self, treeview, event, menu):
+        print "foo"
+        """Show context menu for downloads treeview"""
+        if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
+            menu.popup(None, None, None, event.button, event.time)
+        return False
+
+    def __treeview_column_button_press(self, treeview, event, menu):
+        """Show context menu for downloads treeview"""
+        if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
             menu.popup(None, None, None, event.button, event.time)
 
     def __pause_tool_button_clicked(self, tool_button):
@@ -397,12 +469,26 @@
         gtk.main_quit()
 
     def __add_config_notifications(self):
+        """Adds callbacks which gets called when configuration keys changes
+        in gconf."""
         self.config.add_notify(Configuration.KEY_SHOW_TOOLBAR,
                 self.__show_toolbar_key_changed)
-        self.config.add_notify(Configuration.KEY_SHOW_STATUSBAR,
-                self.__show_statusbar_key_changed)
         self.config.add_notify(Configuration.KEY_TOOLBAR_STYLE,
                 self.__toolbar_style_key_changed)
+        self.config.add_notify(Configuration.KEY_SHOW_STATUS,
+                self.__show_status_key_changed)
+        self.config.add_notify(Configuration.KEY_SHOW_CURRENT_SIZE,
+                self.__show_current_size_key_changed)
+        self.config.add_notify(Configuration.KEY_SHOW_TOTAL_SIZE,
+                self.__show_total_size_key_changed)
+        self.config.add_notify(Configuration.KEY_SHOW_PROGRESS,
+                self.__show_progress_key_changed)
+        self.config.add_notify(Configuration.KEY_SHOW_SPEED,
+                self.__show_speed_key_changed)
+        self.config.add_notify(Configuration.KEY_SHOW_ETA,
+                self.__show_eta_key_changed)
+        self.config.add_notify(Configuration.KEY_SHOW_STATUSBAR,
+                self.__show_statusbar_key_changed)
 
     def __show_toolbar_key_changed(self, client, cnxn_id, entry, data):
         """Called when the gconf key for toolbar visibility is changed"""
@@ -413,23 +499,14 @@
         else:
             self.toolbar.props.visible = True
 
-    def __show_statusbar_key_changed(self, client, cnxn_id, entry, data):
-        """Called when the gconf key for statusbar visibility is changed"""
-        if not entry.value:
-            self.statusbar.props.visible = True
-        elif entry.value.type == gconf.VALUE_BOOL:
-            self.statusbar.props.visible = entry.value.get_bool()
-        else:
-            self.statusbar.props.visible = True
-
     def __toolbar_style_key_changed(self, client, cnxn_id, entry, data):
         """Called when the gconf key for toolbar style is changed"""
         if not entry.value:
-            self.toolbar.set_style = "both"
+            self.__set_toolbar_style("both")
         elif entry.value.type == gconf.VALUE_STRING:
-            self.toolbar.set_style = entry.value.get_string()
+            self.__set_toolbar_style(entry.value.get_string())
         else:
-            self.toolbar.set_style = "both"
+            self.__set_toolbar_style("both")
 
     def __set_toolbar_style(self, toolbar_style):
         if toolbar_style == "icons":
@@ -441,6 +518,69 @@
         elif toolbar_style == "text":
             self.toolbar.set_style(gtk.TOOLBAR_TEXT)
 
+    def __show_statusbar_key_changed(self, client, cnxn_id, entry, data):
+        """Called when the gconf key for statusbar visibility is changed"""
+        if not entry.value:
+            self.statusbar.props.visible = True
+        elif entry.value.type == gconf.VALUE_BOOL:
+            self.statusbar.props.visible = entry.value.get_bool()
+        else:
+            self.statusbar.props.visible = True
+
+    def __show_status_key_changed(self, client, cnxn_id, entry, data):
+        """Called when the gconf key for status visibility is changed"""
+        if not entry.value:
+            self.status_treeview_column.props.visible = True
+        elif entry.value.type == gconf.VALUE_BOOL:
+            self.status_treeview_column.props.visible = entry.value.get_bool()
+        else:
+            self.status_treeview_column.props.visible = True
+
+    def __show_current_size_key_changed(self, client, cnxn_id, entry, data):
+        """Called when the gconf key for current size visibility is changed"""
+        if not entry.value:
+            self.size_treeview_column.props.visible = True
+        elif entry.value.type == gconf.VALUE_BOOL:
+            self.size_treeview_column.props.visible = entry.value.get_bool()
+        else:
+            self.size_treeview_column.props.visible = True
+
+    def __show_total_size_key_changed(self, client, cnxn_id, entry, data):
+        """Called when the gconf key for total size visibility is changed"""
+        if not entry.value:
+            self.total_size_treeview_column.props.visible = True
+        elif entry.value.type == gconf.VALUE_BOOL:
+            self.total_size_treeview_column.props.visible = entry.value.get_bool()
+        else:
+            self.total_size_treeview_column.props.visible = True
+
+    def __show_progress_key_changed(self, client, cnxn_id, entry, data):
+        """Called when the gconf key for progress visibility is changed"""
+        if not entry.value:
+            self.progress_treeview_column.props.visible = True
+        elif entry.value.type == gconf.VALUE_BOOL:
+            self.progress_treeview_column.props.visible = entry.value.get_bool()
+        else:
+            self.progress_treeview_column.props.visible = True
+
+    def __show_speed_key_changed(self, client, cnxn_id, entry, data):
+        """Called when the gconf key for speed visibility is changed"""
+        if not entry.value:
+            self.speed_treeview_column.props.visible = True
+        elif entry.value.type == gconf.VALUE_BOOL:
+            self.speed_treeview_column.props.visible = entry.value.get_bool()
+        else:
+            self.progress_treeview_column.props.visible = True
+
+    def __show_eta_key_changed(self, client, cnxn_id, entry, data):
+        """Called when the gconf key for eta visibility is changed"""
+        if not entry.value:
+            self.eta_treeview_column.props.visible = True
+        elif entry.value.type == gconf.VALUE_BOOL:
+            self.eta_treeview_column.props.visible = entry.value.get_bool()
+        else:
+            self.eta_treeview_column.props.visible = True
+
     def __download_added(self, download_manager, download):
         """Called when a new download is added to DownloadManager. Adds the
         download to the treeview model and sets up the update handler."""



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