summaryrefslogtreecommitdiff
path: root/src/torrent.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-07 18:55:01 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-07 18:55:01 +0000
commit429b32fba6f5ad14db31fe2690974b57df858999 (patch)
tree54970bd752b8dcf957d4a2db09be5678b79f9af4 /src/torrent.c
parentc3bd3ac55162a88b308a6f700aad88d26cbd5f29 (diff)
make connect button a menu button with other profiles, also add a connection serial used to discard requests issued before a disconnect which get their callback invoked after a new one is established. add an experimental "repeater" flag on exec commands (eg. %{name}[, ]).
Diffstat (limited to 'src/torrent.c')
-rw-r--r--src/torrent.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/torrent.c b/src/torrent.c
index 0455a89..33e7a41 100644
--- a/src/torrent.c
+++ b/src/torrent.c
@@ -66,6 +66,11 @@ const gchar *torrent_get_download_dir(JsonObject * t)
return json_object_get_string_member(t, FIELD_DOWNLOAD_DIR);
}
+gdouble torrent_get_metadata_percent_complete(JsonObject *t)
+{
+ return json_double_to_progress(json_object_get_member(t, FIELD_METADATAPERCENTCOMPLETE));
+}
+
const gchar *torrent_get_name(JsonObject * t)
{
return json_object_get_string_member(t, FIELD_NAME);
@@ -220,6 +225,10 @@ guint32 torrent_get_flags(JsonObject * t, gint64 rpcv, gint64 status, gint64 dow
case TR_STATUS_DOWNLOAD:
if (!(flags & TORRENT_FLAG_COMPLETE))
flags |= TORRENT_FLAG_DOWNLOADING;
+
+ if (torrent_get_metadata_percent_complete(t) < 100)
+ flags |= TORRENT_FLAG_DOWNLOADING_METADATA;
+
flags |= TORRENT_FLAG_ACTIVE;
break;
case TR_STATUS_SEED_WAIT:
@@ -264,6 +273,8 @@ gchar *torrent_get_status_icon(gint64 rpcv, guint flags)
{
if (flags & TORRENT_FLAG_ERROR)
return g_strdup(GTK_STOCK_DIALOG_WARNING);
+ else if (flags & TORRENT_FLAG_DOWNLOADING_METADATA)
+ return g_strdup(GTK_STOCK_FIND);
else if (flags & TORRENT_FLAG_DOWNLOADING)
return g_strdup(GTK_STOCK_GO_DOWN);
else if (flags & TORRENT_FLAG_PAUSED)
@@ -286,13 +297,16 @@ const gchar *torrent_get_errorstr(JsonObject * t)
return json_object_get_string_member(t, FIELD_ERRORSTR);
}
-gchar *torrent_get_status_string(gint64 rpcv, gint64 value)
+gchar *torrent_get_status_string(gint64 rpcv, gint64 value, guint flags)
{
if (rpcv >= NEW_STATUS_RPC_VERSION)
{
switch (value) {
case TR_STATUS_DOWNLOAD:
- return g_strdup(_("Downloading"));
+ if (flags & TORRENT_FLAG_DOWNLOADING_METADATA)
+ return g_strdup(_("Metadata Downloading"));
+ else
+ return g_strdup(_("Downloading"));
case TR_STATUS_DOWNLOAD_WAIT:
return g_strdup(_("Queued download"));
case TR_STATUS_CHECK_WAIT:
@@ -311,7 +325,10 @@ gchar *torrent_get_status_string(gint64 rpcv, gint64 value)
{
switch (value) {
case OLD_STATUS_DOWNLOADING:
- return g_strdup(_("Downloading"));
+ if (flags & TORRENT_FLAG_DOWNLOADING_METADATA)
+ return g_strdup(_("Metadata Downloading"));
+ else
+ return g_strdup(_("Downloading"));
case OLD_STATUS_PAUSED:
return g_strdup(_("Paused"));
case OLD_STATUS_SEEDING: