diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-10-07 18:55:01 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-10-07 18:55:01 +0000 |
commit | 429b32fba6f5ad14db31fe2690974b57df858999 (patch) | |
tree | 54970bd752b8dcf957d4a2db09be5678b79f9af4 /src/torrent.c | |
parent | c3bd3ac55162a88b308a6f700aad88d26cbd5f29 (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.c | 23 |
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: |