mirror of
https://git.deluge-torrent.org/deluge
synced 2025-08-08 09:28:41 +00:00
Better window geometry handling.
Window geometry will now save maximize state. Main window is now hidden until it has been resized/moved.
This commit is contained in:
parent
7fbd166725
commit
352861703c
2 changed files with 34 additions and 30 deletions
|
@ -60,14 +60,13 @@ class DelugeGTK:
|
||||||
self.window.drag_dest_set(gtk.DEST_DEFAULT_ALL,[('text/uri-list', 0, 80)], gtk.gdk.ACTION_COPY)
|
self.window.drag_dest_set(gtk.DEST_DEFAULT_ALL,[('text/uri-list', 0, 80)], gtk.gdk.ACTION_COPY)
|
||||||
self.window.connect("delete_event", self.close)
|
self.window.connect("delete_event", self.close)
|
||||||
self.window.connect("drag_data_received", self.on_drag_data)
|
self.window.connect("drag_data_received", self.on_drag_data)
|
||||||
|
self.window.connect("window-state-event", self.window_state_event)
|
||||||
|
self.window.connect("configure-event", self.window_configure_event)
|
||||||
self.window.set_title(common.PROGRAM_NAME)
|
self.window.set_title(common.PROGRAM_NAME)
|
||||||
self.window.set_icon_from_file(common.get_pixmap("deluge32.png"))
|
self.window.set_icon_from_file(common.get_pixmap("deluge32.png"))
|
||||||
self.notebook = self.wtree.get_widget("torrent_info")
|
self.notebook = self.wtree.get_widget("torrent_info")
|
||||||
self.statusbar = self.wtree.get_widget("statusbar")
|
self.statusbar = self.wtree.get_widget("statusbar")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Construct the Interface
|
## Construct the Interface
|
||||||
try:
|
try:
|
||||||
self.build_tray_icon()
|
self.build_tray_icon()
|
||||||
|
@ -212,7 +211,6 @@ class DelugeGTK:
|
||||||
self.apply_prefs()
|
self.apply_prefs()
|
||||||
self.config.save_to_file()
|
self.config.save_to_file()
|
||||||
elif comingnext == "quitus":
|
elif comingnext == "quitus":
|
||||||
self.save_window_geometry()
|
|
||||||
self.window.hide()
|
self.window.hide()
|
||||||
self.shutdown()
|
self.shutdown()
|
||||||
|
|
||||||
|
@ -579,8 +577,9 @@ class DelugeGTK:
|
||||||
|
|
||||||
|
|
||||||
## Start the timer that updates the interface
|
## Start the timer that updates the interface
|
||||||
def start(self, hidden=False):
|
def start(self):
|
||||||
if not hidden:
|
if not (self.window.flags() & gtk.VISIBLE):
|
||||||
|
print "Showing window"
|
||||||
self.window.show()
|
self.window.show()
|
||||||
# go through torrent files to add
|
# go through torrent files to add
|
||||||
#dummy preferences values:
|
#dummy preferences values:
|
||||||
|
@ -1046,26 +1045,33 @@ class DelugeGTK:
|
||||||
self.config.set("show_eta", self.eta_column.get_visible())
|
self.config.set("show_eta", self.eta_column.get_visible())
|
||||||
self.config.set("show_share", self.share_column.get_visible())
|
self.config.set("show_share", self.share_column.get_visible())
|
||||||
|
|
||||||
def save_window_geometry(self):
|
def window_configure_event(self, widget, event):
|
||||||
x, y = self.window.get_position()
|
if self.config.get("window_maximized") == False:
|
||||||
w, h = self.window.get_size()
|
self.config.set("window_x_pos", event.x)
|
||||||
self.config.set('window_x_pos', x)
|
self.config.set("window_y_pos", event.y)
|
||||||
self.config.set('window_y_pos', y)
|
self.config.set("window_width", event.width)
|
||||||
self.config.set('window_width', w)
|
self.config.set("window_height", event.height)
|
||||||
self.config.set('window_height',h)
|
|
||||||
|
def window_state_event(self, widget, event):
|
||||||
|
if event.changed_mask & gtk.gdk.WINDOW_STATE_MAXIMIZED:
|
||||||
|
if event.new_window_state & gtk.gdk.WINDOW_STATE_MAXIMIZED:
|
||||||
|
self.config.set("window_maximized", True)
|
||||||
|
else:
|
||||||
|
self.config.set("window_maximized", False)
|
||||||
|
return False
|
||||||
|
|
||||||
def load_window_geometry(self):
|
def load_window_geometry(self):
|
||||||
x = self.config.get('window_x_pos', int, default=0)
|
x = self.config.get('window_x_pos')
|
||||||
y = self.config.get('window_y_pos', int, default=0)
|
y = self.config.get('window_y_pos')
|
||||||
w = self.config.get('window_width', int, default=640)
|
w = self.config.get('window_width')
|
||||||
h = self.config.get('window_height',int, default=480)
|
h = self.config.get('window_height')
|
||||||
self.window.move(x, y)
|
self.window.move(x, y)
|
||||||
self.window.resize(w, h)
|
self.window.resize(w, h)
|
||||||
|
if self.config.get("window_maximized") == True:
|
||||||
|
self.window.maximize()
|
||||||
|
|
||||||
def close(self, widget, event):
|
def close(self, widget, event):
|
||||||
if self.config.get("close_to_tray", bool, default=False) and self.config.get("enable_system_tray", bool, default=True) and self.has_tray:
|
if self.config.get("close_to_tray", bool, default=False) and self.config.get("enable_system_tray", bool, default=True) and self.has_tray:
|
||||||
self.save_window_geometry()
|
|
||||||
self.window.hide()
|
self.window.hide()
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
|
@ -1073,15 +1079,12 @@ class DelugeGTK:
|
||||||
|
|
||||||
def quit(self, widget=None):
|
def quit(self, widget=None):
|
||||||
if self.window.get_property("visible"):
|
if self.window.get_property("visible"):
|
||||||
self.save_window_geometry()
|
|
||||||
self.window.hide()
|
self.window.hide()
|
||||||
self.shutdown()
|
self.shutdown()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if self.config.get("lock_tray", bool, default=False) == True:
|
if self.config.get("lock_tray", bool, default=False) == True:
|
||||||
self.unlock_tray("quitus")
|
self.unlock_tray("quitus")
|
||||||
else:
|
else:
|
||||||
self.save_window_geometry()
|
|
||||||
self.window.hide()
|
self.window.hide()
|
||||||
self.shutdown()
|
self.shutdown()
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,7 @@ DEFAULT_PREFS = {
|
||||||
"window_width" : 640,
|
"window_width" : 640,
|
||||||
"window_x_pos" : 0,
|
"window_x_pos" : 0,
|
||||||
"window_y_pos" : 0,
|
"window_y_pos" : 0,
|
||||||
|
"window_maximized" : False
|
||||||
}
|
}
|
||||||
class Preferences:
|
class Preferences:
|
||||||
def __init__(self, filename=None, global_defaults=True, defaults=None):
|
def __init__(self, filename=None, global_defaults=True, defaults=None):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue