summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcos Pinto <markybob@dipconsultants.com>2008-02-12 20:57:46 +0000
committerMarcos Pinto <markybob@dipconsultants.com>2008-02-12 20:57:46 +0000
commit05240945a76b473efda07ca15e6ce9956fddc663 (patch)
treee2f841c35deee38da3672052acf7afaa1f90bb19
parentcb493591f19e075752aacfbde165a0d3d50575de (diff)
downloaddeluge-05240945a76b473efda07ca15e6ce9956fddc663.tar.gz
deluge-05240945a76b473efda07ca15e6ce9956fddc663.tar.bz2
deluge-05240945a76b473efda07ca15e6ce9956fddc663.zip
add 'switch torrent source' to movetorrent plugin
-rw-r--r--plugins/MoveTorrent/__init__.py28
-rw-r--r--src/interface.py99
2 files changed, 76 insertions, 51 deletions
diff --git a/plugins/MoveTorrent/__init__.py b/plugins/MoveTorrent/__init__.py
index 714c0639a..7331afcfc 100644
--- a/plugins/MoveTorrent/__init__.py
+++ b/plugins/MoveTorrent/__init__.py
@@ -70,20 +70,27 @@ class movetorrentMenu:
except IOError:
pass
- self.menuitem_image = gtk.Image()
- self.menuitem_image.set_from_stock(gtk.STOCK_SAVE_AS, gtk.ICON_SIZE_MENU)
-
- self.menuitem = gtk.ImageMenuItem(_("_Move Torrent"))
- self.menuitem.set_image(self.menuitem_image)
- self.menuitem.connect("activate", self.movetorrent_clicked)
- self.interface.torrent_menu.append(self.menuitem)
- self.menuitem.show_all()
+ self.moveitem_image = gtk.Image()
+ self.moveitem_image.set_from_stock(gtk.STOCK_SAVE_AS, gtk.ICON_SIZE_MENU)
+ self.moveitem = gtk.ImageMenuItem(_("_Move Torrent"))
+ self.moveitem.set_image(self.moveitem_image)
+ self.moveitem.connect("activate", self.movetorrent_clicked)
+ self.interface.torrent_menu.append(self.moveitem)
+ self.moveitem.show_all()
+ self.switchitem_image = gtk.Image()
+ self.switchitem_image.set_from_stock(gtk.STOCK_CONVERT, gtk.ICON_SIZE_MENU)
+ self.switchitem = gtk.ImageMenuItem(_("_Switch Torrent Source"))
+ self.switchitem.set_image(self.switchitem_image)
+ self.switchitem.connect("activate", self.switchtorrent_clicked)
+ self.interface.torrent_menu.append(self.switchitem)
+ self.switchitem.show_all()
def update(self):
pass
def unload(self):
- self.interface.torrent_menu.remove(self.menuitem)
+ self.interface.torrent_menu.remove(self.moveitem)
+ self.interface.torrent_menu.remove(self.switchitem)
self.core.disconnect_event(self.core.constants['EVENT_STORAGE_MOVED'], self.handle_event)
self.core.disconnect_event(self.core.constants['EVENT_FINISHED'], self.handle_event)
self.config.save(self.config_file)
@@ -98,6 +105,9 @@ class movetorrentMenu:
for unique_id in unique_ids:
self.core.move_storage(unique_id, path)
+ def switchtorrent_clicked(self, widget):
+ self.interface.torrent_switch_recheck(switch=True)
+
def configure(self, window):
try:
self.glade.get_widget("chk_move_completed").set_active(self.config.get("enable_move_completed"))
diff --git a/src/interface.py b/src/interface.py
index 3bebc7e56..721117fb6 100644
--- a/src/interface.py
+++ b/src/interface.py
@@ -564,7 +564,7 @@ window, please enter your password"))
"remove_torrent": self.remove_torrent_clicked,
"edit_trackers": self.list_of_trackers,
"tor_start": self.tor_start,
- "torrent_recheck": self.torrent_recheck,
+ "torrent_switch_recheck": self.torrent_switch_recheck,
"tor_pause": self.tor_pause,
"update_tracker": self.update_tracker,
"clear_finished": self.clear_finished,
@@ -760,57 +760,72 @@ window, please enter your password"))
except KeyError:
pass
- def torrent_recheck(self, widget):
+ def torrent_switch_recheck(self, widget=None, switch=False):
unique_ids = self.get_selected_torrent_rows()
for uid in unique_ids:
torrent_state = self.manager.get_torrent_state(uid)
order = torrent_state['queue_pos']
path = self.manager.unique_IDs[uid].filename
- save_dir = self.manager.unique_IDs[uid].save_dir
- trackerslist = self.manager.unique_IDs[uid].trackers
- try:
- trackers_changed = self.manager.unique_IDs[uid].trackers_changed
- except AttributeError:
- trackers_changed = 0
- self.manager.save_upmem()
- uploaded_memory = self.manager.unique_IDs[uid].uploaded_memory
- priorities = self.manager.get_priorities(uid)
- save_info = [path, save_dir, order, trackerslist, \
- uploaded_memory, priorities, trackers_changed]
- try:
- os.remove(self.manager.unique_IDs[uid].filename + ".fastresume")
- except:
- pass
- self.manager.remove_torrent(uid, False, False)
- self.torrent_model_remove(uid)
- self.update()
- unique_ID = self.manager.add_torrent(save_info[0], save_info[1], \
- self.config.get("use_compact_storage"))
- self.torrent_model_append(unique_ID)
- self.update()
- self.manager.prioritize_files(unique_ID, save_info[5], update_files_removed=False)
- if save_info[4]:
- self.manager.unique_IDs[unique_ID].initial_uploaded_memory = \
- save_info[4]
+ if not switch:
+ save_dir = self.manager.unique_IDs[uid].save_dir
+ else:
+ save_dir = dialogs.show_directory_chooser_dialog(self.window, \
+ _("Choose a directory to switch torrent source to" + " - %s" % \
+ self.manager.get_torrent_state(uid)['name']))
+ if save_dir:
+ delete_old = dialogs.show_popup_question(self.window, \
+ _("Delete the old torrent source?"))
+ else:
+ delete_old = False
+ if save_dir:
+ trackerslist = self.manager.unique_IDs[uid].trackers
+ try:
+ trackers_changed = self.manager.unique_IDs[uid].trackers_changed
+ except AttributeError:
+ trackers_changed = 0
self.manager.save_upmem()
- if save_info[6]:
+ uploaded_memory = self.manager.unique_IDs[uid].uploaded_memory
+ priorities = self.manager.get_priorities(uid)
+ save_info = [path, save_dir, order, trackerslist, \
+ uploaded_memory, priorities, trackers_changed, \
+ delete_old]
try:
- self.manager.replace_trackers(unique_ID, save_info[3])
+ os.remove(self.manager.unique_IDs[uid].filename + ".fastresume")
except:
- pass
- torrent_state = self.manager.get_torrent_state(unique_ID)
- current_order = torrent_state['queue_pos']
- if current_order > save_info[2]:
- diff = current_order - save_info[2]
- for x in range(diff):
- self.manager.queue_up(unique_ID)
+ pass
+ if save_info[7]:
+ self.manager.remove_torrent(uid, True, False)
+ else:
+ self.manager.remove_torrent(uid, False, False)
+ self.torrent_model_remove(uid)
self.update()
- else:
- diff = save_info[2] - current_order
- for x in range(diff):
- self.manager.queue_down(unique_ID)
+ unique_ID = self.manager.add_torrent(save_info[0], save_info[1], \
+ self.config.get("use_compact_storage"))
+ self.torrent_model_append(unique_ID)
self.update()
-
+ self.manager.prioritize_files(unique_ID, save_info[5], update_files_removed=False)
+ if save_info[4]:
+ self.manager.unique_IDs[unique_ID].initial_uploaded_memory = \
+ save_info[4]
+ self.manager.save_upmem()
+ if save_info[6]:
+ try:
+ self.manager.replace_trackers(unique_ID, save_info[3])
+ except:
+ pass
+ torrent_state = self.manager.get_torrent_state(unique_ID)
+ current_order = torrent_state['queue_pos']
+ if current_order > save_info[2]:
+ diff = current_order - save_info[2]
+ for x in range(diff):
+ self.manager.queue_up(unique_ID)
+ self.update()
+ else:
+ diff = save_info[2] - current_order
+ for x in range(diff):
+ self.manager.queue_down(unique_ID)
+ self.update()
+
def tor_start(self, widget):
unique_ids = self.get_selected_torrent_rows()
try: