diff --git a/TODO b/TODO
index 6ad82faf1..556efedba 100644
--- a/TODO
+++ b/TODO
@@ -1,11 +1,10 @@
For 0.6 release:
-* Address issue where torrents will redownload if the storage is moved outside
- of deluge.
-* Update checking
* Translations
* Add progress bars for downloading and importing lists instead of hanging (blocklist)
After 0.6 release:
+* Address issue where torrents will redownload if the storage is moved outside
+ of deluge.
* Implement add by hash
* Figure out easy way for user-made plugins to add i18n support.
* Restart daemon function
diff --git a/deluge/core/core.py b/deluge/core/core.py
index d4902e82b..5202ba5f4 100644
--- a/deluge/core/core.py
+++ b/deluge/core/core.py
@@ -107,6 +107,7 @@ DEFAULT_PREFS = {
"auto_managed": True,
"move_completed": False,
"move_completed_path": os.path.join(deluge.common.get_default_download_dir(), "completed"),
+ "new_release_check": False,
}
class Core(
@@ -261,6 +262,10 @@ class Core(
self._on_set_dont_count_slow_torrents)
self.config.register_set_function("send_info",
self._on_send_info)
+ self.new_release = None
+ self.new_release_timer = None
+ self.config.register_set_function("new_release_check",
+ self._on_new_release_check)
self.config.register_change_callback(self._on_config_value_change)
# Start the AlertManager
@@ -343,6 +348,8 @@ class Core(
"""Registers a client with the signal manager so that signals are
sent to it."""
self.signals.register_client(self.client_address, port)
+ if self.config["new_release_check"]:
+ self.check_new_release()
def export_deregister_client(self):
"""De-registers a client with the signal manager."""
@@ -865,3 +872,36 @@ class Core(
self.config["info_sent"] = now
if value:
Send_Info_Thread(self.config).start()
+
+ def get_new_release(self):
+ log.debug("get_new_release")
+ import urllib
+ try:
+ self.new_release = urllib.urlopen(
+ "http://download.deluge-torrent.org/version").read().strip()
+ except Exception, e:
+ log.debug("Unable to get release info from website: %s", e)
+ return
+ self.check_new_release()
+
+ def check_new_release(self):
+ self.new_release = "0.7.0.0"
+ if self.new_release:
+ log.debug("new_release: %s", self.new_release)
+ if self.new_release > deluge.common.get_version():
+ self.signals.emit("new_version_available", self.new_release)
+ return self.new_release
+ return False
+
+ def _on_new_release_check(self, key, value):
+ if value:
+ log.debug("Checking for new release..")
+ threading.Thread(target=self.get_new_release).start()
+ if self.new_release_timer:
+ gobject.source_remove(self.new_release_timer)
+ # Set a timer to check for a new release every 3 days
+ self.new_release_timer = gobject.timeout_add(
+ 72 * 60 * 60 * 1000, self._on_new_release_check, "new_release_check", True)
+ else:
+ if self.new_release_timer:
+ gobject.source.remove(self.new_release_timer)
diff --git a/deluge/ui/gtkui/glade/main_window.glade b/deluge/ui/gtkui/glade/main_window.glade
index 4fadd7ac4..e00555ebb 100644
--- a/deluge/ui/gtkui/glade/main_window.glade
+++ b/deluge/ui/gtkui/glade/main_window.glade
@@ -666,191 +666,276 @@
-
+
True
- 0
-
-
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- 0
-
-
- 3
- 4
- GTK_FILL
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- 0
-
-
- 3
- 4
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- 5
-
-
- True
- 0
- <b>Downloaded:</b>
- True
-
-
-
-
- GTK_FILL
-
-
-
-
- True
- 5
-
-
- True
- 0
- <b>Uploaded:</b>
- True
-
-
-
-
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- 5
-
-
- True
- 0
- <b>Share Ratio:</b>
- True
-
-
-
-
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- 5
-
-
- True
- 0
- <b>Next Announce:</b>
- True
-
-
+ 5
+ 6
3
4
GTK_FILL
-
+
True
- 15
- 5
-
-
- True
- 0
- <b>Speed:</b>
- True
-
-
+ 0
+ <b>Auto Managed:</b>
+ True
- 2
- 3
+ 4
+ 5
+ 3
+ 4
GTK_FILL
-
+
True
- 15
- 5
-
-
- True
- 0
- <b>Speed:</b>
- True
-
-
- 2
- 3
+ 7
+ 8
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+ True
+
+
+ 7
+ 8
1
2
GTK_FILL
-
+
True
- 15
- 5
-
-
- True
- 0
- <b>ETA:</b>
- True
-
-
+ 0
+ <b>Seed Rank:</b>
+ True
- 2
- 3
+ 6
+ 7
2
3
GTK_FILL
+
+
+ True
+ 0
+ <b>Seeding Time:</b>
+ True
+
+
+ 6
+ 7
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+
+
+ 7
+ 8
+ GTK_FILL
+
+
+
+
+ True
+ 0
+ <b>Active Time:</b>
+ True
+
+
+ 6
+ 7
+ GTK_FILL
+
+
+
+
+ True
+ 0
+ True
+ True
+
+
+ 1
+ 2
+ 3
+ 4
+ GTK_FILL
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 3
+ 4
+ GTK_FILL
+
+
+
+
+ True
+ 0
+ PANGO_WRAP_CHAR
+ True
+
+
+ 1
+ 6
+ 4
+ 5
+ GTK_FILL
+
+
+
+
+ True
+ 0
+ <b>Tracker Status:</b>
+ True
+
+
+ 4
+ 5
+ GTK_FILL
+
+
+
+
+
+ True
+ 0
+ True
+ PANGO_WRAP_WORD_CHAR
+
+
+ 5
+ 6
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+
+ True
+ 0
+ 1
+ <b>Availability:</b>
+ True
+
+
+ 4
+ 5
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+ True
+ 0
+
+
+ 5
+ 6
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+ 0
+ <b>Peers:</b>
+ True
+
+
+ 4
+ 5
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+ 0
+
+
+ 5
+ 6
+ GTK_FILL
+
+
+
+
+ True
+ 0
+ <b>Seeders:</b>
+ True
+
+
+ 4
+ 5
+ GTK_FILL
+
+
True
@@ -874,273 +959,188 @@
-
+
True
- 0
- <b>Seeders:</b>
- True
+ 15
+ 5
+
+
+ True
+ 0
+ <b>ETA:</b>
+ True
+
+
- 4
- 5
- GTK_FILL
-
-
-
-
- True
- 0
-
-
- 5
- 6
- GTK_FILL
-
-
-
-
- True
- 0
- <b>Peers:</b>
- True
-
-
- 4
- 5
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- 0
-
-
- 5
- 6
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- 0
-
-
- 1
- 2
+ 2
+ 3
2
3
GTK_FILL
-
+
+ True
+ 15
+ 5
+
+
+ True
+ 0
+ <b>Speed:</b>
+ True
+
+
+
+
+ 2
+ 3
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+ 15
+ 5
+
+
+ True
+ 0
+ <b>Speed:</b>
+ True
+
+
+
+
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+ True
+ 5
+
+
+ True
+ 0
+ <b>Next Announce:</b>
+ True
+
+
+
+
+ 3
+ 4
+ GTK_FILL
+
+
+
+
+ True
+ 5
+
+
+ True
+ 0
+ <b>Share Ratio:</b>
+ True
+
+
+
+
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+ True
+ 5
+
+
+ True
+ 0
+ <b>Uploaded:</b>
+ True
+
+
+
+
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+ 5
+
+
+ True
+ 0
+ <b>Downloaded:</b>
+ True
+
+
+
+
+ GTK_FILL
+
+
+
+
True
0
3
4
- 2
- 3
+ 1
+ 2
GTK_FILL
-
+
True
0
- 1
- <b>Availability:</b>
- True
-
-
- 4
- 5
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- 0
- True
- PANGO_WRAP_WORD_CHAR
-
-
- 5
- 6
- 2
- 3
- GTK_FILL
-
-
-
-
-
- True
- 0
- <b>Tracker Status:</b>
- True
-
-
- 4
- 5
- GTK_FILL
-
-
-
-
-
- True
- 0
- PANGO_WRAP_CHAR
- True
1
- 6
- 4
- 5
+ 2
+ 1
+ 2
GTK_FILL
-
+
True
0
3
4
- 3
- 4
GTK_FILL
-
+
True
0
- True
- True
1
2
- 3
- 4
- GTK_FILL
-
-
-
-
- True
- 0
- <b>Active Time:</b>
- True
-
-
- 6
- 7
- GTK_FILL
-
-
-
-
- True
-
-
- 7
- 8
- GTK_FILL
-
-
-
-
- True
- 0
- <b>Seeding Time:</b>
- True
-
-
- 6
- 7
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- 0
- <b>Seed Rank:</b>
- True
-
-
- 6
- 7
- 2
- 3
- GTK_FILL
-
-
-
-
- True
-
-
- 7
- 8
- 1
- 2
- GTK_FILL
-
-
-
-
- True
-
-
- 7
- 8
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- 0
- <b>Auto Managed:</b>
- True
-
-
- 4
- 5
- 3
- 4
- GTK_FILL
-
-
-
-
- True
-
-
- 5
- 6
- 3
- 4
GTK_FILL
@@ -1227,7 +1227,7 @@
-
+
True
0
True
@@ -1235,42 +1235,28 @@
1
2
- 3
- 4
+ 4
+ 5
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
-
-
- 1
- 4
- 5
- 6
-
-
-
-
-
+
True
0
1
- <b>Status:</b>
+ <b># of files:</b>
True
- 5
- 6
+ 4
+ 5
GTK_FILL
-
+
True
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
0
@@ -1281,65 +1267,52 @@
1
4
- 2
- 3
+ 1
+ 2
-
+
True
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- <b>Path:</b>
- True
-
-
+ 0
+ <b>Hash:</b>
+ True
- 2
- 3
+ 1
+ 2
GTK_FILL
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
-
-
- True
- 0
- 0
- 1
- <b>Name:</b>
- True
-
-
-
-
- GTK_FILL
-
-
-
-
-
+
True
0
- True
- PANGO_WRAP_CHAR
True
1
4
+ 6
+ 7
+
+
+
+
+
+ True
+ 0
+ 1
+ <b>Tracker:</b>
+ True
+
+
+ 6
+ 7
+ GTK_FILL
@@ -1366,51 +1339,64 @@
-
- True
- 0
- 1
- <b>Tracker:</b>
- True
-
-
- 6
- 7
- GTK_FILL
-
-
-
-
-
+
True
0
+ True
+ PANGO_WRAP_CHAR
True
1
4
- 6
- 7
-
+
True
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- <b>Hash:</b>
- True
+ 5
+
+
+ True
+ 0
+ 0
+ 1
+ <b>Name:</b>
+ True
+
+
- 1
- 2
GTK_FILL
-
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 5
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 0
+ <b>Path:</b>
+ True
+
+
+
+
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+
True
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
0
@@ -1421,28 +1407,42 @@
1
4
- 1
- 2
+ 2
+ 3
-
+
True
0
1
- <b># of files:</b>
+ <b>Status:</b>
True
- 4
- 5
+ 5
+ 6
GTK_FILL
-
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 0
+
+
+ 1
+ 4
+ 5
+ 6
+
+
+
+
+
True
0
True
@@ -1450,8 +1450,8 @@
1
2
- 4
- 5
+ 3
+ 4
@@ -1634,7 +1634,7 @@
-
+
True
True
6
@@ -1644,100 +1644,8 @@
1
2
- 3
- 4
-
-
-
-
-
-
- True
- 0
- Max Upload Slots:
-
-
- 3
- 4
- GTK_FILL
-
-
-
-
-
- True
- KiB/s
-
-
- 2
- 3
- 1
- 2
-
-
-
-
-
-
- True
- KiB/s
-
-
- 2
- 3
-
-
-
-
-
-
- True
- 0
- Max Download Speed:
-
-
- GTK_FILL
-
-
-
-
-
- True
- 0
- Max Upload Speed:
-
-
- 1
- 2
- GTK_FILL
-
-
-
-
-
- True
- 0
- Max Connections:
-
-
2
3
- GTK_FILL
-
-
-
-
-
- True
- True
- 6
- 1
- -1 -1 999999 1 10 10
- 1
-
-
- 1
- 2
@@ -1761,7 +1669,99 @@
-
+
+ True
+ True
+ 6
+ 1
+ -1 -1 999999 1 10 10
+ 1
+
+
+ 1
+ 2
+
+
+
+
+
+
+ True
+ 0
+ Max Connections:
+
+
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+
+ True
+ 0
+ Max Upload Speed:
+
+
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+
+ True
+ 0
+ Max Download Speed:
+
+
+ GTK_FILL
+
+
+
+
+
+ True
+ KiB/s
+
+
+ 2
+ 3
+
+
+
+
+
+
+ True
+ KiB/s
+
+
+ 2
+ 3
+ 1
+ 2
+
+
+
+
+
+
+ True
+ 0
+ Max Upload Slots:
+
+
+ 3
+ 4
+ GTK_FILL
+
+
+
+
+
True
True
6
@@ -1771,8 +1771,8 @@
1
2
- 2
- 3
+ 3
+ 4
@@ -2285,4 +2285,194 @@
+
+ 5
+ New Release
+ GTK_WIN_POS_CENTER_ON_PARENT
+ deluge
+ GDK_WINDOW_TYPE_HINT_DIALOG
+ False
+
+
+ True
+ 2
+
+
+ True
+ 10
+ 5
+
+
+ True
+ 5
+
+
+ True
+ deluge
+
+
+ False
+ False
+
+
+
+
+ True
+ <b><big>New Release Available!</big></b>
+ True
+
+
+ False
+ False
+ 1
+
+
+
+
+ False
+ False
+
+
+
+
+ True
+
+
+ False
+ 1
+
+
+
+
+ True
+ 5
+
+
+ True
+ 2
+ 2
+ 10
+ 2
+
+
+ True
+
+
+ 1
+ 2
+ 1
+ 2
+
+
+
+
+
+ True
+ 0
+ <i>Available Version:</i>
+ True
+
+
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+
+
+ 1
+ 2
+
+
+
+
+
+ True
+ 0
+ <i>Current Version:</i>
+ True
+
+
+ GTK_FILL
+
+
+
+
+
+
+ 2
+
+
+
+
+ True
+ 5
+
+
+ True
+ True
+ Do not show this dialog in the future
+ 0
+ True
+
+
+
+
+ 3
+
+
+
+
+ False
+ False
+ 1
+
+
+
+
+ True
+ GTK_BUTTONBOX_END
+
+
+ True
+ True
+ True
+ gtk-close
+ True
+ 0
+
+
+ False
+ False
+
+
+
+
+ True
+ True
+ True
+ _Goto Website
+ True
+ 0
+
+
+
+ False
+ False
+ 1
+
+
+
+
+ False
+ False
+ GTK_PACK_END
+
+
+
+
+
diff --git a/deluge/ui/gtkui/glade/preferences_dialog.glade b/deluge/ui/gtkui/glade/preferences_dialog.glade
index e59dfd4f0..01c7cf4be 100644
--- a/deluge/ui/gtkui/glade/preferences_dialog.glade
+++ b/deluge/ui/gtkui/glade/preferences_dialog.glade
@@ -1,6 +1,6 @@
-
+
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
@@ -1162,71 +1162,40 @@ Disabled
2
15
-
+
True
- The maximum upload speed for all torrents. Set -1 for unlimited.
- 0
- Maximum Upload Speed (KiB/s):
-
-
- 3
- 4
- GTK_FILL
-
-
-
-
- True
- The maximum number of connections allowed. Set -1 for unlimited.
- 0
- Maximum Connections:
-
-
- GTK_FILL
-
-
-
-
- True
- The maximum upload speed for all torrents. Set -1 for unlimited.
- 0
- Maximum Upload Slots:
+ True
+ The maximum upload slots for all torrents. Set -1 for unlimited.
+ 1
+ -1 -1 9000 1 10 10
+ 1
+ True
+ True
+ 1
+ 2
1
2
GTK_FILL
-
+
True
True
- The maximum number of connections allowed. Set -1 for unlimited.
- 4
+ The maximum upload speed for all torrents. Set -1 for unlimited.
1
-1 -1 9000 1 10 10
1
- True
+ 1
True
- GTK_UPDATE_IF_VALID
1
2
- GTK_FILL
-
-
-
-
- True
- The maximum download speed for all torrents. Set -1 for unlimited.
- 0
- Maximum Download Speed (KiB/s):
-
-
- 2
- 3
+ 3
+ 4
GTK_FILL
@@ -1251,43 +1220,74 @@ Disabled
-
+
True
- True
- The maximum upload speed for all torrents. Set -1 for unlimited.
- 1
- -1 -1 9000 1 10 10
- 1
- 1
- True
+ The maximum download speed for all torrents. Set -1 for unlimited.
+ 0
+ Maximum Download Speed (KiB/s):
- 1
- 2
- 3
- 4
+ 2
+ 3
GTK_FILL
-
+
True
True
- The maximum upload slots for all torrents. Set -1 for unlimited.
+ The maximum number of connections allowed. Set -1 for unlimited.
+ 4
1
-1 -1 9000 1 10 10
1
True
True
+ GTK_UPDATE_IF_VALID
1
2
+ GTK_FILL
+
+
+
+
+ True
+ The maximum upload speed for all torrents. Set -1 for unlimited.
+ 0
+ Maximum Upload Slots:
+
+
1
2
GTK_FILL
+
+
+ True
+ The maximum number of connections allowed. Set -1 for unlimited.
+ 0
+ Maximum Connections:
+
+
+ GTK_FILL
+
+
+
+
+ True
+ The maximum upload speed for all torrents. Set -1 for unlimited.
+ 0
+ Maximum Upload Speed (KiB/s):
+
+
+ 3
+ 4
+ GTK_FILL
+
+
@@ -1331,18 +1331,85 @@ Disabled
2
15
-
+
True
True
- The maximum number of connections per torrent. Set -1 for unlimited.
+ The maximum upload slots per torrent. Set -1 for unlimited.
1
-1 -1 9000 1 10 10
- 1
+ 1
+ True
True
1
2
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+ True
+ The maximum number of connections per torrent. Set -1 for unlimited.
+ 1
+ -1 -1 9000 1 10 10
+ True
+ True
+
+
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 0
+ Maximum Connections:
+
+
+ GTK_FILL
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 0
+ Maximum Upload Slots:
+
+
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 0
+ Maximum Download Speed (KiB/s):
+
+
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 0
+ Maximum Upload Speed (KiB/s):
+
+
3
4
GTK_FILL
@@ -1367,87 +1434,20 @@ Disabled
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- Maximum Upload Speed (KiB/s):
-
-
- 3
- 4
- GTK_FILL
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- Maximum Download Speed (KiB/s):
-
-
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- Maximum Upload Slots:
-
-
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- Maximum Connections:
-
-
- GTK_FILL
-
-
-
-
+
True
True
The maximum number of connections per torrent. Set -1 for unlimited.
1
-1 -1 9000 1 10 10
- True
+ 1
True
1
2
- GTK_FILL
-
-
-
-
- True
- True
- The maximum upload slots per torrent. Set -1 for unlimited.
- 1
- -1 -1 9000 1 10 10
- 1
- True
- True
-
-
- 1
- 2
- 1
- 2
+ 3
+ 4
GTK_FILL
@@ -1801,7 +1801,7 @@ Disabled
True
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
+
True
True
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
@@ -2087,6 +2087,49 @@ Disabled
3
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 0
+ GTK_SHADOW_NONE
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 5
+ 10
+
+
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ Periodically check the website for new releases
+ 0
+ True
+
+
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ <b>Other</b>
+ True
+
+
+ label_item
+
+
+
+
+ False
+ False
+ 5
+ 4
+
+
@@ -2218,15 +2261,59 @@ Disabled
2
10
-
+
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 1
+ 0 -1 9999 1 10 10
+ True
+ True
+
+
+ 1
+ 2
+
+
+
+
+
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 1
+ 0 -1 9999 1 10 10
+ True
+ True
+
+
+ 1
+ 2
+ 2
+ 3
+
+
+
+
+
+ True
+ 0
+ Total active seeding:
+
+
+ 2
+ 3
+ GTK_FILL
+
+
+
+
True
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
0
- Total active downloading:
+ Total active:
- 1
- 2
GTK_FILL
@@ -2249,62 +2336,18 @@ Disabled
-
+
True
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
0
- Total active:
+ Total active downloading:
+ 1
+ 2
GTK_FILL
-
-
- True
- 0
- Total active seeding:
-
-
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 1
- 0 -1 9999 1 10 10
- True
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 1
- 0 -1 9999 1 10 10
- True
- True
-
-
- 1
- 2
-
-
-
@@ -2365,18 +2408,51 @@ Disabled
2
10
-
+
+ True
+ 0
+ Share Ratio Limit:
+
+
+ GTK_FILL
+
+
+
+
+ True
+ 0
+ Seed Time Ratio:
+
+
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+ True
+ 0
+ Seed Time (m):
+
+
+ 2
+ 3
+ GTK_FILL
+
+
+
+
True
True
6
1
- 6 -1 100 1 10 10
+ 1.5 -1 100 0.10000000000000001 10 10
+ 2
1
2
- 2
- 3
@@ -2398,52 +2474,19 @@ Disabled
-
+
True
True
6
1
- 1.5 -1 100 0.10000000000000001 10 10
- 2
+ 6 -1 100 1 10 10
1
2
-
-
-
-
-
- True
- 0
- Seed Time (m):
-
-
2
3
- GTK_FILL
-
-
-
-
- True
- 0
- Seed Time Ratio:
-
-
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- 0
- Share Ratio Limit:
-
-
- GTK_FILL
+
diff --git a/deluge/ui/gtkui/gtkui.py b/deluge/ui/gtkui/gtkui.py
index 575ecfeef..dd808837d 100644
--- a/deluge/ui/gtkui/gtkui.py
+++ b/deluge/ui/gtkui/gtkui.py
@@ -97,7 +97,8 @@ DEFAULT_PREFS = {
"autoadd_enable": False,
"autoadd_location": "",
"choose_directory_dialog_path": deluge.common.get_default_download_dir(),
- "classic_mode": False
+ "classic_mode": False,
+ "show_new_releases": True
}
class GtkUI:
diff --git a/deluge/ui/gtkui/preferences.py b/deluge/ui/gtkui/preferences.py
index 4715dc77e..d55564270 100644
--- a/deluge/ui/gtkui/preferences.py
+++ b/deluge/ui/gtkui/preferences.py
@@ -217,6 +217,7 @@ class Preferences(component.Component):
"chk_natpmp": ("active", self.core_config["natpmp"]),
"chk_utpex": ("active", self.core_config["utpex"]),
"chk_lsd": ("active", self.core_config["lsd"]),
+ "chk_new_releases": ("active", self.core_config["new_release_check"]),
"chk_send_info": ("active", self.core_config["send_info"]),
"combo_encin": ("active", self.core_config["enc_in_policy"]),
"combo_encout": ("active", self.core_config["enc_out_policy"]),
@@ -338,6 +339,7 @@ class Preferences(component.Component):
"chk_utpex",
"chk_lsd",
"chk_send_info",
+ "chk_new_releases",
"combo_encin",
"combo_encout",
"combo_enclevel",
@@ -389,11 +391,11 @@ class Preferences(component.Component):
self.gtkui_config["lock_tray"])
self.glade.get_widget("chk_classic_mode").set_active(
self.gtkui_config["classic_mode"])
-
- ## Other tab ##
- self.glade.get_widget("chk_new_releases").set_active(
- self.gtkui_config["check_new_releases"])
+ ## Other tab ##
+ self.glade.get_widget("chk_show_new_releases").set_active(
+ self.gtkui_config["show_new_releases"])
+
## Plugins tab ##
all_plugins = self.all_plugins
enabled_plugins = self.enabled_plugins
@@ -525,9 +527,8 @@ class Preferences(component.Component):
self.glade.get_widget("chk_classic_mode").get_active()
## Other tab ##
- new_gtkui_config["check_new_releases"] = \
- self.glade.get_widget("chk_new_releases").get_active()
-
+ new_gtkui_config["show_new_releases"] = \
+ self.glade.get_widget("chk_show_new_releases").get_active()
new_core_config["send_info"] = \
self.glade.get_widget("chk_send_info").get_active()
@@ -536,7 +537,9 @@ class Preferences(component.Component):
self.glade.get_widget("spin_daemon_port").get_value_as_int()
new_core_config["allow_remote"] = \
self.glade.get_widget("chk_allow_remote_connections").get_active()
-
+ new_core_config["new_release_check"] = \
+ self.glade.get_widget("chk_new_releases").get_active()
+
## Queue tab ##
new_core_config["queue_new_to_top"] = \
self.glade.get_widget("chk_queue_new_top").get_active()
diff --git a/deluge/ui/gtkui/signals.py b/deluge/ui/gtkui/signals.py
index 517ea08a8..e6cf7c2f3 100644
--- a/deluge/ui/gtkui/signals.py
+++ b/deluge/ui/gtkui/signals.py
@@ -36,13 +36,15 @@ import gtk
import deluge.component as component
from deluge.ui.client import aclient as client
from deluge.ui.signalreceiver import SignalReceiver
+from deluge.configmanager import ConfigManager
from deluge.log import LOG as log
class Signals(component.Component):
def __init__(self):
component.Component.__init__(self, "Signals")
self.receiver = SignalReceiver()
-
+ self.config = ConfigManager("gtkui.conf")
+
def start(self):
if not client.is_localhost():
self.receiver.set_remote(True)
@@ -65,7 +67,9 @@ class Signals(component.Component):
self.torrent_queue_changed)
self.receiver.connect_to_signal("torrent_resume_at_stop_ratio",
self.torrent_resume_at_stop_ratio)
-
+ self.receiver.connect_to_signal("new_version_available",
+ self.new_version_available)
+
def stop(self):
try:
self.receiver.shutdown()
@@ -125,3 +129,10 @@ class Signals(component.Component):
log.debug("torrent_resume_at_stop_ratio")
component.get("StatusBar").display_warning(
text=_("Torrent is past stop ratio."))
+
+ def new_version_available(self, value):
+ log.debug("new_version_available: %s", value)
+ if self.config["show_new_releases"]:
+ from deluge.ui.gtkui.new_release_dialog import NewReleaseDialog
+ NewReleaseDialog().show(value)
+