Changeset 5044
- Timestamp:
- Feb 15, 2008, 6:20:56 PM (14 years ago)
- Location:
- trunk/gtk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gtk/file-list.c
r5026 r5044 358 358 } 359 359 360 static void361 torrentDestroyed( gpointer gdata, GObject * deadTorrent UNUSED )362 {363 FileData * data = gdata;364 data->gtor = NULL;365 file_list_set_torrent( data->top, NULL );366 }367 368 static void369 freeData( gpointer gdata )370 {371 FileData * data = gdata;372 373 if( data->timeout_tag ) {374 g_source_remove( data->timeout_tag );375 data->timeout_tag = 0;376 }377 378 if( data->gtor != NULL )379 g_object_weak_unref( G_OBJECT( data->gtor ), torrentDestroyed, data );380 381 g_free( data );382 }383 384 360 static gboolean 385 361 refreshModel( gpointer gdata ) … … 406 382 } 407 383 384 static void 385 clearData( FileData * data ) 386 { 387 data->gtor = NULL; 388 389 if( data->timeout_tag ) { 390 g_source_remove( data->timeout_tag ); 391 data->timeout_tag = 0; 392 } 393 } 394 408 395 void 409 396 file_list_set_torrent( GtkWidget * w, TrTorrent * gtor ) … … 413 400 414 401 data = g_object_get_data( G_OBJECT( w ), "file-data" ); 402 403 /* unset the old fields */ 404 clearData( data ); 415 405 416 406 /* instantiate the model */ … … 428 418 data->gtor = gtor; 429 419 430 if( data->timeout_tag ) {431 g_source_remove( data->timeout_tag );432 data->timeout_tag = 0;433 }434 420 435 421 /* populate the model */ … … 439 425 const tr_info * inf = tr_torrent_info( gtor ); 440 426 tr_torrent * tor = tr_torrent_handle( gtor ); 441 g_object_weak_ref( G_OBJECT( gtor ), torrentDestroyed, data );442 427 443 428 for( i=0; inf && i<inf->fileCount; ++i ) … … 455 440 gtk_tree_view_set_model( GTK_TREE_VIEW( data->view ), GTK_TREE_MODEL( store ) ); 456 441 gtk_tree_view_expand_all( GTK_TREE_VIEW( data->view ) ); 442 } 443 444 static void 445 freeData( gpointer gdata ) 446 { 447 FileData * data = gdata; 448 clearData( data ); 449 g_free( data ); 457 450 } 458 451 -
trunk/gtk/open.c
r5036 r5044 35 35 if( data->gtor ) 36 36 { 37 tr_torrent * tor = tr_torrent_handle( data->gtor ); 37 tr_torrent * tor; 38 39 file_list_set_torrent( data->list, NULL ); 40 41 tor = tr_torrent_handle( data->gtor ); 38 42 tr_torrentRemoveSaved( tor ); 39 43 tr_torrentClose( tor ); 44 40 45 g_object_unref( G_OBJECT( data->gtor ) ); 41 46 data->gtor = NULL;
Note: See TracChangeset
for help on using the changeset viewer.