clear on max ratio - micah

This commit is contained in:
Marcos Pinto 2007-07-17 04:51:11 +00:00
parent e9a42b6fcd
commit 776004320e
4 changed files with 49 additions and 18 deletions

View file

@ -308,6 +308,7 @@
<property name="use_underline">True</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="on_chk_autoseed"/>
</widget>
<packing>
<property name="expand">False</property>
@ -333,6 +334,19 @@
<property name="position">1</property>
</packing>
</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>
</child>
</widget>

View file

@ -46,6 +46,7 @@ class PreferencesDlg:
'on_chk_use_tray_toggled': self.tray_toggle,
'on_save_all_to' : 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,
})
@ -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("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_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("chk_dht").set_active(self.preferences.get("enable_dht"))
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("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("clear_max_ratio_torrents", self.glade.get_widget("chk_clear_max_ratio_torrents").get_active())
return r
@ -160,6 +164,13 @@ class PreferencesDlg:
self.glade.get_widget("chk_lock_tray").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):
if(self.glade.get_widget("radio_ask_save").get_active()):
self.glade.get_widget("chk_move_completed").set_active(False)

View file

@ -847,14 +847,28 @@ class DelugeGTK:
while itr is not None:
uid = self.torrent_model.get_value(itr, 0)
state = self.manager.get_torrent_state(uid)
tlist = self.get_list_from_unique_id(uid)
for i in range(len(tlist)):
try:
self.torrent_model.set_value(itr, i, tlist[i])
except:
print "ERR", i, type(tlist[i]), tlist[i]
itr = self.torrent_model.iter_next(itr)
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)
tlist = self.get_list_from_unique_id(uid)
for i in range(len(tlist)):
try:
self.torrent_model.set_value(itr, i, tlist[i])
except:
print "ERR", i, type(tlist[i]), tlist[i]
itr = self.torrent_model.iter_next(itr)
# Disable moving top torrents up or bottom torrents down
top_torrents_selected = True
@ -1194,16 +1208,7 @@ class DelugeGTK:
def clear_finished(self, obj=None):
print "Clearing completed torrents"
unique_ids_remove = 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.manager.clear_completed()
self.update()
def q_torrent_up(self, obj=None):

View file

@ -42,6 +42,7 @@ DEFAULT_PREFS = {
"auto_seed_ratio" : 0,
"close_to_tray" : False,
"enable_files_dialog" : False,
"clear_max_ratio_torrents" : False,
"default_download_path" : os.path.expanduser("~/"),
"default_load_path" : os.path.expanduser("~/"),
"default_finished_path" : os.path.expanduser("~/"),