diff --git a/glade/delugegtk.glade b/glade/delugegtk.glade
index 0c45cf43b..f0fab7b45 100644
--- a/glade/delugegtk.glade
+++ b/glade/delugegtk.glade
@@ -15,6 +15,353 @@
True
4
3
+
+
+ True
+ GTK_TOOLBAR_BOTH_HORIZ
+ False
+
+
+ True
+ Add Torrent
+ Add Torrent
+ True
+ gtk-add
+
+
+
+ False
+
+
+
+
+ True
+ Remove Torrent
+ Remove Torrent
+ True
+ gtk-remove
+
+
+
+ False
+
+
+
+
+ True
+ Clear Finished Torrents
+ Clear Finished
+ True
+ gtk-clear
+
+
+
+ False
+
+
+
+
+ True
+ Update Tracker
+ Update Tracker
+ True
+ gtk-refresh
+
+
+
+ False
+
+
+
+
+ True
+ Queue Torrent Up
+ Move Up
+ True
+ gtk-go-up
+
+
+
+ False
+
+
+
+
+ True
+ Queue Torrent Down
+ Move Down
+ True
+ gtk-go-down
+
+
+
+ False
+
+
+
+
+ 1
+ 2
+
+ GTK_FILL
+
+
+
+
+ True
+ GTK_TOOLBAR_BOTH_HORIZ
+
+
+ 1
+ 2
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+ GTK_TOOLBAR_BOTH_HORIZ
+ False
+
+
+ 2
+ 3
+ 1
+ 2
+
+ GTK_FILL
+
+
+
+
+
+ 3
+
+
+
+
+
+ True
+
+
+ 3
+ 3
+ 4
+
+
+
True
@@ -73,441 +420,13 @@
-
- True
-
-
- 3
- 4
- 10
- 11
-
-
-
-
- True
- 0
- <b>Estimated Time Remaining:</b>
- True
-
-
- 2
- 3
- 10
- 11
-
-
-
-
+
True
0
3
4
- 4
- 5
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 4
- 5
-
-
-
-
- True
- 0
- <b>Peers:</b>
- True
-
-
- 2
- 3
- 4
- 5
-
-
-
-
- True
- 0
- <b>Seeders:</b>
- True
-
-
- 4
- 5
-
-
-
-
- True
- 0
- True
-
-
- 1
- 4
-
-
-
-
- True
- 0
- <b>Total Size:</b>
- True
-
-
- 1
- 2
-
-
-
-
- True
- 0
- <b>Total Downloaded:</b>
- True
-
-
- 2
- 3
-
-
-
-
- True
- 0
- <b>Percentage Done:</b>
- True
-
-
- 5
- 6
-
-
-
-
- True
- 0
- <b>Downloaded this session:</b>
- True
-
-
- 6
- 7
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 5
- 6
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 6
- 7
-
-
-
-
- True
- 0
- <b>Tracker:</b>
- True
-
-
- 7
- 8
-
-
-
-
- True
- 0
- <b>Tracker Response:</b>
- True
-
-
- 8
- 9
-
-
-
-
- True
- 0
- <b>Tracker Status:</b>
- True
-
-
- 9
- 10
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 9
- 10
-
-
-
-
- True
- 0
- <b>Next Announce:</b>
- True
-
-
- 2
- 3
- 9
- 10
-
-
-
-
- True
- 0
-
-
- 3
- 4
- 9
- 10
-
-
-
-
- True
- 0
- <b>Pieces:</b>
- True
-
-
- 2
- 3
- 1
- 2
-
-
-
-
- True
- 0
- <b>Total Uploaded:</b>
- True
-
-
- 2
- 3
- 2
- 3
-
-
-
-
- True
- 0
-
-
- 3
- 4
- 1
- 2
-
-
-
-
- True
- 0
-
-
- 3
- 4
- 2
- 3
-
-
-
-
- True
- 0
- <b>Share Ratio:</b>
- True
-
-
- 2
- 3
- 5
- 6
-
-
-
-
- True
- 0
- <b>Uploaded This Session:</b>
- True
-
-
- 2
- 3
- 6
- 7
-
-
-
-
- True
- 0
-
-
- 3
- 4
- 5
- 6
-
-
-
-
- True
- 0
-
-
- 3
- 4
- 6
- 7
-
-
-
-
- True
- 0
-
-
- 1
- 4
- 7
- 8
-
-
-
-
- True
- 0
-
-
- 1
- 4
- 8
- 9
-
-
-
-
- True
- 0
- <b>Name:</b>
- True
-
-
-
-
- True
- 0
- <b>Use compact storage allocation:</b>
- True
-
-
- 10
- 11
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 10
- 11
-
-
-
-
- True
- 0
- <b>Download Rate:</b>
- True
-
-
- 3
- 4
-
-
-
-
- True
- 0
-
-
- 1
- 2
3
4
@@ -527,15 +446,443 @@
-
+
+ True
+ 0
+
+
+ 1
+ 2
+ 3
+ 4
+
+
+
+
+ True
+ 0
+ <b>Download Rate:</b>
+ True
+
+
+ 3
+ 4
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 10
+ 11
+
+
+
+
+ True
+ 0
+ <b>Use compact storage allocation:</b>
+ True
+
+
+ 10
+ 11
+
+
+
+
+ True
+ 0
+ <b>Name:</b>
+ True
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 4
+ 8
+ 9
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 4
+ 7
+ 8
+
+
+
+
True
0
3
4
- 3
- 4
+ 6
+ 7
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 5
+ 6
+
+
+
+
+ True
+ 0
+ <b>Uploaded This Session:</b>
+ True
+
+
+ 2
+ 3
+ 6
+ 7
+
+
+
+
+ True
+ 0
+ <b>Share Ratio:</b>
+ True
+
+
+ 2
+ 3
+ 5
+ 6
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 2
+ 3
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 1
+ 2
+
+
+
+
+ True
+ 0
+ <b>Total Uploaded:</b>
+ True
+
+
+ 2
+ 3
+ 2
+ 3
+
+
+
+
+ True
+ 0
+ <b>Pieces:</b>
+ True
+
+
+ 2
+ 3
+ 1
+ 2
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 9
+ 10
+
+
+
+
+ True
+ 0
+ <b>Next Announce:</b>
+ True
+
+
+ 2
+ 3
+ 9
+ 10
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 9
+ 10
+
+
+
+
+ True
+ 0
+ <b>Tracker Status:</b>
+ True
+
+
+ 9
+ 10
+
+
+
+
+ True
+ 0
+ <b>Tracker Response:</b>
+ True
+
+
+ 8
+ 9
+
+
+
+
+ True
+ 0
+ <b>Tracker:</b>
+ True
+
+
+ 7
+ 8
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 6
+ 7
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 5
+ 6
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 2
+ 3
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 1
+ 2
+
+
+
+
+ True
+ 0
+ <b>Downloaded this session:</b>
+ True
+
+
+ 6
+ 7
+
+
+
+
+ True
+ 0
+ <b>Percentage Done:</b>
+ True
+
+
+ 5
+ 6
+
+
+
+
+ True
+ 0
+ <b>Total Downloaded:</b>
+ True
+
+
+ 2
+ 3
+
+
+
+
+ True
+ 0
+ <b>Total Size:</b>
+ True
+
+
+ 1
+ 2
+
+
+
+
+ True
+ 0
+ True
+
+
+ 1
+ 4
+
+
+
+
+ True
+ 0
+ <b>Seeders:</b>
+ True
+
+
+ 4
+ 5
+
+
+
+
+ True
+ 0
+ <b>Peers:</b>
+ True
+
+
+ 2
+ 3
+ 4
+ 5
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 4
+ 5
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 4
+ 5
+
+
+
+
+ True
+ 0
+ <b>Estimated Time Remaining:</b>
+ True
+
+
+ 2
+ 3
+ 10
+ 11
+
+
+
+
+ True
+
+
+ 3
+ 4
+ 10
+ 11
@@ -624,328 +971,6 @@
3
-
-
- True
-
-
- 3
- 3
- 4
-
-
-
-
-
-
- 3
-
-
-
-
-
- True
- GTK_TOOLBAR_BOTH_HORIZ
- False
-
-
- 2
- 3
- 1
- 2
-
- GTK_FILL
-
-
-
-
- True
- GTK_TOOLBAR_BOTH_HORIZ
-
-
- 1
- 2
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- GTK_TOOLBAR_BOTH_HORIZ
- False
-
-
- True
- Add Torrent
- True
- gtk-add
- Add Torrent
-
-
-
-
-
- True
- Remove Torrent
- True
- gtk-remove
- Remove Torrent
-
-
-
-
-
- True
- Clear Finished
- True
- gtk-clear
- Clear Finished Torrents
-
-
-
-
-
- True
- Update Tracker
- True
- gtk-refresh
- Update Tracker
-
-
-
-
-
- True
- Move Up
- True
- gtk-go-up
- Queue Torrent Up
-
-
-
-
-
- True
- Move Down
- True
- gtk-go-down
- Queue Torrent Down
-
-
-
-
-
- 1
- 2
-
- GTK_FILL
-
-
diff --git a/glade/dgtkpopups.glade b/glade/dgtkpopups.glade
index 3ff3d0ac0..c980bab17 100644
--- a/glade/dgtkpopups.glade
+++ b/glade/dgtkpopups.glade
@@ -1,6 +1,6 @@
-
+
+
+ Remove Torrent
+ GDK_WINDOW_TYPE_HINT_DIALOG
+ False
+
+
+ True
+
+
+ True
+
+
+ True
+ 0
+ <b>Are you sure you want to remove the selected torrent(s) from Deluge?</b>
+ True
+
+
+ 10
+
+
+
+
+ True
+ Delete downloaded files
+ True
+
+
+ 1
+
+
+
+
+ True
+ True
+ GTK_JUSTIFY_CENTER
+
+
+ 2
+
+
+
+
+ False
+ False
+ 1
+
+
+
+
+ True
+ GTK_BUTTONBOX_END
+
+
+ True
+ gtk-no
+ True
+
+
+
+
+ True
+ gtk-yes
+ True
+ 1
+
+
+ 1
+
+
+
+
+ False
+ GTK_PACK_END
+
+
+
+
+
diff --git a/src/delugegtk.py b/src/delugegtk.py
index 741ce089e..50e730016 100755
--- a/src/delugegtk.py
+++ b/src/delugegtk.py
@@ -30,6 +30,7 @@ import dbus, dbus.service
if getattr(dbus, 'version', (0,0,0)) >= (0,41,0):
import dbus.glib
+_ = gettext.gettext
class DelugeGTK(dbus.service.Object):
def __init__(self, bus_name=dbus.service.BusName('org.deluge_torrent.Deluge',
@@ -80,8 +81,8 @@ class DelugeGTK(dbus.service.Object):
def connect_signals(self):
self.wtree.signal_autoconnect({
## File Menu
- "new_torrent": self.new_torrent_clicked,
"add_torrent": self.add_torrent_clicked,
+ "add_torrent_url": self.add_torrent_url_clicked,
"remove_torrent" : self.remove_torrent_clicked,
"menu_quit": self.quit,
## Edit Menu
@@ -417,10 +418,33 @@ class DelugeGTK(dbus.service.Object):
uid = self.manager.add_torrent(torrent, ".", True)
self.store.append(self.get_list_from_unique_id(uid))
+ def add_torrent_url_clicked(self, obj=None):
+ pass
+
def remove_torrent_clicked(self, obj=None):
torrent = self.get_selected_torrent()
if torrent is not None:
- self.manager.remove_torrent(torrent, False)
+ glade = gtk.glade.XML(dcommon.get_glade_file("dgtkpopups.glade"))
+ asker = glade.get_widget("remove_torrent_dlg")
+
+ warning = glade.get_widget("warning")
+ warning.set_text(" ")
+
+ data_also = glade.get_widget("data_also")
+ data_also.connect("toggled", self.remove_toggle_warning, warning)
+
+ response = asker.run()
+ asker.destroy()
+ if response == 1:
+ self.manager.remove_torrent(torrent, data_also.get_active())
+
+
+ def remove_toggle_warning(self, args, warning):
+ if not args.get_active():
+ warning.set_text(" ")
+ else:
+ warning.set_markup("" + "Warning - all downloaded files for this torrent will be deleted!" + "")
+ return False
def update_tracker(self, obj=None):
torrent = self.get_selected_torrent()
diff --git a/src/dgtk.py b/src/dgtk.py
index f9a788bdd..027c542e0 100644
--- a/src/dgtk.py
+++ b/src/dgtk.py
@@ -44,11 +44,20 @@ class TrayIcon:
def popup(self):
pass
-## A simple file open dialog. I'm going to improve it later,
-## this is a quick implementation for testing.
-def show_file_open_dialog():
- chooser = gtk.FileChooserDialog("Open", None, gtk.FILE_CHOOSER_ACTION_OPEN,
+## Browse for .torrent files
+def show_file_open_dialog(parent=None):
+ chooser = gtk.FileChooserDialog("Choose a .torrent file", parent, gtk.FILE_CHOOSER_ACTION_OPEN,
buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK))
+
+ f0 = gtk.FileFilter()
+ f0.set_name(".torrent files")
+ f0.add_pattern("*." + "torrent")
+ chooser.add_filter(f0)
+ f1 = gtk.FileFilter()
+ f1.set_name("All files")
+ f1.add_pattern("*")
+ chooser.add_filter(f1)
+
response = chooser.run()
if response == gtk.RESPONSE_OK:
result = chooser.get_filename()
@@ -56,7 +65,6 @@ def show_file_open_dialog():
result = None
chooser.destroy()
return result
-
## Functions to create columns