]> granicus.if.org Git - transmission/commitdiff
(trunk) #1869 "New status for torrents that reached the seed ratio" -- implemented...
authorCharles Kerr <charles@transmissionbt.com>
Tue, 6 Apr 2010 02:34:45 +0000 (02:34 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Tue, 6 Apr 2010 02:34:45 +0000 (02:34 +0000)
daemon/remote.c
gtk/torrent-cell-renderer.c
gtk/tr-torrent.c
gtk/tr-torrent.h
qt/torrent-delegate.cc
qt/torrent.cc
qt/torrent.h

index a29febcec18ef96fa31272d4ce8ed4fb9f52d63f..68a0cc8ae2ddaddf71f76e96078c72dd5300df9e 100644 (file)
@@ -337,6 +337,7 @@ static const char * details_keys[] = {
     "haveValid",
     "honorsSessionLimits",
     "id",
+    "isFinished",
     "isPrivate",
     "leftUntilDone",
     "name",
@@ -369,6 +370,7 @@ static const char * list_keys[] = {
     "errorString",
     "eta",
     "id",
+    "isFinished",
     "leftUntilDone",
     "name",
     "peersGettingFromUs",
@@ -1008,6 +1010,7 @@ static char*
 getStatusString( tr_benc * t, char * buf, size_t buflen )
 {
     int64_t status;
+    tr_bool boolVal;
 
     if( !tr_bencDictFindInt( t, "status", &status ) )
     {
@@ -1016,7 +1019,10 @@ getStatusString( tr_benc * t, char * buf, size_t buflen )
     else switch( status )
     {
         case TR_STATUS_STOPPED:
-            tr_strlcpy( buf, "Stopped", buflen );
+            if( tr_bencDictFindBool( t, "isFinished", &boolVal ) && boolVal )
+                tr_strlcpy( buf, "Finished", buflen );
+            else
+                tr_strlcpy( buf, "Stopped", buflen );
             break;
 
         case TR_STATUS_CHECK_WAIT:
index d2b167816b365ce06f5a89480d63783ba14d975e..cf7958a145c5a076b0140ab88b862d825a178526 100644 (file)
@@ -202,7 +202,10 @@ getShortStatusString( const tr_torrent  * tor,
     switch( torStat->activity )
     {
         case TR_STATUS_STOPPED:
-            g_string_assign( gstr, _( "Paused" ) );
+            if( torStat->finished )
+                g_string_assign( gstr, _( "Finished" ) );
+            else
+                g_string_assign( gstr, _( "Paused" ) );
             break;
 
         case TR_STATUS_CHECK_WAIT:
index 3f6b97388be7e8a9352aeb54f5d9b3c5ef7939d9..936aa9129a37378eb8356e8a0667c0f63d5e97e1 100644 (file)
@@ -215,64 +215,6 @@ tr_torrent_new_ctor( tr_session   * session,
     return tor ? maketorrent( tor ) : NULL;
 }
 
-char *
-tr_torrent_status_str( TrTorrent * gtor )
-{
-    char *          top = NULL;
-
-    const tr_stat * st = tr_torrent_stat( gtor );
-
-    const int       tpeers = MAX ( st->peersConnected, 0 );
-    const int       upeers = MAX ( st->peersGettingFromUs, 0 );
-    const int       eta = st->eta;
-
-    switch( st->activity )
-    {
-        case TR_STATUS_CHECK_WAIT:
-            top =
-                g_strdup_printf( _( "Waiting to verify local data (%.1f%% tested)" ),
-                                 tr_truncd( 100 * st->recheckProgress, 1 ) );
-            break;
-
-        case TR_STATUS_CHECK:
-            top =
-                g_strdup_printf( _( "Verifying local data (%.1f%% tested)" ),
-                                 tr_truncd( 100 * st->recheckProgress, 1 ) );
-            break;
-
-        case TR_STATUS_DOWNLOAD:
-
-            if( eta < 0 )
-                top = g_strdup_printf( _( "Remaining time unknown" ) );
-            else
-            {
-                char timestr[128];
-                tr_strltime( timestr, eta, sizeof( timestr ) );
-                /* %s is # of minutes */
-                top = g_strdup_printf( _( "%1$s remaining" ), timestr );
-            }
-            break;
-
-        case TR_STATUS_SEED:
-            top = g_strdup_printf(
-                ngettext( "Seeding to %1$'d of %2$'d connected peer",
-                          "Seeding to %1$'d of %2$'d connected peers",
-                          tpeers ),
-                upeers, tpeers );
-            break;
-
-        case TR_STATUS_STOPPED:
-            top = g_strdup( _( "Stopped" ) );
-            break;
-
-        default:
-            top = g_strdup( "???" );
-            break;
-    }
-
-    return top;
-}
-
 void
 tr_torrent_set_remove_flag( TrTorrent * gtor,
                             gboolean    do_remove )
index f01e86cc73731a584565e3c82fa44b220dcd82e4..e51586290d94fe8f2a51af43b582f30914ca7b31 100644 (file)
@@ -65,8 +65,6 @@ const tr_stat *tr_torrent_stat( TrTorrent *tor );
 
 const tr_info *tr_torrent_info( TrTorrent *tor );
 
-char*          tr_torrent_status_str( TrTorrent * tor );
-
 void           tr_torrent_delete_files( TrTorrent * tor );
 
 void           tr_torrent_open_folder( TrTorrent * tor );
index 1713ecd121a15b4ad919d7c923b11c21c292eb9e..9352c5938e8753111b387a3f7ccd652d778d6e8c 100644 (file)
@@ -182,14 +182,6 @@ TorrentDelegate :: shortStatusString( const Torrent& tor ) const
 
     switch( tor.getActivity( ) )
     {
-        case TR_STATUS_STOPPED:
-            str = tr( "Paused" );
-            break;
-
-        case TR_STATUS_CHECK_WAIT:
-            str = tr( "Waiting to verify local data" );
-            break;
-
         case TR_STATUS_CHECK:
             str = tr( "Verifying local data (%1% tested)" ).arg( tor.getVerifyProgress()*100.0, 0, 'f', 1 );
             break;
@@ -202,6 +194,7 @@ TorrentDelegate :: shortStatusString( const Torrent& tor ) const
             break;
 
         default:
+            str = tor.activityString( );
             break;
     }
 
index c1744372ec7569297554c4f76fce80c66b243761..6698bf154d122b3afb5bc735eb99b0895ccab3d4 100644 (file)
@@ -96,6 +96,7 @@ Torrent :: myProperties[] =
     { HONORS_SESSION_LIMITS, "honorsSessionLimits", QVariant::Bool, STAT_EXTRA },
     { PEER_LIMIT, "peer-limit", QVariant::Int, STAT_EXTRA },
     { HASH_STRING, "hashString", QVariant::String, INFO },
+    { IS_FINISHED, "isFinished", QVariant::Bool, STAT },
     { IS_PRIVATE, "isPrivate", QVariant::Bool, INFO },
     { COMMENT, "comment", QVariant::String, INFO },
     { CREATOR, "creator", QVariant::String, INFO },
@@ -675,7 +676,7 @@ Torrent :: activityString( ) const
         case TR_STATUS_CHECK:      str = tr( "Verifying local data" ); break;
         case TR_STATUS_DOWNLOAD:   str = tr( "Downloading" ); break;
         case TR_STATUS_SEED:       str = tr( "Seeding" ); break;
-        case TR_STATUS_STOPPED:    str = tr( "Paused" ); break;
+        case TR_STATUS_STOPPED:    str = isFinished() ? tr( "Finished" ): tr( "Paused" ); break;
     }
 
     return str;
index 8b0ce1ff2401cd5fbb9f1f4c07671715468400c5..b96dcf442e31acee68e5ec177e0c5bb08e841222 100644 (file)
@@ -159,6 +159,7 @@ class Torrent: public QObject
             HONORS_SESSION_LIMITS,
             PEER_LIMIT,
             HASH_STRING,
+            IS_FINISHED,
             IS_PRIVATE,
             COMMENT,
             CREATOR,
@@ -293,6 +294,7 @@ class Torrent: public QObject
     public:
         QString activityString( ) const;
         tr_torrent_activity getActivity( ) const { return (tr_torrent_activity) getInt( ACTIVITY ); }
+        bool isFinished( ) const { return getBool( IS_FINISHED ); }
         bool isPaused( ) const { return getActivity( ) == TR_STATUS_STOPPED; }
         bool isVerifying( ) const { return getActivity( ) == TR_STATUS_CHECK; }
         bool isDownloading( ) const { return getActivity( ) == TR_STATUS_DOWNLOAD; }