Changeset 4317


Ignore:
Timestamp:
Dec 24, 2007, 5:25:52 PM (14 years ago)
Author:
charles
Message:

(gtk) add a filter/total count at the bottom of the main window.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/tr_window.c

    r4304 r4317  
    8181    GtkWidget * dl_lb;
    8282    GtkWidget * stats_lb;
     83    GtkWidget * gutter_lb;
    8384    GtkTreeSelection  * selection;
    8485    GtkCellRenderer   * renderer;
     
    338339}
    339340
     341static void updateTorrentCount( PrivateData * p );
     342
    340343static void
    341344refilter( PrivateData * p )
    342345{
    343346    gtk_tree_model_filter_refilter( GTK_TREE_MODEL_FILTER( p->filter_model ) );
     347
     348    updateTorrentCount( p );
    344349}
    345350
     
    438443        N_("Name"), N_("Files"), N_("Tracker")
    439444    };
     445
     446    p->filter_mode = FILTER_MODE_ALL;
     447    p->filter_text_mode = FILTER_TEXT_MODE_NAME;
     448    p->filter_text = NULL;
    440449
    441450    /* make the window */
     
    562571    gtk_box_pack_start( GTK_BOX(vbox), w, FALSE, FALSE, 0 );
    563572
     573    /* status */
     574    h = gtk_hbox_new( FALSE, GUI_PAD );
     575    w = p->gutter_lb = gtk_label_new( "N transfers" );
     576    gtk_box_pack_start_defaults( GTK_BOX(h), w );
     577    gtk_box_pack_start( GTK_BOX(vbox), h, FALSE, FALSE, 0 );
     578
    564579    /* show all but the window */
    565580    gtk_widget_show_all( vbox );
     
    578593}
    579594
     595static void
     596updateTorrentCount( PrivateData * p )
     597{
     598    if( p && p->core )
     599    {
     600        char buf[128];
     601        const int torrentCount = gtk_tree_model_iter_n_children( tr_core_model( p->core ), NULL );
     602        const int visibleCount = gtk_tree_model_iter_n_children( p->filter_model, NULL );
     603
     604        if( torrentCount != visibleCount )
     605            g_snprintf( buf, sizeof( buf ), ngettext( _( "%d of %d Transfer" ),
     606                                                      _( "%d of %d Transfers" ),
     607                                                      torrentCount ),
     608                                            visibleCount, torrentCount );
     609        else
     610            g_snprintf( buf, sizeof( buf ), ngettext( _( "%d Transfer" ),
     611                                                      _( "%d Transfers" ),
     612                                                      torrentCount ),
     613                                            torrentCount );
     614        gtk_label_set_text( GTK_LABEL( p->gutter_lb ), buf );
     615    }
     616}
     617
     618
    580619void
    581620tr_window_update( TrWindow * self )
     
    591630        char * pch;
    592631        float u, d;
    593         char up[32], down[32], buf[64];
     632        char up[32], down[32], buf[128];
    594633        struct tr_session_stats stats;
    595634
     635        /* update the speeds */
    596636        tr_torrentRates( handle, &d, &u );
    597637        tr_strlspeed( buf, d, sizeof( buf ) );
     
    600640        gtk_label_set_text( GTK_LABEL( p->ul_lb ), buf );
    601641
     642        updateTorrentCount( p );
     643
     644        /* update the stats */
    602645        pch = pref_string_get( PREF_KEY_STATUS_BAR_STATS );
    603646        if( !strcmp( pch, "session-ratio" ) ) {
Note: See TracChangeset for help on using the changeset viewer.