mirror of
https://git.deluge-torrent.org/deluge
synced 2025-08-15 23:08:41 +00:00
clear on max ratio - micah
This commit is contained in:
parent
e9a42b6fcd
commit
776004320e
4 changed files with 49 additions and 18 deletions
|
@ -308,6 +308,7 @@
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<property name="response_id">0</property>
|
<property name="response_id">0</property>
|
||||||
<property name="draw_indicator">True</property>
|
<property name="draw_indicator">True</property>
|
||||||
|
<signal name="toggled" handler="on_chk_autoseed"/>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -333,6 +334,19 @@
|
||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkCheckButton" id="chk_clear_max_ratio_torrents">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="label" translatable="yes">Automatically clear torrents that reach the max share ratio</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="position">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
|
@ -46,6 +46,7 @@ class PreferencesDlg:
|
||||||
'on_chk_use_tray_toggled': self.tray_toggle,
|
'on_chk_use_tray_toggled': self.tray_toggle,
|
||||||
'on_save_all_to' : self.toggle_move_chk,
|
'on_save_all_to' : self.toggle_move_chk,
|
||||||
'on_ask_save' : self.toggle_move_chk,
|
'on_ask_save' : self.toggle_move_chk,
|
||||||
|
'on_chk_autoseed' : self.toggle_clear_max_ratio_torrents_chk,
|
||||||
'on_btn_testport_clicked': self.TestPort,
|
'on_btn_testport_clicked': self.TestPort,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -98,6 +99,8 @@ class PreferencesDlg:
|
||||||
self.glade.get_widget("spin_torrents").set_value(float(self.preferences.get("max_active_torrents")))
|
self.glade.get_widget("spin_torrents").set_value(float(self.preferences.get("max_active_torrents")))
|
||||||
self.glade.get_widget("chk_seedbottom").set_active(self.preferences.get("queue_seeds_to_bottom"))
|
self.glade.get_widget("chk_seedbottom").set_active(self.preferences.get("queue_seeds_to_bottom"))
|
||||||
self.glade.get_widget("chk_autoseed").set_active(self.preferences.get("auto_end_seeding"))
|
self.glade.get_widget("chk_autoseed").set_active(self.preferences.get("auto_end_seeding"))
|
||||||
|
self.glade.get_widget("chk_clear_max_ratio_torrents").set_sensitive(self.preferences.get("auto_end_seeding"))
|
||||||
|
self.glade.get_widget("chk_clear_max_ratio_torrents").set_active(self.preferences.get("clear_max_ratio_torrents"))
|
||||||
self.glade.get_widget("ratio_spinner").set_value(self.preferences.get("auto_seed_ratio"))
|
self.glade.get_widget("ratio_spinner").set_value(self.preferences.get("auto_seed_ratio"))
|
||||||
self.glade.get_widget("chk_dht").set_active(self.preferences.get("enable_dht"))
|
self.glade.get_widget("chk_dht").set_active(self.preferences.get("enable_dht"))
|
||||||
self.glade.get_widget("spin_gui").set_value(self.preferences.get("gui_update_interval"))
|
self.glade.get_widget("spin_gui").set_value(self.preferences.get("gui_update_interval"))
|
||||||
|
@ -146,6 +149,7 @@ class PreferencesDlg:
|
||||||
self.preferences.set("queue_seeds_to_bottom", self.glade.get_widget("chk_seedbottom").get_active())
|
self.preferences.set("queue_seeds_to_bottom", self.glade.get_widget("chk_seedbottom").get_active())
|
||||||
self.preferences.set("enable_dht", self.glade.get_widget("chk_dht").get_active())
|
self.preferences.set("enable_dht", self.glade.get_widget("chk_dht").get_active())
|
||||||
self.preferences.set("gui_update_interval", self.glade.get_widget("spin_gui").get_value())
|
self.preferences.set("gui_update_interval", self.glade.get_widget("spin_gui").get_value())
|
||||||
|
self.preferences.set("clear_max_ratio_torrents", self.glade.get_widget("chk_clear_max_ratio_torrents").get_active())
|
||||||
|
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
@ -160,6 +164,13 @@ class PreferencesDlg:
|
||||||
self.glade.get_widget("chk_lock_tray").set_sensitive(is_active)
|
self.glade.get_widget("chk_lock_tray").set_sensitive(is_active)
|
||||||
self.glade.get_widget("txt_tray_passwd").set_sensitive(is_active)
|
self.glade.get_widget("txt_tray_passwd").set_sensitive(is_active)
|
||||||
|
|
||||||
|
def toggle_clear_max_ratio_torrents_chk(self, widget):
|
||||||
|
if(self.glade.get_widget("chk_autoseed").get_active()):
|
||||||
|
self.glade.get_widget("chk_clear_max_ratio_torrents").set_sensitive(True)
|
||||||
|
else:
|
||||||
|
self.glade.get_widget("chk_clear_max_ratio_torrents").set_active(False)
|
||||||
|
self.glade.get_widget("chk_clear_max_ratio_torrents").set_sensitive(False)
|
||||||
|
|
||||||
def toggle_move_chk(self, widget):
|
def toggle_move_chk(self, widget):
|
||||||
if(self.glade.get_widget("radio_ask_save").get_active()):
|
if(self.glade.get_widget("radio_ask_save").get_active()):
|
||||||
self.glade.get_widget("chk_move_completed").set_active(False)
|
self.glade.get_widget("chk_move_completed").set_active(False)
|
||||||
|
|
|
@ -847,6 +847,20 @@ class DelugeGTK:
|
||||||
|
|
||||||
while itr is not None:
|
while itr is not None:
|
||||||
uid = self.torrent_model.get_value(itr, 0)
|
uid = self.torrent_model.get_value(itr, 0)
|
||||||
|
if self.manager.removed_unique_ids.count(uid) > 0:
|
||||||
|
selected_unique_id = self.get_selected_torrent()
|
||||||
|
# If currently selected torrent was complete and so removed clear
|
||||||
|
# details pane
|
||||||
|
if selected_unique_id == uid:
|
||||||
|
self.clear_details_pane()
|
||||||
|
next = self.torrent_model.iter_next(itr)
|
||||||
|
self.torrent_model.remove(itr)
|
||||||
|
itr = self.torrent_model.get_iter_first()
|
||||||
|
if itr is None:
|
||||||
|
return True
|
||||||
|
itr = next
|
||||||
|
self.manager.removed_unique_ids.pop(self.manager.removed_unique_ids.index(uid))
|
||||||
|
else:
|
||||||
state = self.manager.get_torrent_state(uid)
|
state = self.manager.get_torrent_state(uid)
|
||||||
tlist = self.get_list_from_unique_id(uid)
|
tlist = self.get_list_from_unique_id(uid)
|
||||||
for i in range(len(tlist)):
|
for i in range(len(tlist)):
|
||||||
|
@ -1194,16 +1208,7 @@ class DelugeGTK:
|
||||||
|
|
||||||
def clear_finished(self, obj=None):
|
def clear_finished(self, obj=None):
|
||||||
print "Clearing completed torrents"
|
print "Clearing completed torrents"
|
||||||
unique_ids_remove = self.manager.clear_completed()
|
self.manager.clear_completed()
|
||||||
for unique_id in unique_ids_remove:
|
|
||||||
self.torrent_model_remove(unique_id)
|
|
||||||
|
|
||||||
selected_unique_id = self.get_selected_torrent()
|
|
||||||
# If currently selected torrent was complete and so removed clear
|
|
||||||
# details pane
|
|
||||||
if selected_unique_id in unique_ids_remove:
|
|
||||||
self.clear_details_pane()
|
|
||||||
|
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def q_torrent_up(self, obj=None):
|
def q_torrent_up(self, obj=None):
|
||||||
|
|
|
@ -42,6 +42,7 @@ DEFAULT_PREFS = {
|
||||||
"auto_seed_ratio" : 0,
|
"auto_seed_ratio" : 0,
|
||||||
"close_to_tray" : False,
|
"close_to_tray" : False,
|
||||||
"enable_files_dialog" : False,
|
"enable_files_dialog" : False,
|
||||||
|
"clear_max_ratio_torrents" : False,
|
||||||
"default_download_path" : os.path.expanduser("~/"),
|
"default_download_path" : os.path.expanduser("~/"),
|
||||||
"default_load_path" : os.path.expanduser("~/"),
|
"default_load_path" : os.path.expanduser("~/"),
|
||||||
"default_finished_path" : os.path.expanduser("~/"),
|
"default_finished_path" : os.path.expanduser("~/"),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue