Fix Preferences dialog so that it can load while not be connected to a

daemon.
Change ConnectionManager icon and add toolbar button.
This commit is contained in:
Andrew Resch 2007-10-24 05:45:32 +00:00
parent 88a49d17c7
commit e03401e3aa
4 changed files with 660 additions and 611 deletions

View File

@ -37,10 +37,6 @@ import socket
import deluge.xmlrpclib as xmlrpclib import deluge.xmlrpclib as xmlrpclib
import pygtk
pygtk.require('2.0')
import gtk, gtk.glade
import deluge.common import deluge.common
from deluge.log import LOG as log from deluge.log import LOG as log

View File

@ -68,7 +68,8 @@ class ConnectionManager(component.Component):
self.config = ConfigManager("hostlist.conf", DEFAULT_CONFIG) self.config = ConfigManager("hostlist.conf", DEFAULT_CONFIG)
self.connection_manager = self.glade.get_widget("connection_manager") self.connection_manager = self.glade.get_widget("connection_manager")
self.hostlist = self.glade.get_widget("hostlist") self.hostlist = self.glade.get_widget("hostlist")
self.connection_manager.set_icon(deluge.common.get_logo(32)) #self.connection_manager.set_icon(deluge.common.get_logo(32))
self.glade.get_widget("image1").set_from_pixbuf( self.glade.get_widget("image1").set_from_pixbuf(
deluge.common.get_logo(32)) deluge.common.get_logo(32))

File diff suppressed because it is too large Load Diff

View File

@ -105,69 +105,106 @@ class Preferences(component.Component):
self.liststore.append([index, name]) self.liststore.append([index, name])
def show(self): def show(self):
self.core_config = client.get_config()
# Update the preferences dialog to reflect current config settings # Update the preferences dialog to reflect current config settings
self.core_config = client.get_config()
if self.core_config != {} and self.core_config != None:
core_widgets = {
"download_path_button": \
("filename", self.core_config["download_location"]),
"radio_compact_allocation": \
("active", self.core_config["compact_allocation"]),
"radio_full_allocation": \
("not_active", self.core_config["compact_allocation"]),
"chk_prioritize_first_last_pieces": \
("active",
self.core_config["prioritize_first_last_pieces"]),
"spin_port_min": ("value", self.core_config["listen_ports"][0]),
"spin_port_max": ("value", self.core_config["listen_ports"][1]),
"active_port_label": ("text", str(client.get_listen_port())),
"chk_random_port": ("active", self.core_config["random_port"]),
"chk_dht": ("active", self.core_config["dht"]),
"chk_upnp": ("active", self.core_config["upnp"]),
"chk_natpmp": ("active", self.core_config["natpmp"]),
"chk_utpex": ("active", self.core_config["utpex"]),
"combo_encin": ("active", self.core_config["enc_in_policy"]),
"combo_encout": ("active", self.core_config["enc_out_policy"]),
"combo_enclevel": ("active", self.core_config["enc_level"]),
"chk_pref_rc4": ("active", self.core_config["enc_prefer_rc4"]),
"spin_max_connections_global": \
("value", self.core_config["max_connections_global"]),
"spin_max_download": \
("value", self.core_config["max_download_speed"]),
"spin_max_upload": \
("value", self.core_config["max_upload_speed"]),
"spin_max_upload_slots_global": \
("value", self.core_config["max_upload_slots_global"]),
"spin_max_connections_per_torrent": \
("value", self.core_config["max_connections_per_torrent"]),
"spin_max_upload_slots_per_torrent": \
("value", self.core_config["max_upload_slots_per_torrent"])
}
# Update the widgets accordingly
for key in core_widgets.keys():
modifier = core_widgets[key][0]
value = core_widgets[key][1]
widget = self.glade.get_widget(key)
if type(widget) == gtk.FileChooserButton:
for child in widget.get_children():
child.set_sensitive(True)
widget.set_sensitive(True)
if modifier == "filename":
widget.set_filename(value)
elif modifier == "active":
widget.set_active(value)
elif modifier == "not_active":
widget.set_active(not value)
elif modifier == "value":
widget.set_value(value)
elif modifier == "text":
widget.set_text(value)
else:
core_widget_list = [
"download_path_button",
"radio_compact_allocation",
"radio_full_allocation",
"chk_prioritize_first_last_pieces",
"spin_port_min",
"spin_port_max",
"active_port_label",
"chk_random_port",
"chk_dht",
"chk_upnp",
"chk_natpmp",
"chk_utpex",
"combo_encin",
"combo_encout",
"combo_enclevel",
"chk_pref_rc4",
"spin_max_connections_global",
"spin_max_download",
"spin_max_upload",
"spin_max_upload_slots_global",
"spin_max_connections_per_torrent",
"spin_max_upload_slots_per_torrent"
]
# We don't appear to be connected to a daemon
for key in core_widget_list:
widget = self.glade.get_widget(key)
if type(widget) == gtk.FileChooserButton:
for child in widget.get_children():
child.set_sensitive(False)
widget.set_sensitive(False)
## Downloads tab ## ## Downloads tab ##
self.glade.get_widget("radio_ask_save").set_active( self.glade.get_widget("radio_ask_save").set_active(
self.gtkui_config["interactive_add"]) self.gtkui_config["interactive_add"])
self.glade.get_widget("radio_save_all_to").set_active( self.glade.get_widget("radio_save_all_to").set_active(
not self.gtkui_config["interactive_add"]) not self.gtkui_config["interactive_add"])
# This one will need to be re-evaluated if the core is running on a
# different machine.. We won't be able to use the local file browser to
# choose a download location.. It will be specific to the machine core
# is running on.
self.glade.get_widget("download_path_button").set_filename(
self.core_config["download_location"])
self.glade.get_widget("radio_compact_allocation").set_active(
self.core_config["compact_allocation"])
self.glade.get_widget("radio_full_allocation").set_active(
not self.core_config["compact_allocation"])
self.glade.get_widget("chk_enable_files_dialog").set_active( self.glade.get_widget("chk_enable_files_dialog").set_active(
self.gtkui_config["enable_files_dialog"]) self.gtkui_config["enable_files_dialog"])
self.glade.get_widget("chk_prioritize_first_last_pieces").set_active(
self.core_config["prioritize_first_last_pieces"])
## Network tab ##
self.glade.get_widget("spin_port_min").set_value(
self.core_config["listen_ports"][0])
self.glade.get_widget("spin_port_max").set_value(
self.core_config["listen_ports"][1])
self.glade.get_widget("active_port_label").set_text(
str(client.get_listen_port()))
self.glade.get_widget("chk_random_port").set_active(
self.core_config["random_port"])
self.glade.get_widget("chk_dht").set_active(
self.core_config["dht"])
self.glade.get_widget("chk_upnp").set_active(
self.core_config["upnp"])
self.glade.get_widget("chk_natpmp").set_active(
self.core_config["natpmp"])
self.glade.get_widget("chk_utpex").set_active(
self.core_config["utpex"])
self.glade.get_widget("combo_encin").set_active(
self.core_config["enc_in_policy"])
self.glade.get_widget("combo_encout").set_active(
self.core_config["enc_out_policy"])
self.glade.get_widget("combo_enclevel").set_active(
self.core_config["enc_level"])
self.glade.get_widget("chk_pref_rc4").set_active(
self.core_config["enc_prefer_rc4"])
## Bandwidth tab ##
self.glade.get_widget("spin_max_connections_global").set_value(
self.core_config["max_connections_global"])
self.glade.get_widget("spin_max_download").set_value(
self.core_config["max_download_speed"])
self.glade.get_widget("spin_max_upload").set_value(
self.core_config["max_upload_speed"])
self.glade.get_widget("spin_max_upload_slots_global").set_value(
self.core_config["max_upload_slots_global"])
self.glade.get_widget("spin_max_connections_per_torrent").set_value(
self.core_config["max_connections_per_torrent"])
self.glade.get_widget("spin_max_upload_slots_per_torrent").set_value(
self.core_config["max_upload_slots_per_torrent"])
## Other tab ## ## Other tab ##
self.glade.get_widget("chk_use_tray").set_active( self.glade.get_widget("chk_use_tray").set_active(