diff --git a/glade/delugegtk.glade b/glade/delugegtk.glade
index 87dc8571b..dc9780e49 100644
--- a/glade/delugegtk.glade
+++ b/glade/delugegtk.glade
@@ -13,168 +13,753 @@
4
3
-
+
True
- False
-
+
True
- Add Torrent
- Add
- True
- gtk-add
-
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+
+
+ True
+ False
+ GTK_POLICY_AUTOMATIC
+ GTK_POLICY_AUTOMATIC
+
+
+ True
+ True
+ True
+ True
+ False
+
+
+
+
- False
+ False
+ False
-
+
True
- False
- Remove Torrent
- Remove
- True
- gtk-remove
-
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+
+
+ True
+ False
+ True
+
+
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ GTK_POLICY_AUTOMATIC
+ GTK_POLICY_NEVER
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ GTK_RESIZE_QUEUE
+
+
+ True
+ 1
+ 2
+ 10
+
+
+ True
+ 0
+
+
+ True
+ 10
+ 10
+ 15
+ 15
+
+
+ True
+ 5
+
+
+ True
+ 0.10000000149
+
+
+ False
+ False
+
+
+
+
+ True
+ 4
+ 4
+ 5
+
+
+ True
+ 0
+
+
+ 1
+ 2
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 1
+ 2
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 1
+ 2
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 2
+ 3
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 2
+ 3
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 3
+ 4
+
+
+
+
+ True
+ 0
+
+
+ 3
+ 4
+ 3
+ 4
+
+
+
+
+ True
+ 5
+
+
+ True
+ 0
+ <b>Downloaded:</b>
+ True
+
+
+
+
+
+
+ True
+ 5
+
+
+ True
+ 0
+ <b>Uploaded:</b>
+ True
+
+
+
+
+ 1
+ 2
+
+
+
+
+ True
+ 5
+
+
+ True
+ 0
+ <b>Seeders:</b>
+ True
+
+
+
+
+ 2
+ 3
+
+
+
+
+ True
+ 5
+
+
+ True
+ 0
+ <b>Share Ratio:</b>
+ True
+
+
+
+
+ 3
+ 4
+
+
+
+
+ True
+ 15
+ 5
+
+
+ True
+ 0
+ <b>Speed:</b>
+ True
+
+
+
+
+ 2
+ 3
+
+
+
+
+ True
+ 15
+ 5
+
+
+ True
+ 0
+ <b>Speed:</b>
+ True
+
+
+
+
+ 2
+ 3
+ 1
+ 2
+
+
+
+
+ True
+ 15
+ 5
+
+
+ True
+ 0
+ <b>Peers:</b>
+ True
+
+
+
+
+ 2
+ 3
+ 2
+ 3
+
+
+
+
+ True
+ 15
+ 5
+
+
+ True
+ 0
+ <b>ETA:</b>
+ True
+
+
+
+
+ 2
+ 3
+ 3
+ 4
+
+
+
+
+ False
+ 1
+
+
+
+
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ <b>Statistics</b>
+ True
+
+
+ label_item
+
+
+
+
+
+ GTK_FILL
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 0
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 10
+ 10
+ 15
+ 15
+
+
+ True
+ 7
+ 2
+ 2
+
+
+
+
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 6
+ 7
+
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 5
+ 6
+
+
+
+
+
+ True
+ 0
+ True
+ PANGO_WRAP_WORD_CHAR
+
+
+ 1
+ 2
+ 4
+ 5
+
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 2
+ 3
+
+
+
+
+
+ True
+ 0
+
+
+ 1
+ 2
+ 1
+ 2
+
+
+
+
+
+ True
+ 0
+ True
+ PANGO_WRAP_WORD_CHAR
+
+
+ 1
+ 2
+
+
+
+
+
+ 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
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 5
+
+
+ True
+ 0
+ 1
+ <b>Total Size:</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
+ 0
+ 1
+ <b>Pieces:</b>
+ True
+
+
+
+
+ 2
+ 3
+ GTK_FILL
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 5
+
+
+ True
+ 0
+ 1
+ <b>Availability:</b>
+ True
+
+
+
+
+ 3
+ 4
+ GTK_FILL
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 5
+
+
+ True
+ 0
+ 1
+ <b>Tracker:</b>
+ True
+
+
+
+
+ 4
+ 5
+ GTK_FILL
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 5
+
+
+ True
+ 0
+ 1
+ <b>Tracker Status:</b>
+ True
+
+
+
+
+ 5
+ 6
+ GTK_FILL
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 5
+
+
+ True
+ 0
+ 1
+ <b>Next Announce:</b>
+ True
+
+
+
+
+ 6
+ 7
+ GTK_FILL
+
+
+
+
+ True
+ 0
+ True
+ PANGO_WRAP_WORD_CHAR
+
+
+ 1
+ 2
+ 3
+ 4
+
+
+
+
+
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ <b>Torrent Info</b>
+ True
+
+
+ label_item
+
+
+
+
+ 1
+ 2
+ GTK_FILL
+
+
+
+
+
+
+
+
+ False
+
+
+
+
+ True
+ Details
+
+
+ tab
+ False
+ False
+
+
+
+
+ True
+ False
+ GTK_POLICY_AUTOMATIC
+ GTK_POLICY_AUTOMATIC
+
+
+ True
+
+
+
+
+ 1
+ False
+
+
+
+
+ True
+ Peers
+
+
+ tab
+ 1
+ False
+ False
+
+
+
+
+ True
+ False
+ GTK_POLICY_AUTOMATIC
+ GTK_POLICY_AUTOMATIC
+
+
+ True
+ True
+
+
+
+
+ 2
+ False
+
+
+
+
+ True
+ Files
+
+
+ tab
+ 2
+ False
+ False
+
+
+
+
- False
-
-
-
-
- True
- Clear Finished Torrents
- Clear
- True
- gtk-clear
-
-
-
- False
-
-
-
-
- True
-
-
- False
- False
-
-
-
-
- True
- False
- Start or Pause torrent
- Start
- True
- gtk-media-play
-
-
-
- False
-
-
-
-
- True
- False
- Queue Torrent Up
- Up
- True
- gtk-go-up
-
-
-
- False
-
-
-
-
- True
- False
- Queue Torrent Down
- Down
- True
- gtk-go-down
-
-
-
- False
-
-
-
-
- True
-
-
- False
- False
-
-
-
-
- True
- Change Deluge preferences
- Preferences
- True
- gtk-preferences
-
-
-
- False
-
-
-
-
- True
- Open the plugins dialog
- Plugins
- True
- gtk-disconnect
-
-
-
- False
+ False
+ False
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- False
-
-
- 1
- 2
- 1
- 2
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- False
-
-
- 2
3
- 1
- 2
-
- GTK_FILL
+ 2
+ 3
+
+
+
+
+ True
+
+
+ 3
+ 3
+ 4
+
@@ -451,784 +1036,168 @@
-
+
True
+ False
+ 2
3
- 3
- 4
-
+ 1
+ 2
+
+ GTK_FILL
-
+
True
+ False
+
+
+ 1
+ 2
+ 1
+ 2
+ GTK_FILL
+ GTK_FILL
+
+
+
+
+ True
+ False
-
+
True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GTK_POLICY_AUTOMATIC
- GTK_POLICY_AUTOMATIC
-
-
- True
- True
- True
- True
- False
-
-
-
-
+ Add Torrent
+ Add
+ True
+ gtk-add
+
- False
- False
+ False
-
+
True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- True
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- GTK_POLICY_AUTOMATIC
- GTK_POLICY_NEVER
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- GTK_RESIZE_QUEUE
-
-
- True
- 1
- 2
- 10
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 10
- 10
- 15
- 15
-
-
- True
- 8
- 2
- 2
-
-
- True
- 0
- True
- PANGO_WRAP_WORD_CHAR
-
-
- 1
- 2
- 4
- 5
-
-
-
-
-
- True
- 0
- True
- PANGO_WRAP_WORD_CHAR
-
-
- 1
- 2
- 3
- 4
-
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
-
-
- True
- 0
- 1
- <b>Next Announce:</b>
- True
-
-
-
-
- 7
- 8
- GTK_FILL
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
-
-
- True
- 0
- 1
- <b>Tracker Status:</b>
- True
-
-
-
-
- 6
- 7
- GTK_FILL
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
-
-
- True
- 0
- 1
- <b>Tracker:</b>
- True
-
-
-
-
- 5
- 6
- GTK_FILL
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
-
-
- True
- 0
- 1
- <b>Availability:</b>
- True
-
-
-
-
- 4
- 5
- 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>Piece Size:</b>
- True
-
-
-
-
- 3
- 4
- GTK_FILL
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
-
-
- True
- 0
- 1
- <b>Pieces:</b>
- True
-
-
-
-
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
-
-
- True
- 0
- 1
- <b>Total Size:</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
- 0
- 0
- 1
- <b>Name:</b>
- True
-
-
-
-
- GTK_FILL
-
-
-
-
- True
- 0
- True
- PANGO_WRAP_WORD_CHAR
-
-
- 1
- 2
-
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 1
- 2
-
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 2
- 3
-
-
-
-
-
- True
- 0
- True
- PANGO_WRAP_WORD_CHAR
-
-
- 1
- 2
- 5
- 6
-
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 6
- 7
-
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 7
- 8
-
-
-
-
-
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Torrent Info</b>
- True
-
-
- label_item
-
-
-
-
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- 0
-
-
- True
- 10
- 10
- 15
- 15
-
-
- True
- 5
-
-
- True
- 0.10000000149
-
-
- False
- False
-
-
-
-
- True
- 4
- 4
- 5
-
-
- True
- 15
- 5
-
-
- True
- 0
- <b>ETA:</b>
- True
-
-
-
-
- 2
- 3
- 3
- 4
-
-
-
-
- True
- 15
- 5
-
-
- True
- 0
- <b>Peers:</b>
- True
-
-
-
-
- 2
- 3
- 2
- 3
-
-
-
-
- True
- 15
- 5
-
-
- True
- 0
- <b>Speed:</b>
- True
-
-
-
-
- 2
- 3
- 1
- 2
-
-
-
-
- True
- 15
- 5
-
-
- True
- 0
- <b>Speed:</b>
- True
-
-
-
-
- 2
- 3
-
-
-
-
- True
- 5
-
-
- True
- 0
- <b>Share Ratio:</b>
- True
-
-
-
-
- 3
- 4
-
-
-
-
- True
- 5
-
-
- True
- 0
- <b>Seeders:</b>
- True
-
-
-
-
- 2
- 3
-
-
-
-
- True
- 5
-
-
- True
- 0
- <b>Uploaded:</b>
- True
-
-
-
-
- 1
- 2
-
-
-
-
- True
- 5
-
-
- True
- 0
- <b>Downloaded:</b>
- True
-
-
-
-
-
-
- True
- 0
-
-
- 3
- 4
- 3
- 4
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- True
- 0
-
-
- 3
- 4
- 2
- 3
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- 0
-
-
- 3
- 4
- 1
- 2
-
-
-
-
- True
- 0
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- 0
-
-
- 3
- 4
-
-
-
-
- True
- 0
-
-
- 1
- 2
-
-
-
-
- False
- 1
-
-
-
-
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Statistics</b>
- True
-
-
- label_item
-
-
-
-
-
- GTK_FILL
-
-
-
-
-
-
-
-
- False
-
-
-
-
- True
- Details
-
-
- tab
- False
- False
-
-
-
-
- True
- False
- GTK_POLICY_AUTOMATIC
- GTK_POLICY_AUTOMATIC
-
-
- True
-
-
-
-
- 1
- False
-
-
-
-
- True
- Peers
-
-
- tab
- 1
- False
- False
-
-
-
-
- True
- False
- GTK_POLICY_AUTOMATIC
- GTK_POLICY_AUTOMATIC
-
-
- True
- True
-
-
-
-
- 2
- False
-
-
-
-
- True
- Files
-
-
- tab
- 2
- False
- False
-
-
-
-
+ False
+ Remove Torrent
+ Remove
+ True
+ gtk-remove
+
- False
- False
+ False
+
+
+
+
+ True
+ Clear Finished Torrents
+ Clear
+ True
+ gtk-clear
+
+
+
+ False
+
+
+
+
+ True
+
+
+ False
+ False
+
+
+
+
+ True
+ False
+ Start or Pause torrent
+ Start
+ True
+ gtk-media-play
+
+
+
+ False
+
+
+
+
+ True
+ False
+ Queue Torrent Up
+ Up
+ True
+ gtk-go-up
+
+
+
+ False
+
+
+
+
+ True
+ False
+ Queue Torrent Down
+ Down
+ True
+ gtk-go-down
+
+
+
+ False
+
+
+
+
+ True
+
+
+ False
+ False
+
+
+
+
+ True
+ Change Deluge preferences
+ Preferences
+ True
+ gtk-preferences
+
+
+
+ False
+
+
+
+
+ True
+ Open the plugins dialog
+ Plugins
+ True
+ gtk-disconnect
+
+
+
+ False
- 3
- 2
- 3
+ 1
+ 2
+ GTK_FILL
diff --git a/src/deluge_core.cpp b/src/deluge_core.cpp
index 3d1f9a2c1..aa0d0ef65 100644
--- a/src/deluge_core.cpp
+++ b/src/deluge_core.cpp
@@ -742,7 +742,7 @@ static PyObject *torrent_get_torrent_state(PyObject *self, PyObject *args)
"state", s.state,
"num_peers", connected_peers,
"num_seeds", connected_seeds,
- "distributed_copies", s.distributed_copies,
+ "distributed_copies", s.distributed_copies == -1.0 ? 0.0 : s.distributed_copies,
"download_rate", s.download_rate,
"upload_rate", s.upload_rate,
"total_download", s.total_download,
diff --git a/src/interface.py b/src/interface.py
index feef9335b..c3ace474d 100644
--- a/src/interface.py
+++ b/src/interface.py
@@ -613,7 +613,6 @@ class DelugeGTK:
self.text_summary_name = self.wtree.get_widget("summary_name")
self.text_summary_total_size = self.wtree.get_widget("summary_total_size")
self.text_summary_pieces = self.wtree.get_widget("summary_pieces")
- self.text_summary_piece_size = self.wtree.get_widget("summary_piece_size")
self.text_summary_availability = self.wtree.get_widget("summary_availability")
self.text_summary_total_downloaded = self.wtree.get_widget("summary_total_downloaded")
self.text_summary_total_uploaded = self.wtree.get_widget("summary_total_uploaded")
@@ -998,9 +997,9 @@ class DelugeGTK:
state = self.manager.get_torrent_state(unique_id)
self.wtree.get_widget("summary_name").set_text(state['name'])
self.text_summary_total_size.set_text(common.fsize(state["total_wanted"]))
- self.text_summary_pieces.set_text(str(state["num_pieces"]))
- self.text_summary_piece_size.set_text(common.fsize(state["piece_length"]))
- self.text_summary_availability.set_text(str(round(state["distributed_copies"], 2)))
+ self.text_summary_pieces.set_text('%s x %s' % \
+ (state["num_pieces"], common.fsize(state["piece_length"])))
+ self.text_summary_availability.set_text('%.3f' % state["distributed_copies"])
self.text_summary_total_downloaded.set_text(common.fsize(state["total_done"]) \
+ " (" + common.fsize(state["total_download"]) + ")")
self.text_summary_total_uploaded.set_text(common.fsize(self.manager.unique_IDs\
@@ -1230,7 +1229,6 @@ class DelugeGTK:
self.wtree.get_widget("summary_name").set_text("")
self.text_summary_total_size.set_text("")
self.text_summary_pieces.set_text("")
- self.text_summary_piece_size.set_text("")
self.text_summary_availability.set_text("")
self.text_summary_total_downloaded.set_text("")
self.text_summary_total_uploaded.set_text("")