mirror of
https://git.deluge-torrent.org/deluge
synced 2025-08-07 00:48:41 +00:00
[GTKUI] Fix quitting bypassing password lock
This commit is contained in:
parent
30e5fc83b2
commit
5fdaf73fdf
2 changed files with 21 additions and 16 deletions
|
@ -236,18 +236,29 @@ class MainWindow(component.Component):
|
||||||
:param shutdown: whether or not to shutdown the daemon as well
|
:param shutdown: whether or not to shutdown the daemon as well
|
||||||
:type shutdown: boolean
|
:type shutdown: boolean
|
||||||
"""
|
"""
|
||||||
def stop_gtk_reactor(result=None):
|
def quit_gtkui():
|
||||||
try:
|
def stop_gtk_reactor(result=None):
|
||||||
reactor.stop()
|
try:
|
||||||
except ReactorNotRunning:
|
reactor.stop()
|
||||||
log.debug("Attempted to stop the reactor but it is not running...")
|
except ReactorNotRunning:
|
||||||
|
log.debug("Attempted to stop the reactor but it is not running...")
|
||||||
|
|
||||||
if shutdown:
|
if shutdown:
|
||||||
client.daemon.shutdown().addCallback(stop_gtk_reactor)
|
client.daemon.shutdown().addCallback(stop_gtk_reactor)
|
||||||
elif not client.is_classicmode() and client.connected():
|
elif not client.is_classicmode() and client.connected():
|
||||||
client.disconnect().addCallback(stop_gtk_reactor)
|
client.disconnect().addCallback(stop_gtk_reactor)
|
||||||
|
else:
|
||||||
|
stop_gtk_reactor()
|
||||||
|
|
||||||
|
if self.config["tray_password"] and not self.visible():
|
||||||
|
dialog = PasswordDialog("Enter your pasword to Quit Deluge...")
|
||||||
|
def on_dialog_response(response_id):
|
||||||
|
if response_id == gtk.RESPONSE_OK:
|
||||||
|
if self.config["tray_password"] == sha(dialog.get_password()).hexdigest():
|
||||||
|
quit_gtkui()
|
||||||
|
dialog.run().addCallback(on_dialog_response)
|
||||||
else:
|
else:
|
||||||
stop_gtk_reactor()
|
quit_gtkui()
|
||||||
|
|
||||||
def load_window_state(self):
|
def load_window_state(self):
|
||||||
x = self.config["window_x_pos"]
|
x = self.config["window_x_pos"]
|
||||||
|
|
|
@ -375,16 +375,10 @@ class SystemTray(component.Component):
|
||||||
|
|
||||||
def on_menuitem_quit_activate(self, menuitem):
|
def on_menuitem_quit_activate(self, menuitem):
|
||||||
log.debug("on_menuitem_quit_activate")
|
log.debug("on_menuitem_quit_activate")
|
||||||
if self.config["lock_tray"] and not self.window.visible():
|
|
||||||
self.window.present()
|
|
||||||
|
|
||||||
self.window.quit()
|
self.window.quit()
|
||||||
|
|
||||||
def on_menuitem_quitdaemon_activate(self, menuitem):
|
def on_menuitem_quitdaemon_activate(self, menuitem):
|
||||||
log.debug("on_menuitem_quitdaemon_activate")
|
log.debug("on_menuitem_quitdaemon_activate")
|
||||||
if self.config["lock_tray"] and not self.window.visible():
|
|
||||||
self.window.present()
|
|
||||||
|
|
||||||
self.window.quit(shutdown=True)
|
self.window.quit(shutdown=True)
|
||||||
|
|
||||||
def on_tray_setbwdown(self, widget, data=None):
|
def on_tray_setbwdown(self, widget, data=None):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue