]> granicus.if.org Git - transmission/commitdiff
(trunk gtk) #2019: HiG: "When there is no interesting status to report, leave a statu...
authorCharles Kerr <charles@transmissionbt.com>
Fri, 1 May 2009 19:39:34 +0000 (19:39 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Fri, 1 May 2009 19:39:34 +0000 (19:39 +0000)
gtk/tr-window.c

index cdcd49e3520cf6807251b13d85b8e017fca5f4ee..53a6324a266cbb7aa138e763c3a9a10ef5bc8690 100644 (file)
@@ -83,8 +83,12 @@ typedef struct
     GtkWidget *           filter;
     GtkWidget *           status;
     GtkWidget *           status_menu;
+    GtkWidget *           ul_hbox;
+    GtkWidget *           dl_hbox;
     GtkWidget *           ul_lb;
+    GtkWidget *           ul_image;
     GtkWidget *           dl_lb;
+    GtkWidget *           dl_image;
     GtkWidget *           stats_lb;
     GtkWidget *           gutter_lb;
     GtkWidget *           alt_speed_image[2]; /* 0==off, 1==on */
@@ -797,7 +801,7 @@ tr_window_new( GtkUIManager * ui_mgr, TrCore * core )
     const char *  pch;
     PrivateData * p;
     GtkWidget   *mainmenu, *toolbar, *filter, *list, *status;
-    GtkWidget *   vbox, *w, *self, *h, *c, *s, *image, *menu;
+    GtkWidget *   vbox, *w, *self, *h, *c, *s, *hbox, *image, *menu;
     GtkWindow *   win;
     GSList *      l;
 
@@ -920,31 +924,40 @@ tr_window_new( GtkUIManager * ui_mgr, TrCore * core )
         w = p->gutter_lb = gtk_label_new( "N Torrents" );
         gtk_box_pack_start( GTK_BOX( h ), w, 1, 1, GUI_PAD_BIG );
 
-        w = p->ul_lb = gtk_label_new( NULL );
-        gtk_box_pack_end( GTK_BOX( h ), w, FALSE, FALSE, 0 );
-        w = gtk_image_new_from_stock( GTK_STOCK_GO_UP, GTK_ICON_SIZE_MENU );
-        gtk_box_pack_end( GTK_BOX( h ), w, FALSE, FALSE, 0 );
-
-        w = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
-        gtk_widget_set_size_request( w, GUI_PAD, 0u );
-        gtk_box_pack_end( GTK_BOX( h ), w, FALSE, FALSE, 0 );
-        w = p->dl_lb = gtk_label_new( NULL );
-        gtk_box_pack_end( GTK_BOX( h ), w, FALSE, FALSE, 0 );
-
-        w = gtk_image_new_from_stock( GTK_STOCK_GO_DOWN, GTK_ICON_SIZE_MENU );
-        gtk_box_pack_end( GTK_BOX( h ), w, FALSE, FALSE, 0 );
-        w = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
-        gtk_widget_set_size_request( w, GUI_PAD, 0u );
-        gtk_box_pack_end( GTK_BOX( h ), w, FALSE, FALSE, 0 );
-        w = p->stats_lb = gtk_label_new( NULL );
-        gtk_box_pack_end( GTK_BOX( h ), w, FALSE, FALSE, 0 );
-
-        w = gtk_image_new_from_stock( GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU );
-        c = gtk_event_box_new( );
-        gtk_container_add( GTK_CONTAINER( c ), w );
-        w = c;
-        gtk_box_pack_end( GTK_BOX( h ), w, FALSE, FALSE, 0 );
-        g_signal_connect( w, "button-release-event", G_CALLBACK( onYinYangReleased ), p );
+        hbox = p->dl_hbox = gtk_hbox_new( FALSE, GUI_PAD_SMALL );
+            w = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
+            gtk_widget_set_size_request( w, GUI_PAD, 0u );
+            gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 );
+            w = p->dl_image = gtk_image_new_from_stock( GTK_STOCK_GO_DOWN, GTK_ICON_SIZE_MENU );
+            gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 );
+            w = p->dl_lb = gtk_label_new( NULL );
+            gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); 
+        gtk_box_pack_end( GTK_BOX( h ), hbox, FALSE, FALSE, 0 );
+
+        hbox = p->ul_hbox = gtk_hbox_new( FALSE, GUI_PAD_SMALL );
+            w = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
+            gtk_widget_set_size_request( w, GUI_PAD, 0u );
+            gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 );
+            w = p->ul_image = gtk_image_new_from_stock( GTK_STOCK_GO_UP, GTK_ICON_SIZE_MENU );
+            gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 );
+            w = p->ul_lb = gtk_label_new( NULL );
+            gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); 
+        gtk_box_pack_end( GTK_BOX( h ), hbox, FALSE, FALSE, 0 );
+
+        hbox = gtk_hbox_new( FALSE, GUI_PAD_SMALL );
+            w = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
+            gtk_widget_set_size_request( w, GUI_PAD, 0u );
+            gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 );
+            w = gtk_image_new_from_stock( GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU );
+            c = gtk_event_box_new( );
+            gtk_container_add( GTK_CONTAINER( c ), w );
+            w = c;
+            g_signal_connect( w, "button-release-event", G_CALLBACK( onYinYangReleased ), p );
+            gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 );
+            w = p->stats_lb = gtk_label_new( NULL );
+            gtk_box_pack_end( GTK_BOX( h ), w, FALSE, FALSE, 0 );
+        gtk_box_pack_end( GTK_BOX( h ), hbox, FALSE, FALSE, 0 );
+
 
     menu = gtk_menu_new( );
     l = NULL;
@@ -1026,16 +1039,17 @@ updateTorrentCount( PrivateData * p )
         const int visibleCount = gtk_tree_model_iter_n_children(
             p->filter_model, NULL );
 
-        if( torrentCount != visibleCount )
+        if( !torrentCount )
+            *buf = '\0';
+        else if( torrentCount != visibleCount )
             g_snprintf( buf, sizeof( buf ),
                         ngettext( "%1$'d of %2$'d Torrent",
                                   "%1$'d of %2$'d Torrents",
                                   torrentCount ),
                         visibleCount, torrentCount );
         else
-            g_snprintf( buf, sizeof( buf ), ngettext( "%'d Torrent",
-                                                      "%'d Torrents",
-                                                      torrentCount ),
+            g_snprintf( buf, sizeof( buf ),
+                        ngettext( "%'d Torrent", "%'d Torrents", torrentCount ),
                         torrentCount );
         gtk_label_set_text( GTK_LABEL( p->gutter_lb ), buf );
     }
@@ -1101,10 +1115,12 @@ updateSpeeds( PrivateData * p )
         d = tr_sessionGetPieceSpeed( session, TR_DOWN );
         tr_strlspeed( buf, d, sizeof( buf ) );
         gtk_label_set_text( GTK_LABEL( p->dl_lb ), buf );
+        g_object_set( p->dl_hbox, "visible", d>=0.01, NULL );
 
         d = tr_sessionGetPieceSpeed( session, TR_UP );
         tr_strlspeed( buf, d, sizeof( buf ) );
         gtk_label_set_text( GTK_LABEL( p->ul_lb ), buf );
+        g_object_set( p->ul_hbox, "visible", d>=0.01, NULL );
     }
 }