gget r19 - trunk/gget
- From: johans svn gnome org
- To: svn-commits-list gnome org
- Subject: gget r19 - trunk/gget
- Date: Fri, 27 Jun 2008 14:26:08 +0000 (UTC)
Author: johans
Date: Fri Jun 27 14:26:08 2008
New Revision: 19
URL: http://svn.gnome.org/viewvc/gget?rev=19&view=rev
Log:
Added a column in the download treeview showing the icon for the mime type for the file being downloaded. Also made it so that the associated program starts on row activation.
Modified:
trunk/gget/Download.py
trunk/gget/GUI.py
trunk/gget/MainWindow.py
Modified: trunk/gget/Download.py
==============================================================================
--- trunk/gget/Download.py (original)
+++ trunk/gget/Download.py Fri Jun 27 14:26:08 2008
@@ -46,6 +46,7 @@
self.path = path
self.file_name = os.path.basename(self.url)
+ self.file = os.path.join(path, self.file_name)
self.size = 0
self.block_count = 0
Modified: trunk/gget/GUI.py
==============================================================================
--- trunk/gget/GUI.py (original)
+++ trunk/gget/GUI.py Fri Jun 27 14:26:08 2008
@@ -63,6 +63,17 @@
return pixbuf
+def load_icon_from_mime_type(mime_type, size=48):
+ """Loads an icon from a mime type string. This is ugly and error prone,
+ there must be a better way to do this."""
+ l = mime_type.split("/")
+ mime = "%s-%s" % (l[0], l[1])
+ pixbuf = icon_theme.load_icon(mime, size, gtk.ICON_LOOKUP_USE_BUILTIN)
+ if not pixbuf:
+ mime = "gnome-mime-%s" % mime
+ pixbuf = icon_theme.load_icon(mime, size, gtk.ICON_LOOKUP_USE_BUILTIN)
+ return pixbuf
+
def queue_resize(treeview):
columns = treeview.get_columns()
for column in columns:
Modified: trunk/gget/MainWindow.py
==============================================================================
--- trunk/gget/MainWindow.py (original)
+++ trunk/gget/MainWindow.py Fri Jun 27 14:26:08 2008
@@ -25,6 +25,8 @@
import gtk
import gobject
import gconf
+import gnomevfs
+import gnome.ui
import Configuration
import GUI
@@ -109,17 +111,25 @@
self.downloads_model = gtk.ListStore(object)
self.downloads_treeview.set_model(self.downloads_model)
- # Name
+ # 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_cell_renderer)
+
+ 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.__image_cell_data_func)
+ name_treeview_column.pack_start(name_cell_renderer)
name_treeview_column.set_cell_data_func(name_cell_renderer,
self.__name_cell_data_func)
self.downloads_treeview.append_column(name_treeview_column)
- # Status
+ # Status column
status_cell_renderer = gtk.CellRendererText()
status_cell_renderer.props.xpad = 3
status_cell_renderer.props.ypad = 3
@@ -129,7 +139,7 @@
self.__status_cell_data_func)
self.downloads_treeview.append_column(status_treeview_column)
- # Size
+ # Size column
size_cell_renderer = gtk.CellRendererText()
size_cell_renderer.props.xpad = 3
size_cell_renderer.props.ypad = 3
@@ -139,7 +149,7 @@
self.__size_cell_data_func)
self.downloads_treeview.append_column(size_treeview_column)
- # Progress
+ # Progress column
progress_cell_renderer = gtk.CellRendererProgress()
progress_cell_renderer.props.xpad = 3
progress_cell_renderer.props.ypad = 3
@@ -149,7 +159,7 @@
self.__progress_cell_data_func)
self.downloads_treeview.append_column(progress_treeview_column)
- # Speed
+ # Speed column
speed_cell_renderer = gtk.CellRendererText()
speed_cell_renderer.props.xpad = 3
speed_cell_renderer.props.ypad = 3
@@ -159,7 +169,7 @@
self.__speed_cell_data_func)
self.downloads_treeview.append_column(speed_treeview_column)
- # ETA
+ # ETA column
eta_cell_renderer = gtk.CellRendererText()
eta_cell_renderer.props.xpad = 3
eta_cell_renderer.props.ypad = 3
@@ -184,6 +194,13 @@
self.cancel_imi.show()
self.downloads_treeview_menu.append(self.cancel_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)
+ mime_type = gnomevfs.get_file_mime_type(download.file_name)
+ cell.props.pixbuf = GUI.load_icon_from_mime_type(mime_type,
+ 32)
+
def __name_cell_data_func(self, column, cell, model, iter):
"""Data function for the name of downloads."""
download = model.get_value(iter, 0)
@@ -250,6 +267,8 @@
selection = self.downloads_treeview.get_selection()
selection.connect("changed",
self.__downloads_treeview_selection_changed)
+ self.downloads_treeview.connect("row-activated",
+ self.__downloads_treeview_row_activated)
self.downloads_treeview.connect("button-press-event",
self.__downloads_treeview_button_press,
self.downloads_treeview_menu)
@@ -334,6 +353,11 @@
self.cancel_tool_button.set_sensitive(False)
self.cancel_imi.set_sensitive(False)
+ def __downloads_treeview_row_activated(self, treeview, path, column):
+ 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())
+
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:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]