gget r43 - in trunk: data gget



Author: johans
Date: Fri Aug  1 19:21:30 2008
New Revision: 43
URL: http://svn.gnome.org/viewvc/gget?rev=43&view=rev

Log:
Fixed issues with widget sensitivity based on download statuses.

Modified:
   trunk/data/gget.glade
   trunk/gget/Main.py
   trunk/gget/MainWindow.py

Modified: trunk/data/gget.glade
==============================================================================
--- trunk/data/gget.glade	(original)
+++ trunk/data/gget.glade	Fri Aug  1 19:21:30 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 Tue Jul 29 17:08:08 2008 -->
+<!--Generated with glade3 3.4.5 on Fri Aug  1 20:02:26 2008 -->
 <glade-interface>
   <widget class="GtkWindow" id="main_window">
     <property name="width_request">800</property>
@@ -27,7 +27,7 @@
                         <property name="label" translatable="yes">gtk-add</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <accelerator key="a" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                        <accelerator key="n" modifiers="GDK_CONTROL_MASK" signal="activate"/>
                       </widget>
                     </child>
                     <child>

Modified: trunk/gget/Main.py
==============================================================================
--- trunk/gget/Main.py	(original)
+++ trunk/gget/Main.py	Fri Aug  1 19:21:30 2008
@@ -93,7 +93,7 @@
     for uri in args:
         if config.ask_for_location:
             add = AddDownloadDialog(uri)
-            add.dialog.show()
+            add.dialog.run()
         else:
             download_list.add_download(uri, config.default_folder)
 

Modified: trunk/gget/MainWindow.py
==============================================================================
--- trunk/gget/MainWindow.py	(original)
+++ trunk/gget/MainWindow.py	Fri Aug  1 19:21:30 2008
@@ -392,7 +392,7 @@
 
         if self.config.ask_for_location:
             add = AddDownloadDialog(uri)
-            add.dialog.show()
+            add.dialog.run()
         else:
             self.download_list.add_download(uri, self.config.default_folder)
             context.finish(True, False, time)
@@ -400,7 +400,7 @@
     def show_add_download_dialog(self, widget):
         """Show the dialog used for adding a new download."""
         add = AddDownloadDialog()
-        add.dialog.show()
+        add.dialog.run()
 
     def preferences_menu_item_activate(self, menu_item):
         """Show the preferences dialog."""
@@ -472,22 +472,49 @@
         downloads = GUI.get_selected_values(self.downloads_treeview)
         number_selected = selection.count_selected_rows()
         # Disable tool buttons and menu items if nothing is selected, else
-        # enable them
+        # enable the ones that should be
         if number_selected < 1:
             self.__download_widgets_set_sensitive(False)
         elif number_selected == 1:
-            self.__download_widgets_set_sensitive(True)
+            self.unselect_all_menu_item.set_sensitive(True)
+            self.remove_tool_button.set_sensitive(True)
+            self.remove_imi.set_sensitive(True)
+            self.details_tool_button.set_sensitive(True)
+            self.details_imi.set_sensitive(True)
             if downloads:
                 status = downloads[0].status
                 self.__set_widgets_sensitivity_for_status(status)
 
         elif number_selected > 1:
-            self.__download_widgets_set_sensitive(True)
+            self.__download_widgets_set_sensitive(False)
+            self.unselect_all_menu_item.set_sensitive(True)
+            self.remove_tool_button.set_sensitive(True)
+            self.remove_imi.set_sensitive(True)
 
-            has_cancled = has_paused = False
+            has_paused = has_canceled = has_active = False
             if downloads:
                 for download in downloads:
-                    self.__set_widgets_sensitivity_for_status(download.status)
+                    if download.status == Download.PAUSED:
+                        has_paused = True
+                    elif download.status == Download.CANCELED:
+                        has_canceled = True
+                    elif download.status == Download.CONNECTING or \
+                         download.status == Download.DOWNLOADING:
+                        has_active = True
+
+            if has_paused or has_canceled:
+                self.resume_tool_button.set_sensitive(True)
+                self.resume_imi.set_sensitive(True)
+
+            if has_active:
+                self.pause_tool_button.set_sensitive(True)
+                self.pause_imi.set_sensitive(True)
+                self.cancel_tool_button.set_sensitive(True)
+                self.cancel_imi.set_sensitive(True)
+
+            self.pause_imi.props.visible = self.pause_imi.props.sensitive
+            self.resume_imi.props.visible = self.resume_imi.props.sensitive
+            self.cancel_imi.props.visible = self.cancel_imi.props.sensitive
 
             # Details should only be possible if one row is selected
             self.details_tool_button.set_sensitive(False)
@@ -512,44 +539,38 @@
         self.remove_imi.set_sensitive(sensitive)
         self.details_tool_button.set_sensitive(sensitive)
         self.details_imi.set_sensitive(sensitive)
-        self.unselect_all_menu_item.set_sensitive(sensitive)
 
-    def __set_widgets_sensitivity_for_status(self, status,
-                                             single_selection=True):
+    def __set_widgets_sensitivity_for_status(self, status):
         """Sets the appropriate sensitivity property for widgets based on the
         given status."""
 
         if status == Download.COMPLETED:
-            if single_selection:
-                self.pause_tool_button.set_sensitive(False)
-                self.pause_imi.set_sensitive(False)
-                self.resume_tool_button.set_sensitive(False)
-                self.resume_imi.set_sensitive(False)
-                self.cancel_tool_button.set_sensitive(False)
-                self.cancel_imi.set_sensitive(False)
+            self.pause_tool_button.set_sensitive(False)
+            self.pause_imi.set_sensitive(False)
+            self.resume_tool_button.set_sensitive(False)
+            self.resume_imi.set_sensitive(False)
+            self.cancel_tool_button.set_sensitive(False)
+            self.cancel_imi.set_sensitive(False)
 
         elif status == Download.CANCELED:
-            if single_selection:
-                self.pause_tool_button.set_sensitive(False)
-                self.pause_imi.set_sensitive(False)
-                self.cancel_tool_button.set_sensitive(False)
-                self.cancel_imi.set_sensitive(False)
+            self.pause_tool_button.set_sensitive(False)
+            self.pause_imi.set_sensitive(False)
             self.resume_tool_button.set_sensitive(True)
             self.resume_imi.set_sensitive(True)
+            self.cancel_tool_button.set_sensitive(False)
+            self.cancel_imi.set_sensitive(False)
 
         elif status == Download.PAUSED:
-            if single_selection:
-                self.pause_tool_button.set_sensitive(False)
-                self.pause_imi.set_sensitive(False)
+            self.pause_tool_button.set_sensitive(False)
+            self.pause_imi.set_sensitive(False)
             self.resume_tool_button.set_sensitive(True)
             self.resume_imi.set_sensitive(True)
             self.cancel_tool_button.set_sensitive(True)
             self.cancel_imi.set_sensitive(True)
 
         elif status == Download.DOWNLOADING or status == Download.CONNECTING:
-            if single_selection:
-                self.resume_tool_button.set_sensitive(False)
-                self.resume_imi.set_sensitive(False)
+            self.resume_tool_button.set_sensitive(False)
+            self.resume_imi.set_sensitive(False)
             self.pause_tool_button.set_sensitive(True)
             self.pause_imi.set_sensitive(True)
 
@@ -785,7 +806,7 @@
     def __download_status_changed(self, download, status):
         """Called when the status of a download changes. Tells the treeview to
         update the row with that download."""
-        self.__set_widgets_sensitivity_for_status(status)
+        self.__downloads_treeview_selection_changed(self.downloads_treeview_selection)
         self.update_download_row(download)
 
     def update_download_row(self, download):



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