Fix #307 gui updates from Sadrul.
This commit is contained in:
parent
632ce0c6fc
commit
e215493ee8
|
@ -201,6 +201,17 @@ class MenuBar(component.Component):
|
|||
self.window.main_glade.get_widget("separatormenuitem").hide()
|
||||
self.window.main_glade.get_widget("menuitem_quitdaemon").hide()
|
||||
|
||||
def update_menu(self):
|
||||
selected = component.get('TorrentView').get_selected_torrents()
|
||||
if not selected or len(selected) == 0:
|
||||
# No torrent is selected. Disable the 'Torrents' menu
|
||||
self.menu_torrent.set_sensitive(False)
|
||||
return
|
||||
|
||||
self.menu_torrent.set_sensitive(True)
|
||||
# XXX: Should also update Pause/Resume/Remove menuitems.
|
||||
# Any better way than duplicating toolbar.py:update_buttons in here?
|
||||
|
||||
def add_torrentmenu_separator(self):
|
||||
sep = gtk.SeparatorMenuItem()
|
||||
self.torrentmenu.append(sep)
|
||||
|
|
|
@ -69,8 +69,10 @@ class OptionsTab(Tab):
|
|||
# Only use the first torrent in the list or return if None selected
|
||||
if len(torrent_id) != 0:
|
||||
torrent_id = torrent_id[0]
|
||||
self._child_widget.set_sensitive(True)
|
||||
else:
|
||||
# No torrent is selected in the torrentview
|
||||
self._child_widget.set_sensitive(False)
|
||||
return
|
||||
|
||||
if torrent_id != self.prev_torrent_id:
|
||||
|
|
|
@ -599,38 +599,37 @@ class Preferences(component.Component):
|
|||
except:
|
||||
return
|
||||
|
||||
# Disable the focus dialog checkbox if the show dialog isn't active.
|
||||
if widget == self.glade.get_widget("chk_show_dialog"):
|
||||
self.glade.get_widget("chk_focus_dialog").set_sensitive(value)
|
||||
dependents = {
|
||||
"chk_show_dialog": {"chk_focus_dialog": True},
|
||||
"chk_random_port": {"spin_port_min": False,
|
||||
"spin_port_max": False},
|
||||
"chk_use_tray": {"chk_min_on_close": True,
|
||||
"chk_start_in_tray": True,
|
||||
"chk_lock_tray": True},
|
||||
"chk_lock_tray": {"txt_tray_password": True,
|
||||
"password_label": True},
|
||||
"radio_open_folder_custom": {"combo_file_manager": False,
|
||||
"txt_open_folder_location": True},
|
||||
"chk_move_completed" : {"move_completed_path_button" : True},
|
||||
"chk_copy_torrent_file" : {"torrent_files_button" : True},
|
||||
"chk_autoadd" : {"folder_autoadd" : True},
|
||||
"chk_seed_ratio" : {"spin_share_ratio": True,
|
||||
"chk_remove_ratio" : True}
|
||||
}
|
||||
|
||||
# Disable the port spinners if random ports is selected.
|
||||
if widget == self.glade.get_widget("chk_random_port"):
|
||||
log.debug("chk_random_port set to: %s", value)
|
||||
self.glade.get_widget("spin_port_min").set_sensitive(not value)
|
||||
self.glade.get_widget("spin_port_max").set_sensitive(not value)
|
||||
def update_dependent_widgets(name, value):
|
||||
dependency = dependents[name]
|
||||
for dep in dependency.keys():
|
||||
depwidget = self.glade.get_widget(dep)
|
||||
sensitive = [not value, value][dependency[dep]]
|
||||
depwidget.set_sensitive(sensitive)
|
||||
if dep in dependents:
|
||||
update_dependent_widgets(dep, depwidget.get_active() and sensitive)
|
||||
|
||||
# Disable all the tray options if tray is not used.
|
||||
if widget == self.glade.get_widget("chk_use_tray"):
|
||||
self.glade.get_widget("chk_min_on_close").set_sensitive(value)
|
||||
self.glade.get_widget("chk_start_in_tray").set_sensitive(value)
|
||||
self.glade.get_widget("chk_lock_tray").set_sensitive(value)
|
||||
if value == True:
|
||||
lock = self.glade.get_widget("chk_lock_tray").get_active()
|
||||
self.glade.get_widget("txt_tray_password").set_sensitive(lock)
|
||||
self.glade.get_widget("password_label").set_sensitive(lock)
|
||||
else:
|
||||
self.glade.get_widget("txt_tray_password").set_sensitive(value)
|
||||
self.glade.get_widget("password_label").set_sensitive(value)
|
||||
|
||||
if widget == self.glade.get_widget("chk_lock_tray"):
|
||||
self.glade.get_widget("txt_tray_password").set_sensitive(value)
|
||||
self.glade.get_widget("password_label").set_sensitive(value)
|
||||
|
||||
# Disable the file manager combo box if custom is selected.
|
||||
if widget == self.glade.get_widget("radio_open_folder_custom"):
|
||||
self.glade.get_widget("combo_file_manager").set_sensitive(not value)
|
||||
self.glade.get_widget("txt_open_folder_location").set_sensitive(
|
||||
value)
|
||||
for key in dependents.keys():
|
||||
if widget != self.glade.get_widget(key):
|
||||
continue
|
||||
update_dependent_widgets(key, value)
|
||||
|
||||
def on_button_ok_clicked(self, data):
|
||||
log.debug("on_button_ok_clicked")
|
||||
|
|
|
@ -92,21 +92,25 @@ class Signals(component.Component):
|
|||
log.debug("torrent_paused signal received..")
|
||||
component.get("TorrentView").update()
|
||||
component.get("ToolBar").update_buttons()
|
||||
component.get("MenuBar").update_menu()
|
||||
|
||||
def torrent_resumed(self, torrent_id):
|
||||
log.debug("torrent_resumed signal received..")
|
||||
component.get("TorrentView").update()
|
||||
component.get("ToolBar").update_buttons()
|
||||
component.get("MenuBar").update_menu()
|
||||
|
||||
def torrent_all_paused(self):
|
||||
log.debug("torrent_all_paused signal received..")
|
||||
component.get("TorrentView").update()
|
||||
component.get("ToolBar").update_buttons()
|
||||
component.get("MenuBar").update_menu()
|
||||
|
||||
def torrent_all_resumed(self):
|
||||
log.debug("torrent_all_resumed signal received..")
|
||||
component.get("TorrentView").update()
|
||||
component.get("ToolBar").update_buttons()
|
||||
component.get("MenuBar").update_menu()
|
||||
|
||||
def config_value_changed(self, key, value):
|
||||
log.debug("config_value_changed signal received..")
|
||||
|
|
|
@ -330,6 +330,7 @@ class TorrentView(listview.ListView, component.Component):
|
|||
|
||||
# Update the toolbar buttons just in case some state has changed
|
||||
component.get("ToolBar").update_buttons()
|
||||
component.get("MenuBar").update_menu()
|
||||
|
||||
def _on_get_torrents_status(self, status):
|
||||
"""Callback function for get_torrents_status(). 'status' should be a
|
||||
|
@ -431,4 +432,5 @@ class TorrentView(listview.ListView, component.Component):
|
|||
log.debug("on_selection_changed")
|
||||
component.get("TorrentDetails").update()
|
||||
component.get("ToolBar").update_buttons()
|
||||
component.get("MenuBar").update_menu()
|
||||
|
||||
|
|
Loading…
Reference in New Issue