mirror of
https://github.com/transmission/transmission
synced 2025-02-21 13:46:52 +00:00
(trunk gtk) #3011 "'Edit Trackers' dialog not reset after Cancel" -- fixed in trunk for 2.00
This commit is contained in:
parent
64a847baf0
commit
2b6b193a43
1 changed files with 28 additions and 15 deletions
|
@ -1899,6 +1899,27 @@ trackerVisibleFunc( GtkTreeModel * model, GtkTreeIter * iter, gpointer data )
|
||||||
return !isBackup;
|
return !isBackup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
populate_tracker_buffer( GtkTextBuffer * buffer, const tr_torrent * tor )
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int tier = 0;
|
||||||
|
GString * gstr = g_string_new( NULL );
|
||||||
|
const tr_info * inf = tr_torrentInfo( tor );
|
||||||
|
for( i=0; i<inf->trackerCount; ++i ) {
|
||||||
|
const tr_tracker_info * t = &inf->trackers[i];
|
||||||
|
if( tier != t->tier ) {
|
||||||
|
tier = t->tier;
|
||||||
|
g_string_append_c( gstr, '\n' );
|
||||||
|
}
|
||||||
|
g_string_append_printf( gstr, "%s\n", t->announce );
|
||||||
|
}
|
||||||
|
if( gstr->len > 0 )
|
||||||
|
g_string_truncate( gstr, gstr->len-1 );
|
||||||
|
gtk_text_buffer_set_text( buffer, gstr->str, -1 );
|
||||||
|
g_string_free( gstr, TRUE );
|
||||||
|
}
|
||||||
|
|
||||||
#define TORRENT_PTR_KEY "torrent-pointer"
|
#define TORRENT_PTR_KEY "torrent-pointer"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1946,22 +1967,8 @@ refreshTracker( struct DetailsImpl * di, tr_torrent ** torrents, int n )
|
||||||
|
|
||||||
if( ( di->tracker_buffer == NULL ) && ( n == 1 ) )
|
if( ( di->tracker_buffer == NULL ) && ( n == 1 ) )
|
||||||
{
|
{
|
||||||
int tier = 0;
|
|
||||||
GString * gstr = g_string_new( NULL );
|
|
||||||
const tr_info * inf = tr_torrentInfo( torrents[0] );
|
|
||||||
for( i=0; i<inf->trackerCount; ++i ) {
|
|
||||||
const tr_tracker_info * t = &inf->trackers[i];
|
|
||||||
if( tier != t->tier ) {
|
|
||||||
tier = t->tier;
|
|
||||||
g_string_append_c( gstr, '\n' );
|
|
||||||
}
|
|
||||||
g_string_append_printf( gstr, "%s\n", t->announce );
|
|
||||||
}
|
|
||||||
if( gstr->len > 0 )
|
|
||||||
g_string_truncate( gstr, gstr->len-1 );
|
|
||||||
di->tracker_buffer = gtk_text_buffer_new( NULL );
|
di->tracker_buffer = gtk_text_buffer_new( NULL );
|
||||||
gtk_text_buffer_set_text( di->tracker_buffer, gstr->str, -1 );
|
populate_tracker_buffer( di->tracker_buffer, torrents[0] );
|
||||||
g_string_free( gstr, TRUE );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* add any missing rows (FIXME: doesn't handle edited trackers) */
|
/* add any missing rows (FIXME: doesn't handle edited trackers) */
|
||||||
|
@ -2098,6 +2105,12 @@ onEditTrackersResponse( GtkDialog * dialog, int response, gpointer data )
|
||||||
g_free( tracker_text );
|
g_free( tracker_text );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( response == GTK_RESPONSE_CANCEL )
|
||||||
|
{
|
||||||
|
tr_torrent * tor = g_object_get_data( G_OBJECT( dialog ), TORRENT_PTR_KEY );
|
||||||
|
populate_tracker_buffer( di->tracker_buffer, tor );
|
||||||
|
}
|
||||||
|
|
||||||
if( do_destroy )
|
if( do_destroy )
|
||||||
gtk_widget_destroy( GTK_WIDGET( dialog ) );
|
gtk_widget_destroy( GTK_WIDGET( dialog ) );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue