that last commit was kind of silly... "sort by ratio" can be merged into "sort by progress"

This commit is contained in:
Charles Kerr
2007-12-19 07:10:47 +00:00
parent 9ed991657e
commit ae682b59be
4 changed files with 19 additions and 40 deletions

View File

@@ -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

View File

@@ -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" ) )
{

View File

@@ -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;

View File

@@ -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"