summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Rawlins <monster.romster@gmail.com>2012-12-26 16:18:49 +1100
committerDanny Rawlins <monster.romster@gmail.com>2012-12-26 16:19:01 +1100
commit8ad83cecf7cc40b9994c4880e5f3113a7d495150 (patch)
tree415648c348dfb559533c29f30a33a6968bf0ac5d
parent46afb973fe476d53345836f3cc94793448b21fd7 (diff)
downloadcontrib-8ad83cecf7cc40b9994c4880e5f3113a7d495150.tar.gz
contrib-8ad83cecf7cc40b9994c4880e5f3113a7d495150.tar.xz
deluge: fix moving storage and setting download location
-rw-r--r--deluge/.md5sum2
-rw-r--r--deluge/Pkgfile12
-rw-r--r--deluge/fs31433.patch29
-rw-r--r--deluge/issue2169.patch1258
4 files changed, 1299 insertions, 2 deletions
diff --git a/deluge/.md5sum b/deluge/.md5sum
index 522da8209..a5f4f9913 100644
--- a/deluge/.md5sum
+++ b/deluge/.md5sum
@@ -1 +1,3 @@
872b45d200bbe16e49352fdf4586da1d deluge-1.3.5.tar.lzma
+65311330bd87440c50f2bb7251f46fcd fs31433.patch
+234bc58749f83ddadfdb39fb633b6d64 issue2169.patch
diff --git a/deluge/Pkgfile b/deluge/Pkgfile
index 9369d52d8..f330b1762 100644
--- a/deluge/Pkgfile
+++ b/deluge/Pkgfile
@@ -6,11 +6,19 @@
name=deluge
version=1.3.5
-release=2
-source=(http://download.deluge-torrent.org/source/$name-$version.tar.lzma)
+release=3
+source=(http://download.deluge-torrent.org/source/$name-$version.tar.lzma
+ fs31433.patch
+ issue2169.patch)
build() {
cd $name-$version
+
+ # Fix moving to storage
+ patch -p 1 -i $SRC/fs31433.patch
+ # Fix download location bug
+ patch -p 1 -i $SRC/issue2169.patch
+
OS='linux' python setup.py build
python setup.py install --root=$PKG install
diff --git a/deluge/fs31433.patch b/deluge/fs31433.patch
new file mode 100644
index 000000000..66dfa09aa
--- /dev/null
+++ b/deluge/fs31433.patch
@@ -0,0 +1,29 @@
+diff -u -Nr deluge-1.3.5/deluge/core/torrent.py deluge-1.3.5-fs31433/deluge/core/torrent.py
+--- deluge-1.3.5/deluge/core/torrent.py 2012-04-10 03:53:16.000000000 +0200
++++ deluge-1.3.5-fs31433/deluge/core/torrent.py 2012-10-24 06:14:05.838480957 +0200
+@@ -834,14 +834,17 @@
+ def move_storage(self, dest):
+ """Move a torrent's storage location"""
+
+- # Attempt to convert utf8 path to unicode
+- # Note: Inconsistent encoding for 'dest', needs future investigation
+- try:
+- dest_u = unicode(dest, "utf-8")
+- except TypeError:
+- # String is already unicode
+- dest_u = dest
+-
++ if deluge.common.windows_check():
++ # Attempt to convert utf8 path to unicode
++ # Note: Inconsistent encoding for 'dest', needs future investigation
++ try:
++ dest_u = unicode(dest, "utf-8")
++ except TypeError:
++ # String is already unicode
++ dest_u = dest
++ else:
++ dest_u = dest
++
+ if not os.path.exists(dest_u):
+ try:
+ # Try to make the destination path if it doesn't exist
diff --git a/deluge/issue2169.patch b/deluge/issue2169.patch
new file mode 100644
index 000000000..f8cda97a3
--- /dev/null
+++ b/deluge/issue2169.patch
@@ -0,0 +1,1258 @@
+diff -u -Nr deluge-1.3.5/deluge/ui/gtkui/addtorrentdialog.py deluge-1.3.5-issue2169/deluge/ui/gtkui/addtorrentdialog.py
+--- deluge-1.3.5/deluge/ui/gtkui/addtorrentdialog.py 2012-04-10 05:53:16.000000000 +0400
++++ deluge-1.3.5-issue2169/deluge/ui/gtkui/addtorrentdialog.py 2012-12-09 14:30:44.000000000 +0400
+@@ -78,7 +78,8 @@
+ "on_button_cancel_clicked": self._on_button_cancel_clicked,
+ "on_button_add_clicked": self._on_button_add_clicked,
+ "on_button_apply_clicked": self._on_button_apply_clicked,
+- "on_button_revert_clicked": self._on_button_revert_clicked
++ "on_button_revert_clicked": self._on_button_revert_clicked,
++ "on_button_download_location_clicked": self._on_button_download_location_clicked
+ })
+
+ self.torrent_liststore = gtk.ListStore(str, str, str)
+@@ -364,7 +365,7 @@
+ options = self.options[torrent_id]
+
+ if client.is_localhost():
+- self.glade.get_widget("button_location").set_current_folder(
++ self.glade.get_widget("button_location").set_text(
+ options["download_location"])
+ else:
+ self.glade.get_widget("entry_download_path").set_text(
+@@ -405,7 +406,7 @@
+
+ if client.is_localhost():
+ options["download_location"] = \
+- self.glade.get_widget("button_location").get_current_folder()
++ self.glade.get_widget("button_location").get_text()
+ else:
+ options["download_location"] = \
+ self.glade.get_widget("entry_download_path").get_text()
+@@ -454,7 +455,7 @@
+
+ def set_default_options(self):
+ if client.is_localhost():
+- self.glade.get_widget("button_location").set_current_folder(
++ self.glade.get_widget("button_location").set_text(
+ self.core_config["download_location"])
+ else:
+ self.glade.get_widget("entry_download_path").set_text(
+@@ -586,6 +587,37 @@
+ chooser.destroy()
+ self.add_from_files(result)
+
++ def _on_button_download_location_clicked(self, widget):
++ log.debug("_on_button_download_location_clicked")
++ # Setup the filechooserdialog
++ chooser = gtk.FileChooserDialog(_("Choose location folder"),
++ None,
++ gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
++ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN,
++ gtk.RESPONSE_OK))
++
++ chooser.set_transient_for(self.dialog)
++ chooser.set_select_multiple(False)
++ chooser.set_property("skip-taskbar-hint", True)
++ chooser.set_local_only(True)
++
++ # Load the 'default_load_path' from the config
++ self.config = ConfigManager("gtkui.conf")
++ if self.config["default_load_path"] is not None:
++ chooser.set_current_folder(self.config["default_load_path"])
++
++ # Run the dialog
++ response = chooser.run()
++
++ if response == gtk.RESPONSE_OK:
++ self.glade.get_widget("button_location").set_text(
++ chooser.get_current_folder())
++ else:
++ chooser.destroy()
++ return
++
++ chooser.destroy()
++
+ def _on_button_url_clicked(self, widget):
+ log.debug("_on_button_url_clicked")
+ dialog = self.glade.get_widget("url_dialog")
+diff -u -Nr deluge-1.3.5/deluge/ui/gtkui/glade/add_torrent_dialog.glade deluge-1.3.5-issue2169/deluge/ui/gtkui/glade/add_torrent_dialog.glade
+--- deluge-1.3.5/deluge/ui/gtkui/glade/add_torrent_dialog.glade 2012-04-10 05:53:16.000000000 +0400
++++ deluge-1.3.5-issue2169/deluge/ui/gtkui/glade/add_torrent_dialog.glade 2012-12-09 14:23:26.000000000 +0400
+@@ -1,8 +1,9 @@
+-<?xml version="1.0"?>
++<?xml version="1.0" encoding="UTF-8"?>
+ <glade-interface>
+ <!-- interface-requires gtk+ 2.12 -->
+ <!-- interface-naming-policy toplevel-contextual -->
+ <widget class="GtkDialog" id="dialog_add_torrent">
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Add Torrents</property>
+@@ -12,6 +13,7 @@
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">2</property>
+ <child>
+@@ -22,12 +24,14 @@
+ <child>
+ <widget class="GtkFrame" id="frame2">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="top_padding">5</property>
+ <property name="left_padding">12</property>
+@@ -35,6 +39,7 @@
+ <child>
+ <widget class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
+@@ -55,12 +60,15 @@
+ </child>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHButtonBox" id="hbuttonbox1">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="layout_style">center</property>
+ <child>
+@@ -69,16 +77,18 @@
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <signal name="clicked" handler="on_button_file_clicked"/>
++ <signal name="clicked" handler="on_button_file_clicked" swapped="no"/>
+ <child>
+ <widget class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="border_width">2</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkImage" id="image3">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="stock">gtk-open</property>
+ <property name="icon-size">1</property>
+@@ -92,6 +102,7 @@
+ <child>
+ <widget class="GtkLabel" id="label3">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">_File</property>
+ <property name="use_underline">True</property>
+@@ -117,16 +128,18 @@
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <signal name="clicked" handler="on_button_url_clicked"/>
++ <signal name="clicked" handler="on_button_url_clicked" swapped="no"/>
+ <child>
+ <widget class="GtkHBox" id="hbox4">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="border_width">2</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkImage" id="image4">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="stock">gtk-network</property>
+ <property name="icon-size">1</property>
+@@ -140,6 +153,7 @@
+ <child>
+ <widget class="GtkLabel" id="label4">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">_URL</property>
+ <property name="use_underline">True</property>
+@@ -165,16 +179,18 @@
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <signal name="clicked" handler="on_button_hash_clicked"/>
++ <signal name="clicked" handler="on_button_hash_clicked" swapped="no"/>
+ <child>
+ <widget class="GtkHBox" id="hbox5">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="border_width">2</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkImage" id="image5">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="stock">gtk-revert-to-saved</property>
+ <property name="icon-size">1</property>
+@@ -188,6 +204,7 @@
+ <child>
+ <widget class="GtkLabel" id="label5">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">Info_hash</property>
+ <property name="use_underline">True</property>
+@@ -213,15 +230,17 @@
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <signal name="clicked" handler="on_button_remove_clicked"/>
++ <signal name="clicked" handler="on_button_remove_clicked" swapped="no"/>
+ <child>
+ <widget class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkImage" id="image2">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="stock">gtk-remove</property>
+ </widget>
+@@ -234,6 +253,7 @@
+ <child>
+ <widget class="GtkLabel" id="label2">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">_Remove</property>
+ <property name="use_underline">True</property>
+@@ -267,6 +287,7 @@
+ <child>
+ <widget class="GtkLabel" id="label7">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">&lt;b&gt;Torrents&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+@@ -310,25 +331,32 @@
+ <child>
+ <widget class="GtkHBox" id="hbox11">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkImage" id="image9">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="stock">gtk-open</property>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label8">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">Fi_les</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+@@ -342,18 +370,21 @@
+ <child>
+ <widget class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="border_width">5</property>
+ <property name="spacing">5</property>
+ <child>
+ <widget class="GtkFrame" id="frame7">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment7">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="top_padding">5</property>
+ <property name="left_padding">5</property>
+@@ -361,27 +392,55 @@
+ <child>
+ <widget class="GtkHBox" id="hbox14">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+- <widget class="GtkFileChooserButton" id="button_location">
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="action">select-folder</property>
+- <property name="title" translatable="yes">Select A Folder</property>
++ <widget class="GtkEntry" id="button_location">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="invisible_char">●</property>
++ <property name="primary_icon_activatable">False</property>
++ <property name="secondary_icon_activatable">False</property>
++ <property name="primary_icon_sensitive">True</property>
++ <property name="secondary_icon_sensitive">True</property>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="entry_download_path">
+ <property name="can_focus">True</property>
+- <property name="truncate_multiline">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="truncate_multiline">True</property>
++ <property name="primary_icon_activatable">False</property>
++ <property name="secondary_icon_activatable">False</property>
++ <property name="primary_icon_sensitive">True</property>
++ <property name="secondary_icon_sensitive">True</property>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
++ <child>
++ <widget class="GtkButton" id="button_download_location">
++ <property name="label">Browse...</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <signal name="clicked" handler="on_button_download_location_clicked" swapped="no"/>
++ </widget>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
+ </widget>
+ </child>
+ </widget>
+@@ -389,6 +448,7 @@
+ <child>
+ <widget class="GtkLabel" id="label17">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">&lt;b&gt;Download Location&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+@@ -407,23 +467,27 @@
+ <child>
+ <widget class="GtkHBox" id="hbox6">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">10</property>
+ <child>
+ <widget class="GtkFrame" id="frame4">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment4">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="top_padding">5</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox4">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkRadioButton" id="radio_full">
+@@ -464,6 +528,7 @@
+ <child>
+ <widget class="GtkLabel" id="label9">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">&lt;b&gt;Allocation&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+@@ -482,18 +547,21 @@
+ <child>
+ <widget class="GtkFrame" id="frame5">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment5">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="top_padding">5</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkTable" id="table1">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="n_rows">4</property>
+ <property name="n_columns">2</property>
+@@ -504,30 +572,36 @@
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">1</property>
++ <property name="primary_icon_activatable">False</property>
++ <property name="secondary_icon_activatable">False</property>
++ <property name="primary_icon_sensitive">True</property>
++ <property name="secondary_icon_sensitive">True</property>
+ <property name="adjustment">-1 -1 9999 1 10 0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+- <property name="x_options"></property>
+- <property name="y_options"></property>
++ <property name="x_options"/>
++ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label11">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Max Down Speed:</property>
+ </widget>
+ <packing>
+ <property name="x_options">GTK_FILL</property>
+- <property name="y_options"></property>
++ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label12">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Max Up Speed:</property>
+@@ -536,12 +610,13 @@
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+- <property name="y_options"></property>
++ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label13">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Max Connections:</property>
+@@ -550,12 +625,13 @@
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
+- <property name="y_options"></property>
++ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label14">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Max Upload Slots:</property>
+@@ -564,7 +640,7 @@
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">GTK_FILL</property>
+- <property name="y_options"></property>
++ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+@@ -573,6 +649,10 @@
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">1</property>
++ <property name="primary_icon_activatable">False</property>
++ <property name="secondary_icon_activatable">False</property>
++ <property name="primary_icon_sensitive">True</property>
++ <property name="secondary_icon_sensitive">True</property>
+ <property name="adjustment">-1 -1 9999 1 10 0</property>
+ <property name="update_policy">if-valid</property>
+ </widget>
+@@ -581,8 +661,8 @@
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+- <property name="x_options"></property>
+- <property name="y_options"></property>
++ <property name="x_options"/>
++ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+@@ -591,6 +671,10 @@
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">1</property>
++ <property name="primary_icon_activatable">False</property>
++ <property name="secondary_icon_activatable">False</property>
++ <property name="primary_icon_sensitive">True</property>
++ <property name="secondary_icon_sensitive">True</property>
+ <property name="adjustment">-1 -1 9999 1 10 0</property>
+ </widget>
+ <packing>
+@@ -598,8 +682,8 @@
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+- <property name="x_options"></property>
+- <property name="y_options"></property>
++ <property name="x_options"/>
++ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+@@ -608,6 +692,10 @@
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">1</property>
++ <property name="primary_icon_activatable">False</property>
++ <property name="secondary_icon_activatable">False</property>
++ <property name="primary_icon_sensitive">True</property>
++ <property name="secondary_icon_sensitive">True</property>
+ <property name="adjustment">-1 -1 9999 1 10 0</property>
+ </widget>
+ <packing>
+@@ -615,8 +703,8 @@
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+- <property name="x_options"></property>
+- <property name="y_options"></property>
++ <property name="x_options"/>
++ <property name="y_options"/>
+ </packing>
+ </child>
+ </widget>
+@@ -626,6 +714,7 @@
+ <child>
+ <widget class="GtkLabel" id="label10">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">&lt;b&gt;Bandwidth&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+@@ -644,18 +733,21 @@
+ <child>
+ <widget class="GtkFrame" id="frame6">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment6">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="top_padding">5</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">5</property>
+ <child>
+@@ -696,6 +788,7 @@
+ <child>
+ <widget class="GtkLabel" id="label15">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">&lt;b&gt;General&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+@@ -721,28 +814,33 @@
+ <child>
+ <widget class="GtkHBox" id="hbox9">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">5</property>
+ <child>
+- <widget class="GtkAlignment" id="alignment1">
++ <widget class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+- <widget class="GtkButton" id="button_revert">
++ <widget class="GtkButton" id="button_apply">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <signal name="clicked" handler="on_button_revert_clicked"/>
++ <signal name="clicked" handler="on_button_apply_clicked" swapped="no"/>
+ <child>
+- <widget class="GtkHBox" id="hbox10">
++ <widget class="GtkHBox" id="hbox7">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+- <widget class="GtkImage" id="image8">
++ <widget class="GtkImage" id="image7">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="stock">gtk-revert-to-saved</property>
++ <property name="xalign">1</property>
++ <property name="stock">gtk-apply</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+@@ -751,10 +849,12 @@
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label19">
++ <widget class="GtkLabel" id="label18">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="label" translatable="yes">Revert To Defaults</property>
++ <property name="xalign">0</property>
++ <property name="label" translatable="yes">Apply To All</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+@@ -772,30 +872,32 @@
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+- <property name="position">1</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkAlignment" id="alignment3">
++ <widget class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+- <widget class="GtkButton" id="button_apply">
++ <widget class="GtkButton" id="button_revert">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <signal name="clicked" handler="on_button_apply_clicked"/>
++ <signal name="clicked" handler="on_button_revert_clicked" swapped="no"/>
+ <child>
+- <widget class="GtkHBox" id="hbox7">
++ <widget class="GtkHBox" id="hbox10">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+- <widget class="GtkImage" id="image7">
++ <widget class="GtkImage" id="image8">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="xalign">1</property>
+- <property name="stock">gtk-apply</property>
++ <property name="stock">gtk-revert-to-saved</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+@@ -804,11 +906,11 @@
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label18">
++ <widget class="GtkLabel" id="label19">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="xalign">0</property>
+- <property name="label" translatable="yes">Apply To All</property>
++ <property name="label" translatable="yes">Revert To Defaults</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+@@ -826,7 +928,7 @@
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+- <property name="position">0</property>
++ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+@@ -844,25 +946,32 @@
+ <child>
+ <widget class="GtkHBox" id="hbox12">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkImage" id="image10">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="stock">gtk-properties</property>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label20">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">_Options</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+@@ -882,12 +991,15 @@
+ </child>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="layout_style">end</property>
+ <child>
+@@ -898,7 +1010,7 @@
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="use_stock">True</property>
+- <signal name="clicked" handler="on_button_cancel_clicked"/>
++ <signal name="clicked" handler="on_button_cancel_clicked" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+@@ -914,7 +1026,7 @@
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="use_stock">True</property>
+- <signal name="clicked" handler="on_button_add_clicked"/>
++ <signal name="clicked" handler="on_button_add_clicked" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+@@ -925,6 +1037,7 @@
+ </widget>
+ <packing>
+ <property name="expand">False</property>
++ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+@@ -932,123 +1045,30 @@
+ </widget>
+ </child>
+ </widget>
+- <widget class="GtkDialog" id="url_dialog">
++ <widget class="GtkDialog" id="dialog_infohash">
+ <property name="width_request">462</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="border_width">5</property>
+- <property name="title" translatable="yes">Add URL</property>
++ <property name="title" translatable="yes">Add Infohash</property>
+ <property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="type_hint">dialog</property>
+ <property name="decorated">False</property>
+- <property name="has_separator">False</property>
+ <child internal-child="vbox">
+- <widget class="GtkVBox" id="dialog-vbox4">
++ <widget class="GtkVBox" id="dialog-vbox5">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">2</property>
+- <child>
+- <widget class="GtkVBox" id="vbox6">
+- <property name="visible">True</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="spacing">5</property>
+- <child>
+- <widget class="GtkHBox" id="hbox7">
+- <property name="visible">True</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="spacing">5</property>
+- <child>
+- <widget class="GtkImage" id="image11">
+- <property name="visible">True</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="stock">gtk-add</property>
+- </widget>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <widget class="GtkLabel" id="label6">
+- <property name="visible">True</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="label" translatable="yes">&lt;b&gt;From URL&lt;/b&gt;</property>
+- <property name="use_markup">True</property>
+- </widget>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <widget class="GtkHSeparator" id="hseparator3">
+- <property name="visible">True</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- </widget>
+- <packing>
+- <property name="expand">False</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <widget class="GtkHBox" id="hbox13">
+- <property name="visible">True</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="spacing">5</property>
+- <child>
+- <widget class="GtkLabel" id="label21">
+- <property name="visible">True</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="label" translatable="yes">URL:</property>
+- </widget>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <widget class="GtkEntry" id="entry_url">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="has_focus">True</property>
+- <property name="is_focus">True</property>
+- <property name="truncate_multiline">True</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="activates_default">True</property>
+- </widget>
+- <packing>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">2</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="position">1</property>
+- </packing>
+- </child>
+ <child internal-child="action_area">
+- <widget class="GtkHButtonBox" id="dialog-action_area4">
++ <widget class="GtkHButtonBox" id="dialog-action_area5">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="layout_style">end</property>
+ <child>
+- <widget class="GtkButton" id="button_add_cancel">
++ <widget class="GtkButton" id="button_magnet_add_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="response_id">-6</property>
+ <property name="visible">True</property>
+@@ -1064,7 +1084,7 @@
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkButton" id="button_add_ok">
++ <widget class="GtkButton" id="button_magnet_add_ok">
+ <property name="label">gtk-ok</property>
+ <property name="response_id">-5</property>
+ <property name="visible">True</property>
+@@ -1084,41 +1104,27 @@
+ </widget>
+ <packing>
+ <property name="expand">False</property>
++ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
+- </child>
+- </widget>
+- <widget class="GtkDialog" id="dialog_infohash">
+- <property name="width_request">462</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="border_width">5</property>
+- <property name="title" translatable="yes">Add Infohash</property>
+- <property name="window_position">center-on-parent</property>
+- <property name="destroy_with_parent">True</property>
+- <property name="type_hint">dialog</property>
+- <property name="decorated">False</property>
+- <property name="has_separator">False</property>
+- <child internal-child="vbox">
+- <widget class="GtkVBox" id="dialog-vbox5">
+- <property name="visible">True</property>
+- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+- <property name="spacing">2</property>
+ <child>
+ <widget class="GtkVBox" id="vbox7">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">5</property>
+ <child>
+ <widget class="GtkHBox" id="hbox8">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">5</property>
+ <child>
+ <widget class="GtkImage" id="image_dialog_magnet">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="stock">gtk-revert-to-saved</property>
+ </widget>
+@@ -1131,6 +1137,7 @@
+ <child>
+ <widget class="GtkLabel" id="label16">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">&lt;b&gt;From Infohash&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+@@ -1151,21 +1158,25 @@
+ <child>
+ <widget class="GtkHSeparator" id="hseparator2">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
++ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox16">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">5</property>
+ <child>
+ <widget class="GtkLabel" id="label23">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">Infohash:</property>
+ </widget>
+@@ -1181,11 +1192,17 @@
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="is_focus">True</property>
+- <property name="truncate_multiline">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="activates_default">True</property>
++ <property name="truncate_multiline">True</property>
++ <property name="primary_icon_activatable">False</property>
++ <property name="secondary_icon_activatable">False</property>
++ <property name="primary_icon_sensitive">True</property>
++ <property name="secondary_icon_sensitive">True</property>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+@@ -1199,10 +1216,12 @@
+ <child>
+ <widget class="GtkHBox" id="hbox15">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <widget class="GtkLabel" id="label22">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="yalign">0</property>
+ <property name="label" translatable="yes">Trackers:</property>
+ </widget>
+@@ -1227,26 +1246,52 @@
+ </child>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
++ </widget>
++ </child>
++ </widget>
++ <widget class="GtkDialog" id="url_dialog">
++ <property name="width_request">462</property>
++ <property name="can_focus">False</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="border_width">5</property>
++ <property name="title" translatable="yes">Add URL</property>
++ <property name="window_position">center-on-parent</property>
++ <property name="destroy_with_parent">True</property>
++ <property name="type_hint">dialog</property>
++ <property name="decorated">False</property>
++ <child internal-child="vbox">
++ <widget class="GtkVBox" id="dialog-vbox4">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="spacing">2</property>
+ <child internal-child="action_area">
+- <widget class="GtkHButtonBox" id="dialog-action_area5">
++ <widget class="GtkHButtonBox" id="dialog-action_area4">
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="layout_style">end</property>
+ <child>
+- <widget class="GtkButton" id="button_magnet_add_cancel">
++ <widget class="GtkButton" id="button_add_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="response_id">-6</property>
+ <property name="visible">True</property>
+@@ -1262,7 +1307,7 @@
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkButton" id="button_magnet_add_ok">
++ <widget class="GtkButton" id="button_add_ok">
+ <property name="label">gtk-ok</property>
+ <property name="response_id">-5</property>
+ <property name="visible">True</property>
+@@ -1282,10 +1327,122 @@
+ </widget>
+ <packing>
+ <property name="expand">False</property>
++ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
++ <child>
++ <widget class="GtkVBox" id="vbox6">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="spacing">5</property>
++ <child>
++ <widget class="GtkHBox" id="hbox7">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="spacing">5</property>
++ <child>
++ <widget class="GtkImage" id="image11">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="stock">gtk-add</property>
++ </widget>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <widget class="GtkLabel" id="label6">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="label" translatable="yes">&lt;b&gt;From URL&lt;/b&gt;</property>
++ <property name="use_markup">True</property>
++ </widget>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <widget class="GtkHSeparator" id="hseparator3">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ </widget>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ <child>
++ <widget class="GtkHBox" id="hbox13">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="spacing">5</property>
++ <child>
++ <widget class="GtkLabel" id="label21">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="label" translatable="yes">URL:</property>
++ </widget>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <widget class="GtkEntry" id="entry_url">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="has_focus">True</property>
++ <property name="is_focus">True</property>
++ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
++ <property name="activates_default">True</property>
++ <property name="truncate_multiline">True</property>
++ <property name="primary_icon_activatable">False</property>
++ <property name="secondary_icon_activatable">False</property>
++ <property name="primary_icon_sensitive">True</property>
++ <property name="secondary_icon_sensitive">True</property>
++ </widget>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
+ </widget>
+ </child>
+ </widget>

Generated by cgit