gget r14 - in trunk: data gget
- From: johans svn gnome org
- To: svn-commits-list gnome org
- Subject: gget r14 - in trunk: data gget
- Date: Mon, 23 Jun 2008 23:19:28 +0000 (UTC)
Author: johans
Date: Mon Jun 23 23:19:28 2008
New Revision: 14
URL: http://svn.gnome.org/viewvc/gget?rev=14&view=rev
Log:
Hacked more on various stuff.
Modified:
trunk/data/gget.glade
trunk/data/gget.schemas.in
trunk/gget/AddDownloadDialog.py
trunk/gget/Configuration.py
trunk/gget/GUI.py
trunk/gget/MainWindow.py
Modified: trunk/data/gget.glade
==============================================================================
--- trunk/data/gget.glade (original)
+++ trunk/data/gget.glade Mon Jun 23 23:19:28 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 Mon Jun 23 08:26:27 2008 -->
+<!--Generated with glade3 3.4.5 on Mon Jun 23 23:52:28 2008 -->
<glade-interface>
<widget class="GtkWindow" id="main_window">
<property name="width_request">800</property>
@@ -68,6 +68,34 @@
</widget>
</child>
<child>
+ <widget class="GtkMenuItem" id="menuitem3">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Visa</property>
+ <property name="use_underline">True</property>
+ <child>
+ <widget class="GtkMenu" id="menu4">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkCheckMenuItem" id="show_toolbar_menu_item">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Toolbar</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkCheckMenuItem" id="show_statusbar_menu_item">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Statusbar</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
<widget class="GtkMenuItem" id="menuitem4">
<property name="visible">True</property>
<property name="label" translatable="yes">_HjÃlp</property>
@@ -529,8 +557,8 @@
<widget class="GtkFileChooserButton" id="default_folder_filechooserbutton">
<property name="visible">True</property>
<property name="sensitive">False</property>
- <property name="local_only">False</property>
<property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
+ <property name="local_only">False</property>
<property name="title" translatable="yes">Select download folder</property>
</widget>
</child>
Modified: trunk/data/gget.schemas.in
==============================================================================
--- trunk/data/gget.schemas.in (original)
+++ trunk/data/gget.schemas.in Mon Jun 23 23:19:28 2008
@@ -1,6 +1,28 @@
<gconfschemafile>
<schemalist>
<schema>
+ <key>/schemas/apps/gget/general/show_statusbar</key>
+ <applyto>/apps/gget/general/show_statusbar</applyto>
+ <owner>gget</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Show statusbar</short>
+ <long>Whether GGet should display a statusbar in the main window.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/gget/general/show_toolbar</key>
+ <applyto>/apps/gget/general/show_toolbar</applyto>
+ <owner>gget</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Show toolbar</short>
+ <long>Whether GGet should display a toolbar in the main window.</long>
+ </locale>
+ </schema>
+ <schema>
<key>/schemas/apps/gget/general/show_status_icon</key>
<applyto>/apps/gget/general/show_status_icon</applyto>
<owner>gget</owner>
Modified: trunk/gget/AddDownloadDialog.py
==============================================================================
--- trunk/gget/AddDownloadDialog.py (original)
+++ trunk/gget/AddDownloadDialog.py Mon Jun 23 23:19:28 2008
@@ -92,9 +92,9 @@
download_manager = DownloadManager()
download_manager.start_download(self.url_entry.get_text(),
self.download_filechooserbutton.get_current_folder())
- self.dialog.hide()
+ self.dialog.destroy()
def __cancel_button_clicked(self, button):
- self.dialog.hide()
+ self.dialog.destroy()
# vim: set sw=4 et sts=4 tw=79 fo+=l:
Modified: trunk/gget/Configuration.py
==============================================================================
--- trunk/gget/Configuration.py (original)
+++ trunk/gget/Configuration.py Mon Jun 23 23:19:28 2008
@@ -28,6 +28,8 @@
DIR_GGET = "/apps/gget"
+KEY_SHOW_STATUSBAR = "/general/show_statusbar"
+KEY_SHOW_TOOLBAR = "/general/show_toolbar"
KEY_SHOW_STATUS_ICON = "/general/show_status_icon"
KEY_SHOW_MAIN_WINDOW = "/general/show_main_window"
KEY_AUTOSTART = "/general/autostart"
@@ -35,7 +37,9 @@
KEY_ASK_FOR_LOCATION = "/folders/ask_for_location"
KEY_DEFAULT_FOLDER = "/folders/default_folder"
-FUNCTION_SUFFIXES = {KEY_SHOW_STATUS_ICON: 'bool',
+FUNCTION_SUFFIXES = {KEY_SHOW_TOOLBAR: 'bool',
+ KEY_SHOW_STATUSBAR: 'bool',
+ KEY_SHOW_STATUS_ICON: 'bool',
KEY_SHOW_MAIN_WINDOW: 'bool',
KEY_AUTOSTART: 'bool',
KEY_AUTORESUME: 'bool',
@@ -99,6 +103,31 @@
FUNCTION_SUFFIXES[option])(DIR_GGET + option, value)
self.option_cache[option] = value
+ # Show Statusbar
+ def get_show_statusbar(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_SHOW_STATUSBAR]
+ else:
+ return self.__get_option(KEY_SHOW_STATUSBAR)
+
+ def set_show_statusbar(self, show_statusbar):
+ self.__set_option(KEY_SHOW_STATUSBAR, show_statusbar)
+
+ show_statusbar = property(get_show_statusbar, set_show_statusbar)
+
+ # Show Toolbar
+ def get_show_toolbar(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_SHOW_TOOLBAR]
+ else:
+ return self.__get_option(KEY_SHOW_TOOLBAR)
+
+ def set_show_toolbar(self, show_toolbar):
+ self.__set_option(KEY_SHOW_TOOLBAR, show_toolbar)
+
+ show_toolbar = property(get_show_toolbar, set_show_toolbar)
+
+ # Show Status icon
def get_show_status_icon(self, use_cache=True):
if use_cache:
return self.option_cache[KEY_SHOW_STATUS_ICON]
@@ -110,6 +139,7 @@
show_status_icon = property(get_show_status_icon, set_show_status_icon)
+ # Show Main window
def get_show_main_window(self, use_cache=True):
if use_cache:
return self.option_cache[KEY_SHOW_MAIN_WINDOW]
@@ -121,6 +151,7 @@
show_main_window = property(get_show_main_window, set_show_main_window)
+ # Autostart
def get_autostart(self, use_cache=True):
if use_cache:
return self.option_cache[KEY_AUTOSTART]
@@ -132,6 +163,7 @@
autostart = property(get_autostart, set_autostart)
+ # Autoresume
def get_autoresume(self, use_cache=True):
if use_cache:
return self.option_cache[KEY_AUTORESUME]
@@ -143,6 +175,7 @@
autoresume = property(get_autoresume, set_autoresume)
+ # Ask for location
def get_ask_for_location(self, use_cache=True):
if use_cache:
return self.option_cache[KEY_ASK_FOR_LOCATION]
@@ -154,6 +187,7 @@
ask_for_location = property(get_ask_for_location, set_ask_for_location)
+ # Default folder
def get_default_folder(self, use_cache=True):
if use_cache:
return self.option_cache[KEY_DEFAULT_FOLDER]
Modified: trunk/gget/GUI.py
==============================================================================
--- trunk/gget/GUI.py (original)
+++ trunk/gget/GUI.py Mon Jun 23 23:19:28 2008
@@ -68,6 +68,14 @@
for column in columns:
column.queue_resize()
+def get_selected_value(treeview):
+ selection = treeview.get_selection()
+ (model, iter) = selection.get_selected()
+ if iter:
+ value = model.get_value(iter, 0)
+ return value
+ return None
+
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 Mon Jun 23 23:19:28 2008
@@ -24,7 +24,9 @@
import gtk
import gobject
+import gconf
+import Configuration
import GUI
import Utils
from GUI import ErrorDialog
@@ -44,6 +46,13 @@
self.__make_downloads_treeview()
self.__connect_widgets()
+ self.__add_config_notifications()
+
+ self.show_toolbar_menu_item.set_active(self.config.show_toolbar)
+ 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
def __get_widgets(self):
"""Get widgets from the glade file."""
@@ -58,10 +67,16 @@
# Edit menu
self.preferences_menu_item = xml.get_widget("preferences_menu_item")
+ # 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")
+
# Help menu
self.about_menu_item = xml.get_widget("about_menu_item")
# Toolbar
+ self.toolbar = xml.get_widget("toolbar")
+
self.add_tool_button = xml.get_widget("add_tool_button")
self.pause_tool_button = xml.get_widget("pause_tool_button")
self.cancel_tool_button = xml.get_widget("cancel_tool_button")
@@ -135,6 +150,21 @@
self.__eta_cell_data_func)
self.downloads_treeview.append_column(eta_treeview_column)
+ # Context menu
+ self.downloads_treeview_menu = gtk.Menu()
+ self.pause_imi = gtk.ImageMenuItem(gtk.STOCK_MEDIA_PAUSE)
+ self.pause_imi.show()
+ self.downloads_treeview_menu.append(self.pause_imi)
+
+ self.resume_imi = gtk.ImageMenuItem(_("Resume"))
+ self.resume_imi.get_image().set_from_stock(gtk.STOCK_MEDIA_PLAY,
+ gtk.ICON_SIZE_MENU)
+ self.downloads_treeview_menu.append(self.resume_imi)
+
+ self.cancel_imi = gtk.ImageMenuItem(gtk.STOCK_CANCEL)
+ self.cancel_imi.show()
+ self.downloads_treeview_menu.append(self.cancel_imi)
+
def __name_cell_data_func(self, column, cell, model, iter):
"""Data function for the name of downloads."""
download = model.get_value(iter, 0)
@@ -178,16 +208,32 @@
self.preferences_menu_item.connect("activate",
self.preferences_menu_item_activate)
+ # Show menu
+ self.show_toolbar_menu_item.connect("toggled",
+ self.__show_toolbar_menu_item_toggled)
+ self.show_statusbar_menu_item.connect("toggled",
+ self.__show_statusbar_menu_item_toggled)
+
# Help
self.about_menu_item.connect("activate",
self.__about_menu_item_activate)
# Toolbar
self.add_tool_button.connect("clicked", self.show_add_download_dialog)
+ self.pause_tool_button.connect("clicked",
+ self.__pause_tool_button_clicked)
+ self.cancel_tool_button.connect("clicked", self.__cancel_download)
+ # Download treeview
selection = self.downloads_treeview.get_selection()
selection.connect("changed",
self.__downloads_treeview_selection_changed)
+ 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)
def show_add_download_dialog(self, widget):
"""Show the dialog used for adding a new download."""
@@ -199,25 +245,93 @@
pd = PreferencesDialog(self.config)
pd.dialog.show()
+ def __show_toolbar_menu_item_toggled(self, menu_item):
+ """Show/Hide toolbar"""
+ self.config.show_toolbar = menu_item.get_active()
+
+ def __show_statusbar_menu_item_toggled(self, menu_item):
+ """Show/Hide statusbar"""
+ self.config.show_statusbar = menu_item.get_active()
+
def __about_menu_item_activate(self, menu_item):
"""Show the about dialog."""
ad = AboutDialog()
ad.run()
def __downloads_treeview_selection_changed(self, selection):
+ """When selection changes set sensitivity appropriately."""
(downloads_model, downloads_iter) = selection.get_selected()
if downloads_iter:
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)
else:
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)
+
+ 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:
+ menu.popup(None, None, None, event.button, event.time)
+
+ def __pause_tool_button_clicked(self, tool_button):
+ download = GUI.get_selected_value(self.downloads_treeview)
+ if download:
+ stock = tool_button.get_stock_id()
+ if stock == gtk.STOCK_MEDIA_PAUSE:
+ tool_button.set_stock_id(gtk.STOCK_MEDIA_PLAY)
+ tool_button.set_label(_("Resume"))
+ else:
+ tool_button.set_stock_id(gtk.STOCK_MEDIA_PAUSE)
+ tool_button.set_label(None)
+
+ def __pause_imi_activate(self, imagemenuitem):
+ download = GUI.get_selected_value(self.downloads_treeview)
+ if download:
+ imagemenuitem.hide()
+ self.resume_imi.show()
+
+ def __resume_imi_activate(self, imagemenuitem):
+ download = GUI.get_selected_value(self.downloads_treeview)
+ if download:
+ imagemenuitem.hide()
+ self.pause_imi.show()
+
+ def __cancel_download(self, widget):
+ download = GUI.get_selected_value(self.downloads_treeview)
+ if download:
+ pass
def quit(self, widget):
"""Quits the application. Called from various places."""
# TODO: Shutdown gracefully
gtk.main_quit()
+ def __add_config_notifications(self):
+ 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)
+
+ def __show_toolbar_key_changed(self, client, cnxn_id, entry, data):
+ if not entry.value:
+ self.toolbar.props.visible = True
+ elif entry.value.type == gconf.VALUE_BOOL:
+ self.toolbar.props.visible = entry.value.get_bool()
+ else:
+ self.toolbar.props.visible = True
+
+ def __show_statusbar_key_changed(self, client, cnxn_id, entry, data):
+ 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 __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]