summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2012-08-28 22:38:22 +0100
committerGravatar Alan Fitton <ajf@eth0.org.uk>2012-08-28 22:38:22 +0100
commitb1c7d130563f14a6d9ce48072c989fcd2594772d (patch)
treeea8a03247daec5f0d0d36c312d3eed9cc33a11e8 /src
parent3804f7f2832517cc309f061501f734f68c908c00 (diff)
issue 212 - hopefully fix magnet links making lots of notifications
Diffstat (limited to 'src')
-rw-r--r--src/torrent.c29
-rw-r--r--src/trg-torrent-model.c8
2 files changed, 19 insertions, 18 deletions
diff --git a/src/torrent.c b/src/torrent.c
index b79a003..03f6474 100644
--- a/src/torrent.c
+++ b/src/torrent.c
@@ -220,11 +220,11 @@ gint64 torrent_get_activity_date(JsonObject * t)
guint32
torrent_get_flags(JsonObject * t, gint64 rpcv, gint64 status,
- gint64 downRate, gint64 upRate)
+ gint64 fileCount, gint64 downRate, gint64 upRate)
{
guint32 flags = 0;
- if (torrent_get_is_finished(t) == TRUE)
+ if (fileCount > 0 && torrent_get_is_finished(t) == TRUE)
flags |= TORRENT_FLAG_COMPLETE;
else
flags |= TORRENT_FLAG_INCOMPLETE;
@@ -250,8 +250,8 @@ torrent_get_flags(JsonObject * t, gint64 rpcv, gint64 status,
if (!(flags & TORRENT_FLAG_COMPLETE))
flags |= TORRENT_FLAG_DOWNLOADING;
- /* if (torrent_get_metadata_percent_complete(t) < 100)
- * flags |= TORRENT_FLAG_DOWNLOADING_METADATA; */
+ if (fileCount <= 0)
+ flags |= TORRENT_FLAG_DOWNLOADING_METADATA;
flags |= TORRENT_FLAG_ACTIVE;
break;
@@ -283,6 +283,7 @@ torrent_get_flags(JsonObject * t, gint64 rpcv, gint64 status,
flags |= TORRENT_FLAG_CHECKING;
break;
}
+
if (downRate > 0 || upRate > 0)
flags |= TORRENT_FLAG_ACTIVE;
}
@@ -297,8 +298,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_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)
@@ -353,10 +354,10 @@ gchar *torrent_get_status_string(gint64 rpcv, gint64 value, guint flags)
if (rpcv >= NEW_STATUS_RPC_VERSION) {
switch (value) {
case TR_STATUS_DOWNLOAD:
- /*if (flags & TORRENT_FLAG_DOWNLOADING_METADATA)
- return g_strdup(_("Metadata Downloading"));
- else */
- 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:
@@ -373,10 +374,10 @@ gchar *torrent_get_status_string(gint64 rpcv, gint64 value, guint flags)
} else {
switch (value) {
case OLD_STATUS_DOWNLOADING:
- /*if (flags & TORRENT_FLAG_DOWNLOADING_METADATA)
- return g_strdup(_("Metadata Downloading"));
- else */
- 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:
diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c
index c582bd7..73d877c 100644
--- a/src/trg-torrent-model.c
+++ b/src/trg-torrent-model.c
@@ -433,8 +433,7 @@ update_torrent_iter(TrgTorrentModel * model,
JsonObject *lastJson, *pf;
JsonArray *trackerStats;
gchar *statusString, *statusIcon, *downloadDir;
- gint64 downRate, upRate, haveValid, uploaded, downloaded, id, status,
- lpd;
+ gint64 downRate, upRate, haveValid, uploaded, downloaded, id, status, lpd, fileCount;
gchar *firstTrackerHost = NULL;
gchar *peerSources = NULL;
gchar *lastDownloadDir = NULL;
@@ -454,7 +453,8 @@ update_torrent_iter(TrgTorrentModel * model,
id = torrent_get_id(t);
status = torrent_get_status(t);
- newFlags = torrent_get_flags(t, rpcv, status, downRate, upRate);
+ fileCount = json_array_get_length(torrent_get_files(t));
+ newFlags = torrent_get_flags(t, rpcv, status, fileCount, downRate, upRate);
statusString = torrent_get_status_string(rpcv, status, newFlags);
statusIcon = torrent_get_status_icon(rpcv, newFlags);
pf = torrent_get_peersfrom(t);
@@ -504,7 +504,7 @@ update_torrent_iter(TrgTorrentModel * model,
gtk_list_store_set(ls, iter, TORRENT_COLUMN_ICON, statusIcon,
TORRENT_COLUMN_ADDED, torrent_get_added_date(t),
TORRENT_COLUMN_FILECOUNT,
- json_array_get_length(torrent_get_files(t)),
+ fileCount,
TORRENT_COLUMN_DONE_DATE, torrent_get_done_date(t),
TORRENT_COLUMN_NAME, torrent_get_name(t),
TORRENT_COLUMN_ERROR, torrent_get_error(t),