Changeset 4235
- Timestamp:
- Dec 20, 2007, 1:33:51 AM (14 years ago)
- Location:
- trunk/gtk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gtk/actions.c
r4221 r4235 100 100 { 101 101 { "minimal-view", NULL, 102 N_("_Minimal View"), "< control>M", NULL, G_CALLBACK(toggle_pref_cb), FALSE },102 N_("_Minimal View"), "<alt>M", NULL, G_CALLBACK(toggle_pref_cb), FALSE }, 103 103 { "sort-reversed", NULL, 104 104 N_("_Reverse Sort Order"), NULL, NULL, G_CALLBACK(toggle_pref_cb), FALSE } … … 113 113 { "help-menu", NULL, N_("_Help"), NULL, NULL, NULL }, 114 114 { "priority-menu", NULL, N_("_Priority"), NULL, NULL, NULL }, 115 { "add-torrent", GTK_STOCK_OPEN, NULL, NULL, N_("Open Torrent"), G_CALLBACK(action_cb) }, 115 { "add-torrent", GTK_STOCK_OPEN, 116 NULL, NULL, N_("Open Torrent"), G_CALLBACK(action_cb) }, 116 117 { "start-torrent", GTK_STOCK_MEDIA_PLAY, 117 118 N_("_Start"), "<control>S", NULL, G_CALLBACK(action_cb) }, … … 165 166 BuiltinIconInfo; 166 167 167 /* only one icon now... but room to grow ;) */168 168 const BuiltinIconInfo my_builtin_icons [] = 169 169 { … … 256 256 257 257 for( i=0, n=G_N_ELEMENTS(pref_toggle_entries); i<n; ++i ) 258 pref_toggle_entries[i].is_active = pref_flag_get( pref_toggle_entries[i].name ); 258 pref_toggle_entries[i].is_active = 259 pref_flag_get( pref_toggle_entries[i].name ); 259 260 260 261 gtk_action_group_add_toggle_actions( action_group, -
trunk/gtk/torrent-cell-renderer.c
r4223 r4235 66 66 67 67 static char* 68 getProgressString( const tr_ torrent * tor, const tr_stat * torStat )68 getProgressString( const tr_info * info, const tr_stat * torStat ) 69 69 { 70 70 const int allDownloaded = torStat->leftUntilDone == 0; 71 71 const uint64_t haveTotal = torStat->haveUnchecked + torStat->haveValid; 72 const tr_info * info = tr_torrentInfo( tor );73 72 const int isSeed = torStat->haveValid >= info->totalSize; 74 char buf1[ 128], buf2[128], buf3[128];73 char buf1[32], buf2[32], buf3[32]; 75 74 char * str; 76 75 … … 100 99 101 100 static char* 102 getShortStatusString( const tr_stat 103 { 104 char upStr[ 64], downStr[64];101 getShortStatusString( const tr_stat * torStat ) 102 { 103 char upStr[32], downStr[32]; 105 104 GString * gstr = g_string_new( NULL ); 106 105 … … 119 118 torStat->recheckProgress * 100.0 ); 120 119 121 case TR_STATUS_DOWNLOAD: 122 tr_strlspeed( downStr, torStat->rateDownload, sizeof(downStr) ) ,120 case TR_STATUS_DOWNLOAD: { 121 tr_strlspeed( downStr, torStat->rateDownload, sizeof(downStr) ); 123 122 tr_strlspeed( upStr, torStat->rateUpload, sizeof(upStr) ); 124 g_string_append_printf( gstr, _("D L: %s, UL: %s"), downStr, upStr );123 g_string_append_printf( gstr, _("Down: %s, Up: %s"), downStr, upStr ); 125 124 break; 125 } 126 126 127 127 case TR_STATUS_SEED: 128 case TR_STATUS_DONE: 128 case TR_STATUS_DONE: { 129 129 tr_strlspeed( upStr, torStat->rateUpload, sizeof(upStr) ); 130 g_string_append_printf( gstr, _("Ratio: %.1f, U L: %s"),130 g_string_append_printf( gstr, _("Ratio: %.1f, Up: %s"), 131 131 torStat->ratio*100.0, upStr ); 132 132 break; 133 } 133 134 134 135 default: … … 165 166 case TR_STATUS_DOWNLOAD: 166 167 g_string_append_printf( gstr, 167 168 169 170 171 168 ngettext( _("Downloading from %d of %d connected peer" ), 169 _("Downloading from %d of %d connected peers" ), 170 torStat->peersConnected ), 171 torStat->peersSendingToUs, 172 torStat->peersConnected ); 172 173 break; 173 174 … … 175 176 case TR_STATUS_SEED: 176 177 g_string_append_printf( gstr, 177 178 179 180 181 178 ngettext( _( "Seeding to %d of %d connected peer" ), 179 _( "Seeding to %d of %d connected peers" ), 180 torStat->peersGettingFromUs ), 181 torStat->peersGettingFromUs, 182 torStat->peersConnected ); 182 183 break; 183 184 } … … 188 189 189 190 if (torStat->status == TR_STATUS_DOWNLOAD) 190 g_string_append_printf( gstr, _(" - D L: %s, UL: %s" ),191 192 191 g_string_append_printf( gstr, _(" - Down: %s, Up: %s" ), 192 tr_strlspeed( dlbuf, torStat->rateDownload, sizeof(dlbuf) ), 193 tr_strlspeed( ulbuf, torStat->rateUpload, sizeof(ulbuf) ) ); 193 194 else 194 g_string_append_printf( gstr, _(" - U L: %s" ),195 195 g_string_append_printf( gstr, _(" - Up: %s" ), 196 tr_strlspeed( ulbuf, torStat->rateUpload, sizeof(ulbuf) ) ); 196 197 } 197 198 … … 215 216 GdkColor color_paused[2]; 216 217 GdkColor color_verified[2]; 218 GdkColor color_verifying[2]; 217 219 GdkColor color_missing[2]; 218 220 GdkColor color_unwanted[2]; 219 221 GdkColor color_unavailable[2]; 220 GdkColor color_verifying[2];221 222 GdkColor color_seeding[2]; 222 223 }; … … 242 243 const tr_stat * torStat = tr_torrentStat( (tr_torrent*)tor ); 243 244 char * str; 244 int tmp_w, tmp_h;245 245 int w=0, h=0; 246 246 struct TorrentCellRendererPrivate * p = self->priv; … … 252 252 { 253 253 int w1, w2, h1, h2; 254 char * shortStatus String= getShortStatusString( torStat );254 char * shortStatus = getShortStatusString( torStat ); 255 255 g_object_set( p->text_renderer, "text", name, NULL ); 256 256 gtk_cell_renderer_get_size( p->text_renderer, 257 257 widget, NULL, NULL, NULL, &w1, &h1 ); 258 str = g_markup_printf_escaped( "<small>%s</small>", shortStatus String);258 str = g_markup_printf_escaped( "<small>%s</small>", shortStatus ); 259 259 g_object_set( p->text_renderer, "markup", str, NULL ); 260 260 gtk_cell_renderer_get_size( p->text_renderer, … … 263 263 w = MAX( w, w1+GUI_PAD_BIG+w2 ); 264 264 g_free( str ); 265 g_free( shortStatus String);265 g_free( shortStatus ); 266 266 } 267 267 else 268 268 { 269 char * progressString = getProgressString( tor, torStat ); 269 int w1, h1; 270 char * progressString = getProgressString( info, torStat ); 270 271 str = g_markup_printf_escaped( "<b>%s</b>\n<small>%s</small>", 271 272 name, progressString ); 272 273 g_object_set( p->text_renderer, "markup", str, NULL ); 273 274 gtk_cell_renderer_get_size( p->text_renderer, 274 widget, NULL, NULL, NULL, & tmp_w, &tmp_h);275 h += tmp_h;276 w = MAX( w, tmp_w);275 widget, NULL, NULL, NULL, &w1, &h1 ); 276 h += h1; 277 w = MAX( w, w1 ); 277 278 g_free( str ); 278 279 g_free( progressString ); … … 282 283 if( !p->minimal ) 283 284 { 285 int w1, h1; 284 286 char * statusString = getStatusString( torStat ); 285 287 str = g_markup_printf_escaped( "<small>%s</small>", statusString ); 286 288 g_object_set( p->text_renderer, "markup", str, NULL ); 287 289 gtk_cell_renderer_get_size( p->text_renderer, 288 widget, NULL, NULL, NULL, & tmp_w, &tmp_h);289 h += tmp_h;290 w = MAX( w, tmp_w);290 widget, NULL, NULL, NULL, &w1, &h1 ); 291 h += h1; 292 w = MAX( w, w1 ); 291 293 g_free( str ); 292 294 g_free( statusString ); … … 362 364 const double verified = torStat->haveValid / (double)info->totalSize; 363 365 const double unverified = torStat->haveUnchecked / (double)info->totalSize; 364 const double unavailable = ( torStat->desiredSize - torStat->desiredAvailable ) / (double)info->totalSize; 365 const double unwanted = ( info->totalSize - torStat->desiredSize ) / (double)info->totalSize; 366 const double unavailable = ( torStat->desiredSize 367 - torStat->desiredAvailable ) / (double)info->totalSize; 368 const double unwanted = ( info->totalSize 369 - torStat->desiredSize ) / (double)info->totalSize; 366 370 #else /* for testing */ 367 371 const double verified = 0.5; … … 437 441 if( isChecking ) { 438 442 const int checkedWidth = torStat->recheckProgress * area->width; 439 int h2 = area->height / 2;443 const int h2 = area->height / 2; 440 444 rect = *area; 441 445 rect.y += h2; … … 463 467 GtkWidget * widget, 464 468 GdkRectangle * background_area, 465 GdkRectangle * cell_area ,466 GdkRectangle * expose_area ,469 GdkRectangle * cell_area UNUSED, 470 GdkRectangle * expose_area UNUSED, 467 471 GtkCellRendererState flags) 468 472 { … … 474 478 const char * name = info->name; 475 479 const tr_stat * torStat = tr_torrentStat( (tr_torrent*)tor ); 476 char * progressString = getProgressString( tor, torStat );480 char * progressString = getProgressString( info, torStat ); 477 481 char * statusString = getStatusString( torStat ); 478 482 char * str; … … 489 493 my_bg.y += ypad; 490 494 my_bg.width -= xpad*2; 491 my_cell = *cell_area; 492 my_cell.x += xpad; 493 my_cell.y += ypad; 494 my_cell.width -= xpad*2; 495 my_expose = *expose_area; 496 my_expose.x += xpad; 497 my_expose.y += ypad; 498 my_expose.width -= xpad*2; 495 my_cell = my_expose = my_bg; 499 496 500 497 /* above the progressbar */ … … 508 505 gtk_cell_renderer_get_size( p->text_renderer, 509 506 widget, NULL, NULL, NULL, &w, &h ); 510 my_bg.height = h;511 my_cell.height = h;507 my_bg.height = 508 my_cell.height = 512 509 my_expose.height = h; 513 510 g_object_set( p->text_renderer, "ellipsize", PANGO_ELLIPSIZE_END, … … 523 520 { 524 521 int w1, w2, h1, h2, tmp_h; 525 char * shortStatus String= getShortStatusString( torStat );522 char * shortStatus = getShortStatusString( torStat ); 526 523 GdkRectangle tmp_bg, tmp_cell, tmp_expose; 527 524 … … 534 531 535 532 /* get the dimensions for the short status string */ 536 str = g_markup_printf_escaped( "<small>%s</small>", shortStatus String);533 str = g_markup_printf_escaped( "<small>%s</small>", shortStatus ); 537 534 g_object_set( p->text_renderer, "markup", str, 538 535 "ellipsize", PANGO_ELLIPSIZE_NONE, … … 545 542 /* short status */ 546 543 tmp_bg.x = my_bg.width - w2; 547 tmp_bg.y = my_bg.y ;544 tmp_bg.y = my_bg.y + (h2-h1)/2; 548 545 tmp_bg.width = w2; 549 546 tmp_bg.height = tmp_h; … … 568 565 569 566 g_free( str ); 570 g_free( shortStatus String);567 g_free( shortStatus ); 571 568 572 569 my_bg.y = tmp_bg.y + tmp_bg.height; … … 591 588 gtk_cell_renderer_get_size( p->text_renderer, 592 589 widget, NULL, NULL, NULL, &w, &h ); 593 my_bg.height = h;594 my_cell.height = h;590 my_bg.height = 591 my_cell.height = 595 592 my_expose.height = h; 596 593 gtk_cell_renderer_render( p->text_renderer, … … 621 618 switch( property_id ) 622 619 { 623 case P_TORRENT: 624 case P_BAR_HEIGHT: 625 case P_MINIMAL: 626 case P_GRADIENT: 620 case P_TORRENT: p->tor = g_value_get_pointer( v ); break; 621 case P_BAR_HEIGHT: p->bar_height = g_value_get_int( v ); break; 622 case P_MINIMAL: p->minimal = g_value_get_boolean( v ); break; 623 case P_GRADIENT: p->gradient = g_value_get_boolean( v ); break; 627 624 case P_SHOW_UNAVAILABLE: p->show_unavailable = g_value_get_boolean( v ); break; 628 625 case P_COLOR_MISSING: v2c( &p->color_missing[0], v ); break; … … 666 663 switch( property_id ) 667 664 { 668 case P_TORRENT: 669 case P_BAR_HEIGHT: 670 case P_MINIMAL: 671 case P_GRADIENT: 665 case P_TORRENT: g_value_set_pointer( v, p->tor ); break; 666 case P_BAR_HEIGHT: g_value_set_int( v, p->bar_height ); break; 667 case P_MINIMAL: g_value_set_boolean( v, p->minimal ); break; 668 case P_GRADIENT: g_value_set_boolean( v, p->gradient ); break; 672 669 case P_SHOW_UNAVAILABLE: g_value_set_boolean( v, p->show_unavailable ); break; 673 670 case P_COLOR_MISSING: c2v( v, &p->color_missing[0] ); break; … … 695 692 { 696 693 GObjectClass * gobject_class = G_OBJECT_CLASS( klass ); 697 GtkCellRendererClass * cell_renderer_class = GTK_CELL_RENDERER_CLASS( klass ); 698 699 g_type_class_add_private( klass, sizeof(struct TorrentCellRendererPrivate) ); 694 GtkCellRendererClass * cell_class = GTK_CELL_RENDERER_CLASS( klass ); 695 696 g_type_class_add_private( klass, 697 sizeof(struct TorrentCellRendererPrivate) ); 700 698 701 699 parent_class = (GtkCellRendererClass*) g_type_class_peek_parent( klass ); 702 700 703 cell_ renderer_class->render = torrent_cell_renderer_render;704 cell_ renderer_class->get_size = torrent_cell_renderer_get_size;701 cell_class->render = torrent_cell_renderer_render; 702 cell_class->get_size = torrent_cell_renderer_get_size; 705 703 gobject_class->set_property = torrent_cell_renderer_set_property; 706 704 gobject_class->get_property = torrent_cell_renderer_get_property; … … 790 788 791 789 p = self->priv = G_TYPE_INSTANCE_GET_PRIVATE( self, 792 793 790 TORRENT_CELL_RENDERER_TYPE, 791 struct TorrentCellRendererPrivate ); 794 792 795 793 p->tor = NULL; -
trunk/gtk/tr_core.c
r4222 r4235 283 283 { 284 284 int col = MC_TORRENT_RAW; 285 GtkSortType type ;285 GtkSortType type = isReversed ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING; 286 286 GtkTreeSortable * sortable = GTK_TREE_SORTABLE( core->model ); 287 287 288 288 if( !strcmp( mode, "sort-by-activity" ) ) 289 {290 type = isReversed ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;291 289 gtk_tree_sortable_set_sort_func( sortable, col, compareByActivity, NULL, NULL ); 292 }293 290 else if( !strcmp( mode, "sort-by-date-added" ) ) 294 {295 type = isReversed ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;296 291 gtk_tree_sortable_set_sort_func( sortable, col, compareByDateAdded, NULL, NULL ); 297 }298 292 else if( !strcmp( mode, "sort-by-progress" ) ) 299 {300 type = isReversed ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;301 293 gtk_tree_sortable_set_sort_func( sortable, col, compareByProgress, NULL, NULL ); 302 }303 294 else if( !strcmp( mode, "sort-by-state" ) ) 304 {305 type = isReversed ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;306 295 gtk_tree_sortable_set_sort_func( sortable, col, compareByState, NULL, NULL ); 307 }308 296 else if( !strcmp( mode, "sort-by-tracker" ) ) 309 {310 type = isReversed ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;311 297 gtk_tree_sortable_set_sort_func( sortable, col, compareByTracker, NULL, NULL ); 312 } 313 else 314 { 298 else { 315 299 type = isReversed ? GTK_SORT_DESCENDING : GTK_SORT_ASCENDING; 316 300 gtk_tree_sortable_set_sort_func( sortable, col, compareByName, NULL, NULL ); 317 301 } 302 318 303 gtk_tree_sortable_set_sort_column_id( sortable, col, type ); 319 304 } … … 322 307 prefsChanged( TrCore * core, const char * key, gpointer data UNUSED ) 323 308 { 324 if( !strcmp( key, PREF_KEY_SORT_MODE ) || !strcmp( key, PREF_KEY_SORT_REVERSED ) ) 309 if( !strcmp( key, PREF_KEY_SORT_MODE ) 310 || !strcmp( key, PREF_KEY_SORT_REVERSED ) ) 325 311 { 326 312 char * mode = pref_string_get( PREF_KEY_SORT_MODE ); … … 348 334 }; 349 335 350 #ifdef REFDBG351 fprintf( stderr, "core %p init\n", self );352 #endif353 354 336 /* create the model used to store torrent data */ 355 337 g_assert( ALEN( types ) == MC_ROW_COUNT ); … … 368 350 static GType type = 0; 369 351 370 if( 0 ==type )352 if( !type ) 371 353 { 372 354 static const GTypeInfo info = -
trunk/gtk/tr_window.c
r4224 r4235 124 124 G_CALLBACK(on_popup_menu), NULL ); 125 125 g_signal_connect( view, "button-press-event", 126 G_CALLBACK(on_tree_view_button_pressed), (void *) on_popup_menu); 126 G_CALLBACK(on_tree_view_button_pressed), 127 (void *) on_popup_menu); 127 128 g_signal_connect( view, "row-activated", 128 129 G_CALLBACK(view_row_activated), NULL); … … 219 220 prefsChanged( core, PREF_KEY_MINIMAL_VIEW, self ); 220 221 p->core = core; 221 p->pref_handler_id = g_signal_connect( core, "prefs-changed", G_CALLBACK(prefsChanged), self ); 222 p->pref_handler_id = g_signal_connect( core, "prefs-changed", 223 G_CALLBACK(prefsChanged), self ); 222 224 223 225 return self; … … 228 230 { 229 231 PrivateData * p = get_private_data( self ); 230 char speedStr[ 64];231 char buf[ 128];232 char speedStr[32]; 233 char buf[64]; 232 234 233 235 tr_strlspeed( speedStr, downspeed, sizeof(speedStr) );
Note: See TracChangeset
for help on using the changeset viewer.