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 + + + + + True + + + True + _File + True + + + + + True + Add Torrent from file + True + + + + True + + + + + + + True + Add Torrent from URL + True + + + + + + True + Remove selected Torrent + True + + + + + + True + + + + + True + gtk-quit + True + True + + + + + + + + + + True + _Edit + True + + + True + + + True + gtk-preferences + True + True + + + + + + True + _Manage Plugins + True + + + + + + + + + + True + _View + True + + + True + + + True + Show Details Pane + True + True + + + + + + True + Columns + True + + + True + + + True + Size + True + True + + + + + + True + Status + True + True + + + + + + True + Seeders + True + True + + + + + + True + Peers + True + True + + + + + + True + Download + True + True + + + + + + True + Upload + True + True + + + + + + True + Time Remaining + True + True + + + + + + True + Share Ratio + True + True + + + + + + + + + + + + + + True + _Help + True + + + + + True + gtk-about + True + True + + + + + + + + + + 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 - - - - - - True - - - True - _File - True - - - - - True - Create a Torrent - True - - - - - True - Add Torrent - True - - - - - True - Remove selected Torrent - True - - - - - - True - - - - - True - gtk-quit - True - True - - - - - - - - - - True - _Edit - True - - - True - - - True - gtk-preferences - True - True - - - - - - True - _Manage Plugins - True - - - - - - - - - - True - _View - True - - - True - - - True - True - Show Details Pane - True - - - - - - True - Columns - True - - - True - - - True - True - Size - True - - - - - - True - True - Status - True - - - - - - True - True - Seeders - True - - - - - - True - True - Peers - True - - - - - - True - True - Download - True - - - - - - True - True - Upload - True - - - - - - True - True - Time Remaining - True - - - - - - True - True - Share Ratio - True - - - - - - - - - - - - - - True - _Help - True - - - - - True - gtk-about - True - True - - - - - - - - - - 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 @@ - + True @@ -77,4 +77,83 @@ + + 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