diff --git a/deluge/core/preferencesmanager.py b/deluge/core/preferencesmanager.py
index 77b89159b..bdc7f1c43 100644
--- a/deluge/core/preferencesmanager.py
+++ b/deluge/core/preferencesmanager.py
@@ -140,6 +140,7 @@ DEFAULT_PREFS = {
"geoip_db_location": "/usr/share/GeoIP/GeoIP.dat",
"cache_size": 512,
"cache_expiry": 60,
+ "auto_manage_prefer_seeds": False,
"shared": False
}
@@ -470,3 +471,7 @@ class PreferencesManager(component.Component):
def _on_set_cache_expiry(self, key, value):
log.debug("%s: %s", key, value)
self.session_set_setting("cache_expiry", value)
+
+ def _on_auto_manage_prefer_seeds(self, key, value):
+ log.debug("%s set to %s..", key, value)
+ self.session_set_setting("auto_manage_prefer_seeds", value)
diff --git a/deluge/ui/console/modes/preference_panes.py b/deluge/ui/console/modes/preference_panes.py
index e24921629..3a64a1068 100644
--- a/deluge/ui/console/modes/preference_panes.py
+++ b/deluge/ui/console/modes/preference_panes.py
@@ -354,6 +354,7 @@ class QueuePane(BasePane):
self.add_int_spin_input("max_active_downloading","Total active downloading:",parent.core_config["max_active_downloading"],-1,9999)
self.add_int_spin_input("max_active_seeding","Total active seeding:",parent.core_config["max_active_seeding"],-1,9999)
self.add_checked_input("dont_count_slow_torrents","Do not count slow torrents",parent.core_config["dont_count_slow_torrents"])
+ self.add_checked_input("auto_manage_prefer_seeds","Prefer Seeding over Downloading",parent.core_config["auto_manage_prefer_seeds"])
self.add_header("Seeding",True)
self.add_float_spin_input("share_ratio_limit","Share Ratio Limit:",parent.core_config["share_ratio_limit"],1.0,2,-1.0,100.0)
self.add_float_spin_input("seed_time_ratio_limit","Share Time Ratio:",parent.core_config["seed_time_ratio_limit"],1.0,2,-1.0,100.0)
diff --git a/deluge/ui/gtkui/glade/preferences_dialog.glade b/deluge/ui/gtkui/glade/preferences_dialog.glade
index 1bfd4d340..99bd0ca96 100644
--- a/deluge/ui/gtkui/glade/preferences_dialog.glade
+++ b/deluge/ui/gtkui/glade/preferences_dialog.glade
@@ -3846,6 +3846,21 @@ status tab (<b>EXPERIMENTAL!!!</b>)
1
+
+
+ Prefer Seeding over Downloading
+ True
+ True
+ False
+ False
+ True
+
+
+ True
+ True
+ 2
+
+
diff --git a/deluge/ui/gtkui/preferences.py b/deluge/ui/gtkui/preferences.py
index c732f339f..6e637fc66 100644
--- a/deluge/ui/gtkui/preferences.py
+++ b/deluge/ui/gtkui/preferences.py
@@ -363,6 +363,7 @@ class Preferences(component.Component):
"spin_seeding": ("value", self.core_config["max_active_seeding"]),
"spin_downloading": ("value", self.core_config["max_active_downloading"]),
"chk_dont_count_slow_torrents": ("active", self.core_config["dont_count_slow_torrents"]),
+ "chk_auto_manage_prefer_seeds": ("active", self.core_config["auto_manage_prefer_seeds"]),
"chk_queue_new_top": ("active", self.core_config["queue_new_to_top"]),
"spin_share_ratio_limit": ("value", self.core_config["share_ratio_limit"]),
"spin_seed_time_ratio_limit": \
@@ -503,6 +504,7 @@ class Preferences(component.Component):
"spin_downloading",
"spin_active",
"chk_dont_count_slow_torrents",
+ "chk_auto_manage_prefer_seeds",
"chk_queue_new_top",
"chk_seed_ratio",
"spin_share_ratio",
@@ -781,6 +783,8 @@ class Preferences(component.Component):
self.glade.get_widget("spin_active").get_value_as_int()
new_core_config["dont_count_slow_torrents"] = \
self.glade.get_widget("chk_dont_count_slow_torrents").get_active()
+ new_core_config["auto_manage_prefer_seeds"] = \
+ self.glade.get_widget("chk_auto_manage_prefer_seeds").get_active()
new_core_config["stop_seed_at_ratio"] = \
self.glade.get_widget("chk_seed_ratio").get_active()
new_core_config["remove_seed_at_ratio"] = \
diff --git a/deluge/ui/web/js/deluge-all/preferences/QueuePage.js b/deluge/ui/web/js/deluge-all/preferences/QueuePage.js
index cee5a1557..9a6b4cf69 100644
--- a/deluge/ui/web/js/deluge-all/preferences/QueuePage.js
+++ b/deluge/ui/web/js/deluge-all/preferences/QueuePage.js
@@ -102,10 +102,17 @@ Deluge.preferences.Queue = Ext.extend(Ext.form.FormPanel, {
om.bind('dont_count_slow_torrents', fieldset.add({
xtype: 'checkbox',
name: 'dont_count_slow_torrents',
- height: 40,
+ height: 22,
hideLabel: true,
boxLabel: _('Do not count slow torrents')
}));
+ om.bind('auto_manage_prefer_seeds', fieldset.add({
+ xtype: 'checkbox',
+ name: 'auto_manage_prefer_seeds',
+ height: 40,
+ hideLabel: true,
+ boxLabel: _('Prefer Seeding over Downloading')
+ }));
fieldset = this.add({
xtype: 'fieldset',