mirror of
https://github.com/transmission/transmission.git
synced 2025-12-24 20:35:36 +00:00
that last commit was kind of silly... "sort by ratio" can be merged into "sort by progress"
This commit is contained in:
@@ -61,9 +61,8 @@ static GtkRadioActionEntry sort_radio_entries[] =
|
||||
{ "sort-by-date-added", NULL, N_("Sort by _Date Added"), NULL, NULL, 1 },
|
||||
{ "sort-by-name", NULL, N_("Sort by _Name"), NULL, NULL, 2 },
|
||||
{ "sort-by-progress", NULL, N_("Sort by _Progress"), NULL, NULL, 3 },
|
||||
{ "sort-by-ratio", NULL, N_("Sort by _Ratio"), NULL, NULL, 4 },
|
||||
{ "sort-by-state", NULL, N_("Sort by _State"), NULL, NULL, 5 },
|
||||
{ "sort-by-tracker", NULL, N_("Sort by _Tracker"), NULL, NULL, 6 }
|
||||
{ "sort-by-state", NULL, N_("Sort by _State"), NULL, NULL, 4 },
|
||||
{ "sort-by-tracker", NULL, N_("Sort by _Tracker"), NULL, NULL, 5 }
|
||||
};
|
||||
|
||||
static void
|
||||
|
||||
@@ -1028,7 +1028,6 @@ doAction ( const char * action_name, gpointer user_data )
|
||||
|| !strcmp( action_name, "sort-by-date-added" )
|
||||
|| !strcmp( action_name, "sort-by-name" )
|
||||
|| !strcmp( action_name, "sort-by-progress" )
|
||||
|| !strcmp( action_name, "sort-by-ratio" )
|
||||
|| !strcmp( action_name, "sort-by-state" )
|
||||
|| !strcmp( action_name, "sort-by-tracker" ) )
|
||||
{
|
||||
|
||||
@@ -170,13 +170,21 @@ tr_core_class_init( gpointer g_class, gpointer g_class_data SHUTUP )
|
||||
G_TYPE_NONE, 1, G_TYPE_STRING );
|
||||
}
|
||||
|
||||
static int
|
||||
compareDouble( double a, double b )
|
||||
{
|
||||
if( a < b ) return -1;
|
||||
if( b > a ) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
compareByActivity( GtkTreeModel * model,
|
||||
GtkTreeIter * a,
|
||||
GtkTreeIter * b,
|
||||
gpointer user_data UNUSED )
|
||||
{
|
||||
int ia, ib;
|
||||
int i;
|
||||
tr_torrent *ta, *tb;
|
||||
const tr_stat *sa, *sb;
|
||||
|
||||
@@ -186,10 +194,9 @@ compareByActivity( GtkTreeModel * model,
|
||||
sa = tr_torrentStat( ta );
|
||||
sb = tr_torrentStat( tb );
|
||||
|
||||
ia = (int)( 1024 * ( sa->rateUpload + sa->rateDownload ) );
|
||||
ib = (int)( 1024 * ( sb->rateUpload + sb->rateDownload ) );
|
||||
if( ia != ib )
|
||||
return ia - ib;
|
||||
if(( i = compareDouble( sa->rateUpload + sa->rateDownload,
|
||||
sb->rateUpload + sb->rateDownload ) ))
|
||||
return i;
|
||||
|
||||
if( sa->uploadedEver != sb->uploadedEver )
|
||||
return sa->uploadedEver < sa->uploadedEver ? -1 : 1;
|
||||
@@ -203,8 +210,7 @@ compareByDateAdded( GtkTreeModel * model UNUSED,
|
||||
GtkTreeIter * b UNUSED,
|
||||
gpointer user_data UNUSED )
|
||||
{
|
||||
/* FIXME */
|
||||
return 0;
|
||||
return 0; /* FIXME */
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -229,35 +235,16 @@ compareByProgress( GtkTreeModel * model,
|
||||
GtkTreeIter * b,
|
||||
gpointer user_data UNUSED )
|
||||
{
|
||||
int ret;
|
||||
tr_torrent *ta, *tb;
|
||||
const tr_stat *sa, *sb;
|
||||
int ret;
|
||||
gtk_tree_model_get( model, a, MC_TORRENT_RAW, &ta, -1 );
|
||||
gtk_tree_model_get( model, b, MC_TORRENT_RAW, &tb, -1 );
|
||||
sa = tr_torrentStat( ta );
|
||||
sb = tr_torrentStat( tb );
|
||||
if( sa->percentDone < sb->percentDone ) ret = -1;
|
||||
else if( sa->percentDone > sb->percentDone ) ret = 1;
|
||||
else ret = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
compareByRatio( GtkTreeModel * model,
|
||||
GtkTreeIter * a,
|
||||
GtkTreeIter * b,
|
||||
gpointer user_data UNUSED )
|
||||
{
|
||||
tr_torrent *ta, *tb;
|
||||
const tr_stat *sa, *sb;
|
||||
int ret;
|
||||
gtk_tree_model_get( model, a, MC_TORRENT_RAW, &ta, -1 );
|
||||
gtk_tree_model_get( model, b, MC_TORRENT_RAW, &tb, -1 );
|
||||
sa = tr_torrentStat( ta );
|
||||
sb = tr_torrentStat( tb );
|
||||
if( sa->ratio < sb->ratio ) ret = -1;
|
||||
else if( sa->ratio > sb->ratio ) ret = 1;
|
||||
else ret = 0;
|
||||
ret = compareDouble( sa->percentDone, sb->percentDone );
|
||||
if( !ret )
|
||||
ret = compareDouble( sa->ratio, sa->ratio );
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -313,11 +300,6 @@ setSort( TrCore * core, const char * mode, gboolean isReversed )
|
||||
type = isReversed ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;
|
||||
gtk_tree_sortable_set_sort_func( sortable, col, compareByProgress, NULL, NULL );
|
||||
}
|
||||
else if( !strcmp( mode, "sort-by-ratio" ) )
|
||||
{
|
||||
type = isReversed ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;
|
||||
gtk_tree_sortable_set_sort_func( sortable, col, compareByRatio, NULL, NULL );
|
||||
}
|
||||
else if( !strcmp( mode, "sort-by-state" ) )
|
||||
{
|
||||
type = isReversed ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;
|
||||
|
||||
1
gtk/ui.h
1
gtk/ui.h
@@ -22,7 +22,6 @@ const char * fallback_ui_file =
|
||||
" <menuitem action='sort-by-activity'/>\n"
|
||||
" <menuitem action='sort-by-name'/>\n"
|
||||
" <menuitem action='sort-by-progress'/>\n"
|
||||
" <menuitem action='sort-by-ratio'/>\n"
|
||||
" <menuitem action='sort-by-state'/>\n"
|
||||
" <menuitem action='sort-by-tracker'/>\n"
|
||||
" <menuitem action='reverse-sort-order'/>\n"
|
||||
|
||||
Reference in New Issue
Block a user