diff --git a/glade/preferences_dialog.glade b/glade/preferences_dialog.glade index fd26e17a1..db8031c13 100644 --- a/glade/preferences_dialog.glade +++ b/glade/preferences_dialog.glade @@ -7,7 +7,6 @@ 5 Deluge Preferences GTK_WIN_POS_CENTER_ON_PARENT - 550 GDK_WINDOW_TYPE_HINT_DIALOG True True @@ -54,6 +53,7 @@ True Ask where to save each download True + 0 True @@ -66,6 +66,7 @@ True Save all downloads to: True + 0 True radio_ask_save @@ -188,6 +189,7 @@ Compact allocation will only allocate as much storage as it needs to keep the pieces downloaded so far. Use compact storage allocation True + 0 True @@ -230,6 +232,7 @@ True Queue torrents to bottom when they begin seeding True + 0 True @@ -242,6 +245,7 @@ True Stop seeding torrents when their share ratio reaches: True + 0 True @@ -618,6 +622,7 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Test Active Port + 0 @@ -673,6 +678,7 @@ Distributed hash table may improve the amount of active connections. Enable Mainline DHT True + 0 True @@ -751,6 +757,7 @@ False UPnP True + 0 True True @@ -764,6 +771,7 @@ False NAT-PMP True + 0 True True @@ -778,6 +786,7 @@ False UT PeX True + 0 True True @@ -885,6 +894,7 @@ Forced True Prefer to encrypt the entire stream True + 0 True @@ -999,6 +1009,7 @@ Full Stream True Enable system tray icon True + 0 True True @@ -1012,6 +1023,7 @@ Full Stream True Minimize to tray on close True + 0 True @@ -1033,6 +1045,7 @@ Full Stream True Password protect system tray True + 0 True @@ -1061,7 +1074,6 @@ Full Stream True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK False - * 16 @@ -1200,6 +1212,7 @@ Full Stream True gtk-cancel True + 0 diff --git a/src/dialogs.py b/src/dialogs.py index 134c09de8..49f78459a 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -43,6 +43,7 @@ class PreferencesDlg: 'tray_toggle': self.tray_toggle, 'on_btn_testport_clicked': self.TestPort, }) + self.dialog.connect("configure-event", self.window_configure_event) self.parent = parent self.preferences = preferences @@ -76,6 +77,12 @@ class PreferencesDlg: self.glade.get_widget("chk_dht").set_active(self.preferences.get("enable_dht", bool, default=True)) self.glade.get_widget("spin_dht").set_value(self.preferences.get("dht_connections", int, default=80)) self.glade.get_widget("spin_gui").set_value(self.preferences.get("gui_update_interval", float, default=1.0)) + + # Load geometry settings for window + self.dialog.resize(self.preferences.get("pref_window_width"), self.preferences.get("pref_window_height")) + if self.preferences.get("pref_window_x_pos") > 0 or self.preferences.get("pref_window_y_pos") > 0: + self.dialog.move(self.preferences.get("pref_window_x_pos"), self.preferences.get("pref_window_y_pos")) + except KeyError: pass # Now, show the dialog @@ -118,7 +125,12 @@ class PreferencesDlg: self.glade.get_widget("chk_min_on_close").set_sensitive(True) else: self.glade.get_widget("chk_min_on_close").set_sensitive(False) - + + def window_configure_event(self, widget, event): + self.preferences.set("pref_window_x_pos", event.x) + self.preferences.set("pref_window_y_pos", event.y) + self.preferences.set("pref_window_width", event.width) + self.preferences.set("pref_window_height", event.height) diff --git a/src/pref.py b/src/pref.py index b37bd7075..90cbbdb38 100644 --- a/src/pref.py +++ b/src/pref.py @@ -63,6 +63,10 @@ DEFAULT_PREFS = { "max_upload_rate_bps" : -1.0, "max_uploads" : 2, "pref_rc4" : True, + "pref_window_height" : 550, + "pref_window_width" : 1, + "pref_window_x_pos" : -1, + "pref_window_y_pos" : -1, "queue_seeds_to_bottom" : False, "show_dl" : True, "show_eta" : True,