Changeset 1507
- Timestamp:
- Feb 23, 2007, 6:54:49 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gtk/dialogs.c
r1506 r1507 86 86 parsepath( GtkTreeStore * store, GtkTreeIter * ret, 87 87 const char * path, int index, uint64_t size ); 88 static uint64_t 89 getdirtotals( GtkTreeStore * store, GtkTreeIter * parent, tr_file_t * files ); 88 90 static void 89 91 setscroll( void * arg ); … … 417 419 ii, inf->files[ii].length ); 418 420 } 421 getdirtotals( store, NULL, inf->files ); 419 422 gtk_tree_sortable_set_sort_column_id( GTK_TREE_SORTABLE( store ), 420 423 FC_KEY, GTK_SORT_ASCENDING ); … … 516 519 label = g_markup_printf_escaped( _("<small>%s (%s)</small>"), 517 520 file, sizestr ); 521 g_free( file ); 522 file = label; 518 523 g_free( sizestr ); 519 524 stock = GTK_STOCK_FILE; … … 521 526 else 522 527 { 523 label = g_markup_printf_escaped( _("<small>%s</small>"), file );524 528 stock = GTK_STOCK_DIRECTORY; 525 } 526 gtk_tree_store_set( store, &iter, FC_INDEX, index, FC_LABEL, label, 529 index = -1; 530 } 531 gtk_tree_store_set( store, &iter, FC_INDEX, index, FC_LABEL, file, 527 532 FC_KEY, mykey, FC_STOCK, stock, -1 ); 528 g_free( label );529 533 done: 530 534 g_free( mykey ); … … 534 538 memcpy( ret, &iter, sizeof( iter ) ); 535 539 } 540 } 541 542 static uint64_t 543 getdirtotals( GtkTreeStore * store, GtkTreeIter * parent, tr_file_t * files ) 544 { 545 GtkTreeModel * model; 546 GtkTreeIter iter; 547 int index; 548 uint64_t mysize, subsize; 549 char * sizestr, * name, * label; 550 551 model = GTK_TREE_MODEL( store ); 552 mysize = 0; 553 if( gtk_tree_model_iter_children( model, &iter, parent ) ) 554 { 555 do 556 { 557 if( gtk_tree_model_iter_has_child( model, &iter ) ) 558 { 559 subsize = getdirtotals( store, &iter, files ); 560 mysize += subsize; 561 gtk_tree_model_get( model, &iter, FC_LABEL, &name, -1 ); 562 sizestr = readablesize( subsize ); 563 label = g_markup_printf_escaped( _("<small>%s (%s)</small>"), 564 name, sizestr ); 565 g_free( sizestr ); 566 g_free( name ); 567 gtk_tree_store_set( store, &iter, FC_LABEL, label, -1 ); 568 g_free( label ); 569 } 570 else 571 { 572 gtk_tree_model_get( model, &iter, FC_INDEX, &index, -1 ); 573 g_assert( 0 <= index ); 574 mysize += files[index].length; 575 } 576 } 577 while( gtk_tree_model_iter_next( model, &iter ) ); 578 } 579 580 return mysize; 536 581 } 537 582
Note: See TracChangeset
for help on using the changeset viewer.