Changeset 3942
Legend:
- Unmodified
- Added
- Removed
-
trunk/gtk/main.c
r3867 r3942 372 372 static void 373 373 rowChangedCB( GtkTreeModel * model UNUSED, 374 GtkTreePath * path UNUSED,374 GtkTreePath * path, 375 375 GtkTreeIter * iter UNUSED, 376 376 gpointer sel) 377 377 { 378 refreshTorrentActions( GTK_TREE_SELECTION(sel) ); 378 if( gtk_tree_selection_path_is_selected ( sel, path ) ) 379 refreshTorrentActions( GTK_TREE_SELECTION(sel) ); 379 380 } 380 381 … … 395 396 g_signal_connect( model, "row-changed", G_CALLBACK(rowChangedCB), sel ); 396 397 g_signal_connect( wind, "delete-event", G_CALLBACK( winclose ), cbdata ); 398 refreshTorrentActions( sel ); 397 399 398 400 setupdrag( GTK_WIDGET(wind), cbdata ); -
trunk/gtk/tr_core.c
r3821 r3942 529 529 } 530 530 531 void 532 tr_core_update( TrCore * self ) 533 { 534 GtkTreeIter iter; 531 static gboolean 532 update_foreach( GtkTreeModel * model, 533 GtkTreePath * path UNUSED, 534 GtkTreeIter * iter, 535 gpointer data UNUSED) 536 { 535 537 TrTorrent * tor; 536 538 const tr_stat * st; 537 539 538 TR_IS_CORE( self ); 539 540 if( gtk_tree_model_get_iter_first( self->model, &iter ) ) do 541 { 542 gtk_tree_model_get( self->model, &iter, MC_TORRENT, &tor, -1 ); 543 st = tr_torrent_stat( tor ); 544 g_object_unref( tor ); 545 tr_torrent_check_seeding_cap ( tor ); 546 547 /* XXX find out if setting the same data emits changed signal */ 548 gtk_list_store_set( GTK_LIST_STORE( self->model ), &iter, 549 MC_STAT, st->status, 550 MC_ERR, st->error, 551 MC_TERR, st->errorString, 552 MC_PROG_C, st->percentComplete, 553 MC_PROG_D, st->percentDone, 554 MC_DRATE, st->rateDownload, 555 MC_URATE, st->rateUpload, 556 MC_ETA, st->eta, 557 MC_PEERS, st->peersConnected, 558 MC_UPEERS, st->peersGettingFromUs, 559 MC_DPEERS, st->peersSendingToUs, 560 MC_SEED, st->seeders, 561 MC_LEECH, st->leechers, 562 MC_DONE, st->completedFromTracker, 563 MC_DOWN, st->downloadedEver, 564 MC_UP, st->uploadedEver, 565 MC_RATIO, st->ratio, 566 MC_LEFT, st->leftUntilDone, 567 -1 ); 568 } 569 while( gtk_tree_model_iter_next( self->model, &iter ) ); 540 gtk_tree_model_get( model, iter, MC_TORRENT, &tor, -1 ); 541 st = tr_torrent_stat( tor ); 542 tr_torrent_check_seeding_cap ( tor ); 543 g_object_unref( tor ); 544 545 gtk_list_store_set( GTK_LIST_STORE( model ), iter, 546 MC_STAT, st->status, 547 MC_ERR, st->error, 548 MC_TERR, st->errorString, 549 MC_PROG_C, st->percentComplete, 550 MC_PROG_D, st->percentDone, 551 MC_DRATE, st->rateDownload, 552 MC_URATE, st->rateUpload, 553 MC_ETA, st->eta, 554 MC_PEERS, st->peersConnected, 555 MC_UPEERS, st->peersGettingFromUs, 556 MC_DPEERS, st->peersSendingToUs, 557 MC_SEED, st->seeders, 558 MC_LEECH, st->leechers, 559 MC_DONE, st->completedFromTracker, 560 MC_DOWN, st->downloadedEver, 561 MC_UP, st->uploadedEver, 562 MC_RATIO, st->ratio, 563 MC_LEFT, st->leftUntilDone, 564 -1 ); 565 566 return FALSE; 567 } 568 569 void 570 tr_core_update( TrCore * self ) 571 { 572 int column; 573 GtkSortType order; 574 GtkTreeSortable * sortable; 575 576 /* pause sorting */ 577 sortable = GTK_TREE_SORTABLE( self->model ); 578 gtk_tree_sortable_get_sort_column_id( sortable, &column, &order ); 579 gtk_tree_sortable_set_sort_column_id( sortable, GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, order ); 580 581 /* refresh the model */ 582 gtk_tree_model_foreach( self->model, update_foreach, NULL ); 583 584 /* resume sorting */ 585 gtk_tree_sortable_set_sort_column_id( sortable, column, order ); 570 586 } 571 587
Note: See TracChangeset
for help on using the changeset viewer.