Module: deluge
Branch: 1.3-stable
Commit: 4f3c753fc162be77585e12c238d0cdc0bf2a3301

Author: Calum Lind <[email protected]>
Date:   Sun Jun 19 23:11:04 2011 +0100

Save and restore Preferences dialog size from config

---

 deluge/ui/gtkui/glade/preferences_dialog.glade |    5 +++--
 deluge/ui/gtkui/gtkui.py                       |    2 ++
 deluge/ui/gtkui/preferences.py                 |   16 ++++++++++++++--
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/deluge/ui/gtkui/glade/preferences_dialog.glade 
b/deluge/ui/gtkui/glade/preferences_dialog.glade
index 189c817..16bab19 100644
--- a/deluge/ui/gtkui/glade/preferences_dialog.glade
+++ b/deluge/ui/gtkui/glade/preferences_dialog.glade
@@ -7,11 +7,12 @@
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Preferences</property>
     <property name="window_position">center-on-parent</property>
-    <property name="default_width">510</property>
-    <property name="default_height">530</property>
+    <property name="default_width">500</property>
+    <property name="default_height">560</property>
     <property name="destroy_with_parent">True</property>
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
+    <signal name="configure_event" handler="on_pref_dialog_configure_event"/>
     <signal name="delete_event" handler="on_pref_dialog_delete_event"/>
     <child internal-child="vbox">
       <widget class="GtkVBox" id="dialog-vbox1">
diff --git a/deluge/ui/gtkui/gtkui.py b/deluge/ui/gtkui/gtkui.py
index 76392b9..bbb99ff 100644
--- a/deluge/ui/gtkui/gtkui.py
+++ b/deluge/ui/gtkui/gtkui.py
@@ -125,6 +125,8 @@ DEFAULT_PREFS = {
     "window_y_pos": 0,
     "window_width": 640,
     "window_height": 480,
+    "pref_dialog_width": None,
+    "pref_dialog_height": None,
     "window_pane_position": -1,
     "tray_download_speed_list" : [5.0, 10.0, 30.0, 80.0, 300.0],
     "tray_upload_speed_list" : [5.0, 10.0, 30.0, 80.0, 300.0],
diff --git a/deluge/ui/gtkui/preferences.py b/deluge/ui/gtkui/preferences.py
index 5525211..7a40fed 100644
--- a/deluge/ui/gtkui/preferences.py
+++ b/deluge/ui/gtkui/preferences.py
@@ -51,7 +51,6 @@ import deluge.configmanager
 class Preferences(component.Component):
     def __init__(self):
         component.Component.__init__(self, "Preferences")
-        self.window = component.get("MainWindow")
         self.glade = gtk.glade.XML(
                     pkg_resources.resource_filename("deluge.ui.gtkui",
                                             "glade/preferences_dialog.glade"))
@@ -61,6 +60,8 @@ class Preferences(component.Component):
         self.notebook = self.glade.get_widget("notebook")
         self.gtkui_config = ConfigManager("gtkui.conf")
 
+        self.load_pref_dialog_state()
+
         self.glade.get_widget("image_magnet").set_from_file(
             deluge.common.get_pixmap("magnet.png"))
 
@@ -111,7 +112,8 @@ class Preferences(component.Component):
             "on_button_find_plugins_clicked": 
self._on_button_find_plugins_clicked,
             "on_button_cache_refresh_clicked": 
self._on_button_cache_refresh_clicked,
             "on_combo_proxy_type_changed": self._on_combo_proxy_type_changed,
-            "on_button_associate_magnet_clicked": 
self._on_button_associate_magnet_clicked
+            "on_button_associate_magnet_clicked": 
self._on_button_associate_magnet_clicked,
+            "on_pref_dialog_configure_event": 
self.on_pref_dialog_configure_event,
         })
 
         # These get updated by requests done to the core
@@ -768,6 +770,16 @@ class Preferences(component.Component):
         self.hide()
         return True
 
+    def load_pref_dialog_state(self):
+        w = self.gtkui_config["pref_dialog_width"]
+        h = self.gtkui_config["pref_dialog_height"]
+        if w != None and h != None:
+            self.pref_dialog.resize(w, h)
+
+    def on_pref_dialog_configure_event(self, widget, event):
+        self.gtkui_config["pref_dialog_width"] = event.width
+        self.gtkui_config["pref_dialog_height"] = event.height
+
     def on_toggle(self, widget):
         """Handles widget sensitivity based on radio/check button values."""
         try:

-- 
You received this message because you are subscribed to the Google Groups 
"deluge-commit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/deluge-commit?hl=en.

Reply via email to