gget r21 - trunk/gget



Author: johans
Date: Wed Jul  2 08:48:28 2008
New Revision: 21
URL: http://svn.gnome.org/viewvc/gget?rev=21&view=rev

Log:
Added menu items to the context menu for opening the downloaded file and the folder containing it.

Modified:
   trunk/gget/GUI.py
   trunk/gget/MainWindow.py

Modified: trunk/gget/GUI.py
==============================================================================
--- trunk/gget/GUI.py	(original)
+++ trunk/gget/GUI.py	Wed Jul  2 08:48:28 2008
@@ -24,6 +24,8 @@
 import gtk
 import gtk.gdk
 import gtk.glade
+import gnomevfs
+import gnome.ui
 
 from gget import NAME, DATA_DIR, LOCALE_DIR, IMAGES_DIR
 
@@ -87,6 +89,10 @@
         return value
     return None
 
+def open_file_on_screen(file, screen):
+    uri = gnomevfs.make_uri_from_input_with_dirs(file, 2)
+    gnome.ui.url_show_on_screen(uri, screen)
+
 class ErrorDialog(gtk.MessageDialog):
     def __init__(self, primary_msg, secondary_msg):
         gtk.MessageDialog.__init__(self, parent=None,

Modified: trunk/gget/MainWindow.py
==============================================================================
--- trunk/gget/MainWindow.py	(original)
+++ trunk/gget/MainWindow.py	Wed Jul  2 08:48:28 2008
@@ -210,6 +210,20 @@
         self.cancel_imi.show()
         self.downloads_treeview_menu.append(self.cancel_imi)
 
+        separator_imi = gtk.SeparatorMenuItem()
+        separator_imi.show()
+        self.downloads_treeview_menu.append(separator_imi)
+
+        self.open_imi = gtk.ImageMenuItem(_("Open"))
+        self.open_imi.show()
+        self.downloads_treeview_menu.append(self.open_imi)
+
+        self.open_folder_imi = gtk.ImageMenuItem(_("Open folder"))
+        self.open_folder_imi.get_image().set_from_stock(gtk.STOCK_OPEN,
+                gtk.ICON_SIZE_MENU)
+        self.open_folder_imi.show()
+        self.downloads_treeview_menu.append(self.open_folder_imi)
+
     def __image_cell_data_func(self, column, cell, model, iter):
         """Data function for the image of the download."""
         download = model.get_value(iter, 0)
@@ -309,6 +323,8 @@
         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)
+        self.open_imi.connect("activate", self.__open_imi_activate)
+        self.open_folder_imi.connect("activate", self.__open_folder_imi_activate)
 
     def __window_configure_event(self, widget, event):
         """Saves the window geometry and position"""
@@ -412,9 +428,11 @@
             self.cancel_imi.set_sensitive(False)
 
     def __downloads_treeview_row_activated(self, treeview, path, column):
+        """Called when a download is double-clicked. Opens the file with the
+        associated program."""
         download = self.downloads_model[path][0]
-        uri = gnomevfs.make_uri_from_input_with_dirs(download.file, 2)
-        gnome.ui.url_show_on_screen(uri, treeview.get_screen())
+        if download:
+            GUI.open_file_on_screen(download.file, treeview.get_screen())
 
     def __downloads_treeview_button_press(self, treeview, event, menu):
         """Show context menu for downloads treeview"""
@@ -463,6 +481,19 @@
         if download:
             pass
 
+    def __open_imi_activate(self, imagemenuitem):
+        """Opens the downloaded file with the associated program."""
+        download = GUI.get_selected_value(self.downloads_treeview)
+        if download:
+            GUI.open_file_on_screen(download.file, imagemenuitem.get_screen())
+
+    def __open_folder_imi_activate(self, imagemenuitem):
+        """Opens the folder containing the download."""
+        download = GUI.get_selected_value(self.downloads_treeview)
+        if download:
+            uri = gnomevfs.make_uri_from_input(download.path)
+            gnome.ui.url_show_on_screen(uri, imagemenuitem.get_screen())
+
     def quit(self, widget):
         """Quits the application. Called from various places."""
         # TODO: Shutdown gracefully



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