gget r22 - in trunk: . data gget
- From: johans svn gnome org
- To: svn-commits-list gnome org
- Subject: gget r22 - in trunk: . data gget
- Date: Fri, 4 Jul 2008 22:56:23 +0000 (UTC)
Author: johans
Date: Fri Jul 4 22:56:22 2008
New Revision: 22
URL: http://svn.gnome.org/viewvc/gget?rev=22&view=rev
Log:
Added support for proxies.
Modified:
trunk/configure.ac
trunk/data/gget.glade
trunk/data/gget.schemas.in
trunk/gget/Configuration.py
trunk/gget/DownloadManager.py
trunk/gget/MainWindow.py
trunk/gget/PreferencesDialog.py
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Fri Jul 4 22:56:22 2008
@@ -47,7 +47,7 @@
dnl Requirements
dnl ============
-PKG_CHECK_MODULES(ONTV,
+PKG_CHECK_MODULES(GGET,
gtk+-2.0 >= 2.10.0
pygtk-2.0 >= 2.10.0
pygobject-2.0 >= 2.12.0
Modified: trunk/data/gget.glade
==============================================================================
--- trunk/data/gget.glade (original)
+++ trunk/data/gget.glade Fri Jul 4 22:56:22 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 30 11:04:22 2008 -->
+<!--Generated with glade3 3.4.5 on Sat Jul 5 00:14:15 2008 -->
<glade-interface>
<widget class="GtkWindow" id="main_window">
<property name="width_request">800</property>
@@ -428,7 +428,7 @@
<property name="visible">True</property>
<property name="border_width">6</property>
<child>
- <widget class="GtkAlignment" id="alignment4">
+ <widget class="GtkAlignment" id="general_alignment1">
<property name="visible">True</property>
<property name="top_padding">6</property>
<property name="bottom_padding">6</property>
@@ -489,7 +489,7 @@
</packing>
</child>
<child>
- <widget class="GtkAlignment" id="alignment6">
+ <widget class="GtkAlignment" id="general_alignment2">
<property name="visible">True</property>
<property name="top_padding">6</property>
<property name="bottom_padding">12</property>
@@ -570,6 +570,7 @@
<widget class="GtkAlignment" id="folders_alignment">
<property name="visible">True</property>
<property name="top_padding">6</property>
+ <property name="bottom_padding">3</property>
<child>
<widget class="GtkFrame" id="default_download_folders_frame">
<property name="visible">True</property>
@@ -788,11 +789,225 @@
<child>
<widget class="GtkVBox" id="network_vbox">
<property name="visible">True</property>
+ <property name="border_width">6</property>
<child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
+ <widget class="GtkAlignment" id="network_alignment">
+ <property name="visible">True</property>
+ <property name="top_padding">6</property>
+ <child>
+ <widget class="GtkFrame" id="proxy_frame">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="proxy_alignment">
+ <property name="visible">True</property>
+ <property name="top_padding">6</property>
+ <property name="bottom_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="proxy_vbox">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkRadioButton" id="direct_radiobutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Direct _Internet connection</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton" id="gnome_radiobutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Default _GNOME network settings</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">direct_radiobutton</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkRadioButton" id="manual_radiobutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Manual proxy configuration</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">direct_radiobutton</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkAlignment" id="manual_proxy_alignment">
+ <property name="visible">True</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">23</property>
+ <child>
+ <widget class="GtkVBox" id="manual_proxy_vbox">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkHBox" id="proxy_hbox">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkLabel" id="proxy_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Proxy:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">proxy_entry</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="proxy_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="proxy_port_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">P_ort:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">proxy_port_spinbutton</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="proxy_port_spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">0 0 65550 1 100 10</property>
+ </widget>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="proxy_auth_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Proxy requires _authentication</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="proxy_auth_hbox">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkLabel" id="proxy_user_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_User:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">proxy_user_entry</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="proxy_user_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="proxy_password_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Pass_word:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">proxy_password_entry</property>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="proxy_password_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="visibility">False</property>
+ </widget>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Proxy Configuration</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
</child>
</widget>
<packing>
Modified: trunk/data/gget.schemas.in
==============================================================================
--- trunk/data/gget.schemas.in (original)
+++ trunk/data/gget.schemas.in Fri Jul 4 22:56:22 2008
@@ -124,6 +124,90 @@
</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>
+ <schema>
<key>/schemas/apps/gget/folders/ask_for_location</key>
<applyto>/apps/gget/folders/ask_for_location</applyto>
<owner>gget</owner>
@@ -196,86 +280,82 @@
</locale>
</schema>
<schema>
- <key>/schemas/apps/gget/general/show_status</key>
- <applyto>/apps/gget/general/show_status</applyto>
+ <key>/schemas/apps/gget/network/proxy_mode</key>
+ <applyto>/apps/gget/network/proxy_mode</applyto>
<owner>gget</owner>
- <type>bool</type>
- <default>true</default>
+ <type>string</type>
+ <default>direct</default>
<locale name="C">
- <short>Show status</short>
+ <short>Mode for proxy configuration</short>
<long>
- Whether GGet should display a status column for downloads
- in the main window.
+ Mode for proxy configuration, can be either "direct",
+ "gnome" or "manual".
</long>
</locale>
</schema>
<schema>
- <key>/schemas/apps/gget/general/show_current_size</key>
- <applyto>/apps/gget/general/show_current_size</applyto>
+ <key>/schemas/apps/gget/network/proxy_host</key>
+ <applyto>/apps/gget/network/proxy_host</applyto>
<owner>gget</owner>
- <type>bool</type>
- <default>true</default>
+ <type>string</type>
+ <default></default>
<locale name="C">
- <short>Show current size</short>
+ <short>HTTP proxy host</short>
<long>
- Whether GGet should display a current size column for
- downloads in the main window.
+ Hostname for the HTTP proxy.
</long>
</locale>
</schema>
<schema>
- <key>/schemas/apps/gget/general/show_total_size</key>
- <applyto>/apps/gget/general/show_total_size</applyto>
+ <key>/schemas/apps/gget/network/proxy_port</key>
+ <applyto>/apps/gget/network/proxy_port</applyto>
<owner>gget</owner>
- <type>bool</type>
- <default>true</default>
+ <type>int</type>
+ <default>8080</default>
<locale name="C">
- <short>Show total size</short>
+ <short>HTTP proxy port</short>
<long>
- Whether GGet should display a total size column for
- downloads in the main window.
+ Port number for the HTTP proxy.
</long>
</locale>
</schema>
<schema>
- <key>/schemas/apps/gget/general/show_progress</key>
- <applyto>/apps/gget/general/show_progress</applyto>
+ <key>/schemas/apps/gget/network/proxy_auth</key>
+ <applyto>/apps/gget/network/proxy_auth</applyto>
<owner>gget</owner>
<type>bool</type>
- <default>true</default>
+ <default>false</default>
<locale name="C">
- <short>Show progress</short>
+ <short>Use authentication for HTTP proxy</short>
<long>
- Whether GGet should display a progress column for
- downloads in the main window.
+ Whether to use authentication when connecting to the HTTP
+ proxy.
</long>
</locale>
</schema>
<schema>
- <key>/schemas/apps/gget/general/show_speed</key>
- <applyto>/apps/gget/general/show_speed</applyto>
+ <key>/schemas/apps/gget/network/proxy_user</key>
+ <applyto>/apps/gget/network/proxy_user</applyto>
<owner>gget</owner>
- <type>bool</type>
- <default>true</default>
+ <type>string</type>
+ <default></default>
<locale name="C">
- <short>Show speed</short>
+ <short>HTTP proxy username</short>
<long>
- Whether GGet should display a speed column for
- downloads in the main window.
+ The username to use when connecting the the HTTP proxy.
</long>
</locale>
</schema>
<schema>
- <key>/schemas/apps/gget/general/show_eta</key>
- <applyto>/apps/gget/general/show_eta</applyto>
+ <key>/schemas/apps/gget/network/proxy_password</key>
+ <applyto>/apps/gget/network/proxy_password</applyto>
<owner>gget</owner>
- <type>bool</type>
- <default>true</default>
+ <type>string</type>
+ <default></default>
<locale name="C">
- <short>Show ETA</short>
+ <short>HTTP proxy password</short>
<long>
- Whether GGet should display a ETA (Estimated Time of
- Arrival) column for downloads in the main window.
+ The password to use when connecting the the HTTP proxy.
</long>
</locale>
</schema>
Modified: trunk/gget/Configuration.py
==============================================================================
--- trunk/gget/Configuration.py (original)
+++ trunk/gget/Configuration.py Fri Jul 4 22:56:22 2008
@@ -26,8 +26,10 @@
from GUI import ErrorDialog
-DIR_GGET = "/apps/gget"
-DIR_GNOME = "/desktop/gnome"
+DIR_GGET = "/apps/gget"
+DIR_GNOME = "/desktop/gnome"
+DIR_PROXY = "/system/proxy"
+DIR_HTTP_PROXY = "/system/http_proxy"
KEY_SHOW_STATUSBAR = "/general/show_statusbar"
KEY_SHOW_TOOLBAR = "/general/show_toolbar"
@@ -35,11 +37,6 @@
KEY_SHOW_MAIN_WINDOW = "/general/show_main_window"
KEY_AUTOSTART = "/general/autostart"
KEY_AUTORESUME = "/general/autoresume"
-KEY_ASK_FOR_LOCATION = "/folders/ask_for_location"
-KEY_DEFAULT_FOLDER = "/folders/default_folder"
-KEY_CHECK_EXTENSIONS = "/folders/check_extensions"
-KEY_EXTENSIONS = "/folders/extensions"
-KEY_EXTENSION_FOLDERS = "/folders/extension_folders"
KEY_WINDOW_WIDTH = "/general/window_width"
KEY_WINDOW_HEIGHT = "/general/window_height"
KEY_WINDOW_POSITION_X = "/general/window_position_x"
@@ -51,6 +48,19 @@
KEY_SHOW_SPEED = "/general/show_speed"
KEY_SHOW_ETA = "/general/show_eta"
+KEY_ASK_FOR_LOCATION = "/folders/ask_for_location"
+KEY_DEFAULT_FOLDER = "/folders/default_folder"
+KEY_CHECK_EXTENSIONS = "/folders/check_extensions"
+KEY_EXTENSIONS = "/folders/extensions"
+KEY_EXTENSION_FOLDERS = "/folders/extension_folders"
+
+KEY_PROXY_MODE = "/network/proxy_mode"
+KEY_PROXY_HOST = "/network/proxy_host"
+KEY_PROXY_PORT = "/network/proxy_port"
+KEY_PROXY_AUTH = "/network/proxy_auth"
+KEY_PROXY_USER = "/network/proxy_user"
+KEY_PROXY_PASSWORD = "/network/proxy_password"
+
KEY_TOOLBAR_STYLE = "/interface/toolbar_style"
FUNCTION_SUFFIXES = {KEY_SHOW_TOOLBAR: 'bool',
@@ -59,22 +69,31 @@
KEY_SHOW_MAIN_WINDOW: 'bool',
KEY_AUTOSTART: 'bool',
KEY_AUTORESUME: 'bool',
- KEY_ASK_FOR_LOCATION: 'bool',
- KEY_DEFAULT_FOLDER: 'string',
- KEY_CHECK_EXTENSIONS: 'bool',
- KEY_EXTENSIONS: 'list',
- KEY_EXTENSION_FOLDERS: 'list',
KEY_WINDOW_WIDTH: 'int',
KEY_WINDOW_HEIGHT: 'int',
KEY_WINDOW_POSITION_X: 'int',
KEY_WINDOW_POSITION_Y: 'int',
- 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'
+ KEY_SHOW_ETA: 'bool',
+
+ KEY_ASK_FOR_LOCATION: 'bool',
+ KEY_DEFAULT_FOLDER: 'string',
+ KEY_CHECK_EXTENSIONS: 'bool',
+ KEY_EXTENSIONS: 'list',
+ KEY_EXTENSION_FOLDERS: 'list',
+
+ KEY_PROXY_MODE: 'string',
+ KEY_PROXY_HOST: 'string',
+ KEY_PROXY_PORT: 'int',
+ KEY_PROXY_AUTH: 'bool',
+ KEY_PROXY_USER: 'string',
+ KEY_PROXY_PASSWORD: 'string',
+
+ KEY_TOOLBAR_STYLE: 'string'
}
class Configuration(object):
@@ -206,68 +225,6 @@
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]
- else:
- return self.__get_option(KEY_ASK_FOR_LOCATION)
-
- def set_ask_for_location(self, ask_for_location):
- self.__set_option(KEY_ASK_FOR_LOCATION, ask_for_location)
-
- 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]
- else:
- return self.__get_option(KEY_DEFAULT_FOLDER)
-
- def set_default_folder(self, default_folder):
- self.__set_option(KEY_DEFAULT_FOLDER, default_folder)
-
- default_folder = property(get_default_folder, set_default_folder)
-
- # Check extensions
- def get_check_extensions(self, use_cache=True):
- if use_cache:
- return self.option_cache[KEY_CHECK_EXTENSIONS]
- else:
- return self.__get_option(KEY_CHECK_EXTENSIONS)
-
- def set_check_extensions(self, check_extensions):
- self.__set_option(KEY_CHECK_EXTENSIONS, check_extensions)
-
- check_extensions = property(get_check_extensions, set_check_extensions)
-
- # Extensions
- def get_extensions(self, use_cache=True):
- if use_cache:
- return self.option_cache[KEY_EXTENSIONS]
- else:
- return self.__get_option(KEY_EXTENSIONS, type=gconf.VALUE_STRING)
-
- def set_extensions(self, extensions):
- self.__set_option(KEY_EXTENSIONS, extensions, type=gconf.VALUE_STRING)
-
- extensions = property(get_extensions, set_extensions)
-
- # Extension folders
- def get_extension_folders(self, use_cache=True):
- if use_cache:
- return self.option_cache[KEY_EXTENSION_FOLDERS]
- else:
- return self.__get_option(KEY_EXTENSION_FOLDERS,
- type=gconf.VALUE_STRING)
-
- def set_extension_folders(self, extension_folders):
- self.__set_option(KEY_EXTENSION_FOLDERS, extension_folders,
- type=gconf.VALUE_STRING)
-
- extension_folders = property(get_extension_folders, set_extension_folders)
-
# Window width
def get_window_width(self, use_cache=True):
if use_cache:
@@ -311,23 +268,6 @@
else:
return self.__get_option(KEY_WINDOW_POSITION_Y)
- def set_window_position_y(self, window_position_y):
- self.__set_option(KEY_WINDOW_POSITION_Y, window_position_y)
-
- window_position_y = property(get_window_position_y, set_window_position_y)
-
- # Toolbar style
- def get_toolbar_style(self, use_cache=True):
- if use_cache:
- return self.option_cache[KEY_TOOLBAR_STYLE]
- else:
- return self.__get_option(KEY_TOOLBAR_STYLE)
-
- def set_toolbar_style(self, toolbar_style):
- self.__set_option(KEY_TOOLBAR_STYLE, toolbar_style)
-
- toolbar_style = property(get_toolbar_style, set_toolbar_style)
-
# Show status
def get_show_status(self, use_cache=True):
if use_cache:
@@ -400,4 +340,155 @@
show_eta = property(get_show_eta, set_show_eta)
+ def set_window_position_y(self, window_position_y):
+ self.__set_option(KEY_WINDOW_POSITION_Y, window_position_y)
+
+ window_position_y = property(get_window_position_y, set_window_position_y)
+
+ # Ask for location
+ def get_ask_for_location(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_ASK_FOR_LOCATION]
+ else:
+ return self.__get_option(KEY_ASK_FOR_LOCATION)
+
+ def set_ask_for_location(self, ask_for_location):
+ self.__set_option(KEY_ASK_FOR_LOCATION, ask_for_location)
+
+ 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]
+ else:
+ return self.__get_option(KEY_DEFAULT_FOLDER)
+
+ def set_default_folder(self, default_folder):
+ self.__set_option(KEY_DEFAULT_FOLDER, default_folder)
+
+ default_folder = property(get_default_folder, set_default_folder)
+
+ # Check extensions
+ def get_check_extensions(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_CHECK_EXTENSIONS]
+ else:
+ return self.__get_option(KEY_CHECK_EXTENSIONS)
+
+ def set_check_extensions(self, check_extensions):
+ self.__set_option(KEY_CHECK_EXTENSIONS, check_extensions)
+
+ check_extensions = property(get_check_extensions, set_check_extensions)
+
+ # Extensions
+ def get_extensions(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_EXTENSIONS]
+ else:
+ return self.__get_option(KEY_EXTENSIONS, type=gconf.VALUE_STRING)
+
+ def set_extensions(self, extensions):
+ self.__set_option(KEY_EXTENSIONS, extensions, type=gconf.VALUE_STRING)
+
+ extensions = property(get_extensions, set_extensions)
+
+ # Extension folders
+ def get_extension_folders(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_EXTENSION_FOLDERS]
+ else:
+ return self.__get_option(KEY_EXTENSION_FOLDERS,
+ type=gconf.VALUE_STRING)
+
+ def set_extension_folders(self, extension_folders):
+ self.__set_option(KEY_EXTENSION_FOLDERS, extension_folders,
+ type=gconf.VALUE_STRING)
+
+ extension_folders = property(get_extension_folders, set_extension_folders)
+
+ # Proxy mode
+ def get_proxy_mode(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_PROXY_MODE]
+ else:
+ return self.__get_option(KEY_PROXY_MODE)
+
+ def set_proxy_mode(self, proxy_mode):
+ self.__set_option(KEY_PROXY_MODE, proxy_mode)
+
+ proxy_mode = property(get_proxy_mode, set_proxy_mode)
+
+ # Proxy host
+ def get_proxy_host(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_PROXY_HOST]
+ else:
+ return self.__get_option(KEY_PROXY_HOST)
+
+ def set_proxy_host(self, proxy_host):
+ self.__set_option(KEY_PROXY_HOST, proxy_host)
+
+ proxy_host = property(get_proxy_host, set_proxy_host)
+
+ # Proxy port
+ def get_proxy_port(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_PROXY_PORT]
+ else:
+ return self.__get_option(KEY_PROXY_PORT)
+
+ def set_proxy_port(self, proxy_port):
+ self.__set_option(KEY_PROXY_PORT, proxy_port)
+
+ proxy_port = property(get_proxy_port, set_proxy_port)
+
+ # Proxy auth
+ def get_proxy_auth(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_PROXY_AUTH]
+ else:
+ return self.__get_option(KEY_PROXY_AUTH)
+
+ def set_proxy_auth(self, proxy_auth):
+ self.__set_option(KEY_PROXY_AUTH, proxy_auth)
+
+ proxy_auth = property(get_proxy_auth, set_proxy_auth)
+
+ # Proxy user
+ def get_proxy_user(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_PROXY_USER]
+ else:
+ return self.__get_option(KEY_PROXY_USER)
+
+ def set_proxy_user(self, proxy_user):
+ self.__set_option(KEY_PROXY_USER, proxy_user)
+
+ proxy_user = property(get_proxy_user, set_proxy_user)
+
+ # Proxy password
+ def get_proxy_password(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_PROXY_PASSWORD]
+ else:
+ return self.__get_option(KEY_PROXY_PASSWORD)
+
+ def set_proxy_password(self, proxy_password):
+ self.__set_option(KEY_PROXY_PASSWORD, proxy_password)
+
+ proxy_password = property(get_proxy_password, set_proxy_password)
+
+ # Toolbar style
+ def get_toolbar_style(self, use_cache=True):
+ if use_cache:
+ return self.option_cache[KEY_TOOLBAR_STYLE]
+ else:
+ return self.__get_option(KEY_TOOLBAR_STYLE)
+
+ def set_toolbar_style(self, toolbar_style):
+ self.__set_option(KEY_TOOLBAR_STYLE, toolbar_style)
+
+ toolbar_style = property(get_toolbar_style, set_toolbar_style)
+
# vim: set sw=4 et sts=4 tw=79 fo+=l:
Modified: trunk/gget/DownloadManager.py
==============================================================================
--- trunk/gget/DownloadManager.py (original)
+++ trunk/gget/DownloadManager.py Fri Jul 4 22:56:22 2008
@@ -55,10 +55,17 @@
metalink.USER_AGENT = "%s %s" % (NAME, VERSION)
- # TODO: Get this from system wide settings
- # metalink.HTTP_PROXY = ""
- # metalink.HTTPS_PROXY = ""
- # metalink.FTP_PROXY = ""
+ if self.config.proxy_mode == "gnome":
+ # TODO: Get this from system wide settings
+ # metalink.HTTP_PROXY = ""
+ # metalink.HTTPS_PROXY = ""
+ # metalink.FTP_PROXY = ""
+ pass
+ elif self.config.proxy_mode == "manual":
+ if self.config.proxy_auth:
+ metalink.HTTP_PROXY = "http://%s:%s %s:%s" % (self.config.proxy_user, self.config.proxy_password, self.config.proxy_host, self.config.proxy_port)
+ else:
+ metalink.HTTP_PROXY = "http://%s:%s" % (self.config.proxy_host, self.config.proxy_port)
def start_download(self, uri, path=None):
if path is None:
Modified: trunk/gget/MainWindow.py
==============================================================================
--- trunk/gget/MainWindow.py (original)
+++ trunk/gget/MainWindow.py Fri Jul 4 22:56:22 2008
@@ -267,7 +267,7 @@
cell.props.text = "N/A"
def __connect_widgets(self):
- """Connect widgets to various signals."""
+ """Connect to the widget signals we are interested in."""
self.window.connect("destroy", self.quit)
self.window.connect("configure-event", self.__window_configure_event)
self.window.connect("drag_data_received",
Modified: trunk/gget/PreferencesDialog.py
==============================================================================
--- trunk/gget/PreferencesDialog.py (original)
+++ trunk/gget/PreferencesDialog.py Fri Jul 4 22:56:22 2008
@@ -64,7 +64,22 @@
self.config.extension_folders):
self.extensions_model.append((extension, folder))
+ if self.config.proxy_mode == "gnome":
+ self.gnome_radiobutton.set_active(True)
+ elif self.config.proxy_mode == "manual":
+ self.manual_radiobutton.set_active(True)
+ else:
+ self.direct_radiobutton.set_active(True)
+
+ self.proxy_entry.set_text(self.config.proxy_host)
+ self.proxy_port_spinbutton.set_value(self.config.proxy_port)
+ self.proxy_auth_checkbutton.set_active(self.config.proxy_auth)
+ self.proxy_auth_hbox.set_sensitive(self.config.proxy_auth)
+ self.proxy_user_entry.set_text(self.config.proxy_user)
+ self.proxy_password_entry.set_text(self.config.proxy_password)
+
def __get_widgets(self):
+ """Get widgets from the glade file."""
xml = gtk.glade.XML(GUI.glade_file, domain=NAME.lower())
self.dialog = xml.get_widget("preferences_dialog")
@@ -86,6 +101,18 @@
self.add_extension_button = xml.get_widget("add_extension_button")
self.remove_extension_button = xml.get_widget("remove_extension_button")
+ # Network tab
+ self.direct_radiobutton = xml.get_widget("direct_radiobutton")
+ self.gnome_radiobutton = xml.get_widget("gnome_radiobutton")
+ self.manual_radiobutton = xml.get_widget("manual_radiobutton")
+ self.manual_proxy_vbox = xml.get_widget("manual_proxy_vbox")
+ self.proxy_entry = xml.get_widget("proxy_entry")
+ self.proxy_port_spinbutton = xml.get_widget("proxy_port_spinbutton")
+ self.proxy_auth_checkbutton = xml.get_widget("proxy_auth_checkbutton")
+ self.proxy_auth_hbox = xml.get_widget("proxy_auth_hbox")
+ self.proxy_user_entry = xml.get_widget("proxy_user_entry")
+ self.proxy_password_entry = xml.get_widget("proxy_password_entry")
+
# Buttons
self.close_button = xml.get_widget("close_button")
@@ -140,6 +167,7 @@
self.extensions_model[path][1] = new_text
def __connect_widgets(self):
+ """Connect to the widget signals we are interested in."""
# General tab
self.status_icon_checkbutton.connect("toggled",
self.__status_icon_checkbutton_toggled)
@@ -167,10 +195,30 @@
selection.connect("changed",
self.__extensions_treeview_selection_changed)
+ # Network tab
+ self.direct_radiobutton.connect("toggled",
+ self.__direct_radiobutton_toggled)
+ self.gnome_radiobutton.connect("toggled",
+ self.__gnome_radiobutton_toggled)
+ self.manual_radiobutton.connect("toggled",
+ self.__manual_radiobutton_toggled)
+ self.proxy_entry.connect("changed",
+ self.__proxy_entry_changed)
+ self.proxy_port_spinbutton.connect("value-changed",
+ self.__proxy_port_spinbutton_value_changed)
+ self.proxy_auth_checkbutton.connect("toggled",
+ self.__proxy_auth_checkbutton_toggled)
+ self.proxy_user_entry.connect("changed",
+ self.__proxy_user_entry_changed)
+ self.proxy_password_entry.connect("changed",
+ self.__proxy_password_entry_changed)
+
# Buttons
self.close_button.connect("clicked", self.__close_button_clicked)
def __add_config_notifications(self):
+ """Adds callbacks which gets called when configuration keys changes
+ in gconf."""
self.config.add_notify(Configuration.KEY_SHOW_STATUS_ICON,
self.__show_status_icon_key_changed)
self.config.add_notify(Configuration.KEY_SHOW_MAIN_WINDOW,
@@ -185,6 +233,18 @@
self.__default_folder_key_changed)
self.config.add_notify(Configuration.KEY_CHECK_EXTENSIONS,
self.__check_extensions_key_changed)
+ self.config.add_notify(Configuration.KEY_PROXY_MODE,
+ self.__proxy_mode_key_changed)
+ self.config.add_notify(Configuration.KEY_PROXY_HOST,
+ self.__proxy_host_key_changed)
+ self.config.add_notify(Configuration.KEY_PROXY_PORT,
+ self.__proxy_port_key_changed)
+ self.config.add_notify(Configuration.KEY_PROXY_AUTH,
+ self.__proxy_auth_key_changed)
+ self.config.add_notify(Configuration.KEY_PROXY_USER,
+ self.__proxy_user_key_changed)
+ self.config.add_notify(Configuration.KEY_PROXY_PASSWORD,
+ self.__proxy_password_key_changed)
def __show_status_icon_key_changed(self, client, cnxn_id, entry, data):
if not entry.value:
@@ -281,6 +341,41 @@
self.extensions_checkbutton.set_active(True)
self.extensions_alignment.set_sensitive(True)
+ def __proxy_mode_key_changed(self, client, cnxn_id, entry, data):
+ if entry.value.type == gconf.VALUE_STRING:
+ mode = entry.value.to_string()
+ if mode == "direct":
+ self.direct_radiobutton.set_active(True)
+ self.manual_proxy_vbox.set_sensitive(False)
+ elif mode == "gnome":
+ self.gnome_radiobutton.set_active(True)
+ self.manual_proxy_vbox.set_sensitive(False)
+ elif mode == "manual":
+ self.manual_radiobutton.set_active(True)
+ self.manual_proxy_vbox.set_sensitive(True)
+
+ def __proxy_host_key_changed(self, client, cnxn_id, entry, data):
+ if entry.value.type == gconf.VALUE_STRING:
+ self.proxy_entry.set_text(entry.value.to_string())
+
+ def __proxy_port_key_changed(self, client, cnxn_id, entry, data):
+ if entry.value.type == gconf.VALUE_INT:
+ self.proxy_port_spinbutton.set_value(entry.value.get_int())
+
+ def __proxy_auth_key_changed(self, client, cnxn_id, entry, data):
+ if entry.value.type == gconf.VALUE_BOOL:
+ auth = entry.value.get_bool()
+ self.proxy_auth_checkbutton.set_active(auth)
+ self.proxy_auth_hbox.set_sensitive(auth)
+
+ def __proxy_user_key_changed(self, client, cnxn_id, entry, data):
+ if entry.value.type == gconf.VALUE_STRING:
+ self.proxy_user_entry.set_text(entry.value.to_string())
+
+ def __proxy_password_key_changed(self, client, cnxn_id, entry, data):
+ if entry.value.type == gconf.VALUE_STRING:
+ self.proxy_password_entry.set_text(entry.value.to_string())
+
def __status_icon_checkbutton_toggled(self, checkbutton):
self.config.show_status_icon = checkbutton.get_active()
@@ -347,6 +442,33 @@
extension_folders.remove(extension_folder)
self.config.extension_folders = extension_folders
+ def __direct_radiobutton_toggled(self, radiobutton):
+ if radiobutton.get_active():
+ self.config.proxy_mode = "direct"
+
+ def __gnome_radiobutton_toggled(self, radiobutton):
+ if radiobutton.get_active():
+ self.config.proxy_mode = "gnome"
+
+ def __manual_radiobutton_toggled(self, radiobutton):
+ if radiobutton.get_active():
+ self.config.proxy_mode = "manual"
+
+ def __proxy_entry_changed(self, entry):
+ self.config.proxy_host = entry.get_text()
+
+ def __proxy_port_spinbutton_value_changed(self, spinbutton):
+ self.config.proxy_port = spinbutton.get_value_as_int()
+
+ def __proxy_auth_checkbutton_toggled(self, checkbutton):
+ self.config.proxy_auth = checkbutton.get_active()
+
+ def __proxy_user_entry_changed(self, entry):
+ self.config.proxy_user = entry.get_text()
+
+ def __proxy_password_entry_changed(self, entry):
+ self.config.proxy_password = entry.get_text()
+
def __close_button_clicked(self, button):
self.dialog.hide()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]