From 9ce58e33ac33c5817ff884b41f09995993b74b03 Mon Sep 17 00:00:00 2001 From: Jordan Lee Date: Fri, 21 Jan 2011 02:58:58 +0000 Subject: [PATCH] (trunk gtk) #3916 "Reorder the list when metadata is downloaded" -- fixed. When tr_info.name changes, update the collated name in the main window's TreeStore. --- gtk/tr-core.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gtk/tr-core.c b/gtk/tr-core.c index 53b2568d8..1b94954c5 100644 --- a/gtk/tr-core.c +++ b/gtk/tr-core.c @@ -1282,17 +1282,20 @@ update_foreach( GtkTreeModel * model, int oldActivity, newActivity; tr_bool oldFinished, newFinished; tr_priority_t oldPriority, newPriority; + char * oldCollatedName, * newCollatedName; char * oldTrackers, * newTrackers; double oldUpSpeed, newUpSpeed; double oldDownSpeed, newDownSpeed; gboolean oldActive, newActive; const tr_stat * st; + const tr_info * inf; TrTorrent * gtor; tr_torrent * tor; /* get the old states */ gtk_tree_model_get( model, iter, MC_TORRENT, >or, + MC_NAME_COLLATED, &oldCollatedName, MC_ACTIVE, &oldActive, MC_ACTIVITY, &oldActivity, MC_FINISHED, &oldFinished, @@ -1312,6 +1315,8 @@ update_foreach( GtkTreeModel * model, newTrackers = torrentTrackerString( tor ); newUpSpeed = st->pieceUploadSpeed_KBps; newDownSpeed = st->pieceDownloadSpeed_KBps; + inf = tr_torrent_info( gtor ); + newCollatedName = g_utf8_strdown( inf->name ? inf->name : "", -1 ); /* updating the model triggers off resort/refresh, so don't do it unless something's actually changed... */ @@ -1320,12 +1325,14 @@ update_foreach( GtkTreeModel * model, || ( newFinished != oldFinished ) || ( newPriority != oldPriority ) || gtr_strcmp0( oldTrackers, newTrackers ) + || gtr_strcmp0( oldCollatedName, newCollatedName ) || gtr_compare_double( newUpSpeed, oldUpSpeed, 3 ) || gtr_compare_double( newDownSpeed, oldDownSpeed, 3 ) ) { gtk_list_store_set( GTK_LIST_STORE( model ), iter, MC_ACTIVE, newActive, MC_ACTIVITY, newActivity, + MC_NAME_COLLATED, &newCollatedName, MC_FINISHED, newFinished, MC_PRIORITY, newPriority, MC_TRACKERS, newTrackers, @@ -1336,6 +1343,8 @@ update_foreach( GtkTreeModel * model, /* cleanup */ g_object_unref( gtor ); + g_free( newCollatedName ); + g_free( oldCollatedName ); g_free( newTrackers ); g_free( oldTrackers ); return FALSE;