mirror of
https://github.com/transmission/transmission
synced 2025-03-16 16:55:36 +00:00
(trunk) #1869 "New status for torrents that reached the seed ratio" -- implemented for GTK+, Qt, and transmission-remote by Longinus00's patch
This commit is contained in:
parent
e2bf25720b
commit
1efe08d34d
7 changed files with 16 additions and 71 deletions
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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; }
|
||||
|
|
Loading…
Add table
Reference in a new issue