Preferences dialog now saves and displays gtkui specific config options.
This commit is contained in:
parent
cc8466988c
commit
c072e4d605
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
|
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
|
||||||
<!--Generated with glade3 3.2.0 on Sat Sep 15 20:42:30 2007 by andrew@delicious-->
|
<!--Generated with glade3 3.2.0 on Sun Sep 16 21:29:58 2007 by andrew@delicious-->
|
||||||
<glade-interface>
|
<glade-interface>
|
||||||
<widget class="GtkDialog" id="pref_dialog">
|
<widget class="GtkDialog" id="pref_dialog">
|
||||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
<property name="title" translatable="yes">Deluge Preferences</property>
|
<property name="title" translatable="yes">Deluge Preferences</property>
|
||||||
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
|
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
|
||||||
<property name="default_width">500</property>
|
<property name="default_width">500</property>
|
||||||
<property name="default_height">500</property>
|
<property name="default_height">520</property>
|
||||||
<property name="destroy_with_parent">True</property>
|
<property name="destroy_with_parent">True</property>
|
||||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
@ -1276,7 +1276,7 @@ Full Stream</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkEntry" id="txt_tray_passwd">
|
<widget class="GtkEntry" id="txt_tray_password">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="sensitive">False</property>
|
<property name="sensitive">False</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
|
@ -1449,7 +1449,7 @@ Thunar</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkCheckButton" id="chk_new_releases1">
|
<widget class="GtkCheckButton" id="chk_new_releases">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
|
|
@ -39,6 +39,7 @@ import pkg_resources
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
import deluge.ui.functions as functions
|
import deluge.ui.functions as functions
|
||||||
import deluge.common
|
import deluge.common
|
||||||
|
from deluge.config import Config
|
||||||
|
|
||||||
class Preferences:
|
class Preferences:
|
||||||
def __init__(self, window):
|
def __init__(self, window):
|
||||||
|
@ -82,18 +83,16 @@ class Preferences:
|
||||||
index = self.notebook.append_page(widget)
|
index = self.notebook.append_page(widget)
|
||||||
self.liststore.append([index, name])
|
self.liststore.append([index, name])
|
||||||
|
|
||||||
def get_core_config(self):
|
|
||||||
"""Get the configuration from the core."""
|
|
||||||
# Get the config dictionary from the core
|
|
||||||
self.core_config = functions.get_config(self.core)
|
|
||||||
|
|
||||||
def show(self):
|
def show(self):
|
||||||
self.get_core_config()
|
self.core_config = functions.get_config(self.core)
|
||||||
|
self.gtkui_config = Config("gtkui.conf")
|
||||||
# Update the preferences dialog to reflect current config settings
|
# Update the preferences dialog to reflect current config settings
|
||||||
|
|
||||||
## Downloads tab ##
|
## Downloads tab ##
|
||||||
# FIXME: Add GtkUI specific prefs here
|
self.glade.get_widget("radio_ask_save").set_active(
|
||||||
# Core specific options for Downloads tab
|
self.gtkui_config["interactive_add"])
|
||||||
|
self.glade.get_widget("radio_save_all_to").set_active(
|
||||||
|
not self.gtkui_config["interactive_add"])
|
||||||
|
|
||||||
# This one will need to be re-evaluated if the core is running on a
|
# 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
|
# different machine.. We won't be able to use the local file browser to
|
||||||
|
@ -105,6 +104,8 @@ class Preferences:
|
||||||
self.core_config["compact_allocation"])
|
self.core_config["compact_allocation"])
|
||||||
self.glade.get_widget("radio_full_allocation").set_active(
|
self.glade.get_widget("radio_full_allocation").set_active(
|
||||||
not self.core_config["compact_allocation"])
|
not self.core_config["compact_allocation"])
|
||||||
|
self.glade.get_widget("chk_enable_files_dialog").set_active(
|
||||||
|
self.gtkui_config["enable_files_dialog"])
|
||||||
self.glade.get_widget("chk_prioritize_first_last_pieces").set_active(
|
self.glade.get_widget("chk_prioritize_first_last_pieces").set_active(
|
||||||
self.core_config["prioritize_first_last_pieces"])
|
self.core_config["prioritize_first_last_pieces"])
|
||||||
|
|
||||||
|
@ -149,7 +150,31 @@ class Preferences:
|
||||||
self.core_config["max_upload_slots_per_torrent"])
|
self.core_config["max_upload_slots_per_torrent"])
|
||||||
|
|
||||||
## Other tab ##
|
## Other tab ##
|
||||||
# All of it is UI only.
|
self.glade.get_widget("chk_use_tray").set_active(
|
||||||
|
self.gtkui_config["enable_system_tray"])
|
||||||
|
self.glade.get_widget("chk_min_on_close").set_active(
|
||||||
|
self.gtkui_config["close_to_tray"])
|
||||||
|
self.glade.get_widget("chk_start_in_tray").set_active(
|
||||||
|
self.gtkui_config["start_in_tray"])
|
||||||
|
self.glade.get_widget("chk_lock_tray").set_active(
|
||||||
|
self.gtkui_config["lock_tray"])
|
||||||
|
self.glade.get_widget("txt_tray_password").set_text(
|
||||||
|
self.gtkui_config["tray_password"])
|
||||||
|
|
||||||
|
self.glade.get_widget("combo_file_manager").set_active(
|
||||||
|
self.gtkui_config["stock_file_manager"])
|
||||||
|
self.glade.get_widget("txt_open_folder_location").set_text(
|
||||||
|
self.gtkui_config["open_folder_location"])
|
||||||
|
self.glade.get_widget("radio_open_folder_stock").set_active(
|
||||||
|
self.gtkui_config["open_folder_stock"])
|
||||||
|
self.glade.get_widget("radio_open_folder_custom").set_active(
|
||||||
|
not self.gtkui_config["open_folder_stock"])
|
||||||
|
|
||||||
|
self.glade.get_widget("chk_new_releases").set_active(
|
||||||
|
self.gtkui_config["check_new_releases"])
|
||||||
|
|
||||||
|
self.glade.get_widget("chk_send_info").set_active(
|
||||||
|
self.gtkui_config["send_info"])
|
||||||
|
|
||||||
# Now show the dialog
|
# Now show the dialog
|
||||||
self.pref_dialog.show()
|
self.pref_dialog.show()
|
||||||
|
@ -158,7 +183,11 @@ class Preferences:
|
||||||
"""Sets all altered config values in the core"""
|
"""Sets all altered config values in the core"""
|
||||||
# Get the values from the dialog
|
# Get the values from the dialog
|
||||||
new_core_config = {}
|
new_core_config = {}
|
||||||
|
new_gtkui_config = {}
|
||||||
|
|
||||||
## Downloads tab ##
|
## Downloads tab ##
|
||||||
|
new_gtkui_config["interactive_add"] = \
|
||||||
|
self.glade.get_widget("radio_ask_save").get_active()
|
||||||
new_core_config["download_location"] = \
|
new_core_config["download_location"] = \
|
||||||
self.glade.get_widget("download_path_button").get_filename()
|
self.glade.get_widget("download_path_button").get_filename()
|
||||||
new_core_config["compact_allocation"] = \
|
new_core_config["compact_allocation"] = \
|
||||||
|
@ -166,6 +195,8 @@ class Preferences:
|
||||||
new_core_config["prioritize_first_last_pieces"] = \
|
new_core_config["prioritize_first_last_pieces"] = \
|
||||||
self.glade.get_widget(
|
self.glade.get_widget(
|
||||||
"chk_prioritize_first_last_pieces").get_active()
|
"chk_prioritize_first_last_pieces").get_active()
|
||||||
|
new_gtkui_config["enable_files_dialog"] = \
|
||||||
|
self.glade.get_widget("chk_enable_files_dialog").get_active()
|
||||||
|
|
||||||
## Network tab ##
|
## Network tab ##
|
||||||
listen_ports = []
|
listen_ports = []
|
||||||
|
@ -207,6 +238,38 @@ class Preferences:
|
||||||
self.glade.get_widget(
|
self.glade.get_widget(
|
||||||
"spin_max_upload_slots_per_torrent").get_value_as_int()
|
"spin_max_upload_slots_per_torrent").get_value_as_int()
|
||||||
|
|
||||||
|
## Other tab ##
|
||||||
|
new_gtkui_config["enable_system_tray"] = \
|
||||||
|
self.glade.get_widget("chk_use_tray").get_active()
|
||||||
|
new_gtkui_config["close_to_tray"] = \
|
||||||
|
self.glade.get_widget("chk_min_on_close").get_active()
|
||||||
|
new_gtkui_config["start_in_tray"] = \
|
||||||
|
self.glade.get_widget("chk_start_in_tray").get_active()
|
||||||
|
new_gtkui_config["lock_tray"] = \
|
||||||
|
self.glade.get_widget("chk_lock_tray").get_active()
|
||||||
|
new_gtkui_config["tray_password"] = \
|
||||||
|
self.glade.get_widget("txt_tray_password").get_text()
|
||||||
|
|
||||||
|
new_gtkui_config["stock_file_manager"] = \
|
||||||
|
self.glade.get_widget("combo_file_manager").get_active()
|
||||||
|
new_gtkui_config["open_folder_location"] = \
|
||||||
|
self.glade.get_widget("txt_open_folder_location").get_text()
|
||||||
|
new_gtkui_config["open_folder_stock"] = \
|
||||||
|
self.glade.get_widget("radio_open_folder_stock").get_active()
|
||||||
|
|
||||||
|
new_gtkui_config["check_new_releases"] = \
|
||||||
|
self.glade.get_widget("chk_new_releases").get_active()
|
||||||
|
|
||||||
|
new_gtkui_config["send_info"] = \
|
||||||
|
self.glade.get_widget("chk_send_info").get_active()
|
||||||
|
|
||||||
|
# GtkUI
|
||||||
|
for key in new_gtkui_config.keys():
|
||||||
|
# The values do not match so this needs to be updated
|
||||||
|
if self.gtkui_config[key] != new_gtkui_config[key]:
|
||||||
|
self.gtkui_config[key] = new_gtkui_config[key]
|
||||||
|
|
||||||
|
# Core
|
||||||
config_to_set = {}
|
config_to_set = {}
|
||||||
for key in new_core_config.keys():
|
for key in new_core_config.keys():
|
||||||
# The values do not match so this needs to be updated
|
# The values do not match so this needs to be updated
|
||||||
|
@ -246,14 +309,14 @@ class Preferences:
|
||||||
self.glade.get_widget("chk_lock_tray").set_sensitive(value)
|
self.glade.get_widget("chk_lock_tray").set_sensitive(value)
|
||||||
if value == True:
|
if value == True:
|
||||||
lock = self.glade.get_widget("chk_lock_tray").get_active()
|
lock = self.glade.get_widget("chk_lock_tray").get_active()
|
||||||
self.glade.get_widget("txt_tray_passwd").set_sensitive(lock)
|
self.glade.get_widget("txt_tray_password").set_sensitive(lock)
|
||||||
self.glade.get_widget("password_label").set_sensitive(lock)
|
self.glade.get_widget("password_label").set_sensitive(lock)
|
||||||
else:
|
else:
|
||||||
self.glade.get_widget("txt_tray_passwd").set_sensitive(value)
|
self.glade.get_widget("txt_tray_password").set_sensitive(value)
|
||||||
self.glade.get_widget("password_label").set_sensitive(value)
|
self.glade.get_widget("password_label").set_sensitive(value)
|
||||||
|
|
||||||
if widget == self.glade.get_widget("chk_lock_tray"):
|
if widget == self.glade.get_widget("chk_lock_tray"):
|
||||||
self.glade.get_widget("txt_tray_passwd").set_sensitive(value)
|
self.glade.get_widget("txt_tray_password").set_sensitive(value)
|
||||||
self.glade.get_widget("password_label").set_sensitive(value)
|
self.glade.get_widget("password_label").set_sensitive(value)
|
||||||
|
|
||||||
# Disable the file manager combo box if custom is selected.
|
# Disable the file manager combo box if custom is selected.
|
||||||
|
|
Loading…
Reference in New Issue