gtranslator r3525 - in trunk: . src



Author: icq
Date: Mon Mar 24 23:14:08 2008
New Revision: 3525
URL: http://svn.gnome.org/viewvc/gtranslator?rev=3525&view=rev

Log:
2008-03-25  Ignacio Casal Quinteiro  <nacho resa gmail com>

        * src/actions-go.c:
        * src/window.ch:
        * src/statusbar.ch:
        * src/actions-file.c:
        Now progress bar is inside of our statusbar class.
        (Fixes bug #514758).



Modified:
   trunk/ChangeLog
   trunk/src/actions-file.c
   trunk/src/actions-go.c
   trunk/src/statusbar.c
   trunk/src/statusbar.h
   trunk/src/window.c
   trunk/src/window.h

Modified: trunk/src/actions-file.c
==============================================================================
--- trunk/src/actions-file.c	(original)
+++ trunk/src/actions-file.c	Mon Mar 24 23:14:08 2008
@@ -32,6 +32,7 @@
 #include "file-dialogs.h"
 #include "notebook.h"
 #include "po.h"
+#include "statusbar.h"
 #include "tab.h"
 #include "window.h"
 
@@ -92,7 +93,9 @@
 	active_view = gtranslator_tab_get_active_view(tab);
 	gtk_widget_grab_focus(GTK_WIDGET(active_view));
 	
-	gtranslator_window_update_progress_bar(window);
+	gtranslator_statusbar_update_progress_bar (GTR_STATUSBAR (gtranslator_window_get_statusbar (window)),
+						   (gdouble)gtranslator_po_get_translated_count (po),
+						   (gdouble)gtranslator_po_get_messages_count (po));
 	
 	return TRUE;
 }

Modified: trunk/src/actions-go.c
==============================================================================
--- trunk/src/actions-go.c	(original)
+++ trunk/src/actions-go.c	Mon Mar 24 23:14:08 2008
@@ -41,8 +41,6 @@
 	po = gtranslator_tab_get_po(current);
 	gtranslator_tab_message_go_to(current,
 				      g_list_first(gtranslator_po_get_current_message(po)));
-	//gtranslator_window_update_statusbar(window);
-	gtranslator_window_update_progress_bar(window);
 	set_sensitive_according_to_message(window, po);
 }
 
@@ -57,8 +55,6 @@
 	po = gtranslator_tab_get_po(current);
 	gtranslator_tab_message_go_to(current,
 				      g_list_previous(gtranslator_po_get_current_message(po)));
-	//gtranslator_window_update_statusbar(window);
-	gtranslator_window_update_progress_bar(window);
 	set_sensitive_according_to_message(window, po);
 }
 
@@ -73,8 +69,6 @@
 	po = gtranslator_tab_get_po(current);
 	gtranslator_tab_message_go_to(current,
 				  g_list_next(gtranslator_po_get_current_message(po)));
-	//gtranslator_window_update_statusbar(window);
-	gtranslator_window_update_progress_bar(window);
 	set_sensitive_according_to_message(window, po);
 }
 
@@ -89,8 +83,6 @@
 	po = gtranslator_tab_get_po(current);
 	gtranslator_tab_message_go_to(current,
 				      g_list_last(gtranslator_po_get_current_message(po)));
-	//gtranslator_window_update_statusbar(window);
-	gtranslator_window_update_progress_bar(window);
 	set_sensitive_according_to_message(window, po);
 }
 
@@ -116,8 +108,6 @@
 	if(msg != NULL)
 	{
 		gtranslator_tab_message_go_to(current, msg);
-	//	gtranslator_window_update_statusbar(window);
-		gtranslator_window_update_progress_bar(window);
 		set_sensitive_according_to_message(window, po);
 	}
 }
@@ -136,8 +126,6 @@
 	if(msg != NULL)
 	{
 		gtranslator_tab_message_go_to(current, msg);
-		//gtranslator_window_update_statusbar(window);
-		gtranslator_window_update_progress_bar(window);
 		set_sensitive_according_to_message(window, po);
 	}
 }
@@ -156,8 +144,6 @@
 	if(msg != NULL)
 	{
 		gtranslator_tab_message_go_to(current, msg);
-		//gtranslator_window_update_statusbar(window);
-		gtranslator_window_update_progress_bar(window);
 		set_sensitive_according_to_message(window, po);
 	}
 }
@@ -176,8 +162,6 @@
 	if(msg != NULL)
 	{
 		gtranslator_tab_message_go_to(current, msg);
-//		gtranslator_window_update_statusbar(window);
-		gtranslator_window_update_progress_bar(window);
 		set_sensitive_according_to_message(window, po);
 	}
 }

Modified: trunk/src/statusbar.c
==============================================================================
--- trunk/src/statusbar.c	(original)
+++ trunk/src/statusbar.c	Mon Mar 24 23:14:08 2008
@@ -34,6 +34,9 @@
 
 struct _GtranslatorStatusbarPrivate
 {
+	GtkWidget *statusbar;
+	GtkWidget *progress_bar;
+	
 	GtkWidget     *overwrite_mode_label;
 
 	/* tmp flash timeout data */
@@ -42,7 +45,7 @@
 	guint          flash_message_id;
 };
 
-G_DEFINE_TYPE(GtranslatorStatusbar, gtranslator_statusbar, GTK_TYPE_STATUSBAR)
+G_DEFINE_TYPE(GtranslatorStatusbar, gtranslator_statusbar, GTK_TYPE_HBOX)
 
 static void
 gtranslator_statusbar_finalize (GObject *object)
@@ -68,13 +71,32 @@
 static void
 gtranslator_statusbar_init (GtranslatorStatusbar *statusbar)
 {
-	
 	GtkWidget *frame;
 	GtkShadowType shadow_type;
 
 	statusbar->priv = GTR_STATUSBAR_GET_PRIVATE (statusbar);
 	
-	gtk_widget_style_get (GTK_WIDGET (statusbar), "shadow-type", &shadow_type, NULL);
+	/*
+	 * Statusbar
+	 */
+	statusbar->priv->statusbar = gtk_statusbar_new ();
+	gtk_widget_show (statusbar->priv->statusbar);
+	gtk_box_pack_end (GTK_BOX (statusbar), statusbar->priv->statusbar,
+			  TRUE, TRUE, 0);
+	
+	/*
+	 * Progress bar
+	 */
+	statusbar->priv->progress_bar = gtk_progress_bar_new ();
+	gtk_widget_show (statusbar->priv->progress_bar);
+	gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->progress_bar,
+			    FALSE, FALSE, 0);
+	
+	/*
+	 * Ins/Ovr stuff
+	 */
+	gtk_widget_style_get (GTK_WIDGET (statusbar->priv->statusbar),
+			      "shadow-type", &shadow_type, NULL);
 	
 	frame = gtk_frame_new (NULL);
 	gtk_frame_set_shadow_type (GTK_FRAME (frame), shadow_type);
@@ -90,8 +112,8 @@
 	gtk_container_add (GTK_CONTAINER (frame), statusbar->priv->overwrite_mode_label);
 	gtk_widget_show (statusbar->priv->overwrite_mode_label);
 	
-	gtk_box_pack_start (GTK_BOX (statusbar), frame, FALSE, FALSE, 0);
-	
+	gtk_box_pack_start (GTK_BOX (statusbar->priv->statusbar), frame,
+			    FALSE, FALSE, 0);
 }
 
 /**
@@ -107,6 +129,27 @@
 	return GTK_WIDGET (g_object_new (GTR_TYPE_STATUSBAR, NULL));
 }
 
+guint
+gtranslator_statusbar_push (GtranslatorStatusbar *statusbar,
+			    guint context_id,
+			    const gchar *text)
+{
+	g_return_if_fail (GTR_IS_STATUSBAR (statusbar));
+	
+	return gtk_statusbar_push (GTK_STATUSBAR (statusbar->priv->statusbar),
+				   context_id, text);
+}
+
+void
+gtranslator_statusbar_pop (GtranslatorStatusbar *statusbar,
+			   guint context_id)
+{
+	g_return_if_fail (GTR_IS_STATUSBAR (statusbar));
+	
+	gtk_statusbar_pop (GTK_STATUSBAR (statusbar->priv->statusbar),
+			   context_id);
+}
+
 /**
  * gtranslator_statusbar_set_overwrite:
  * @statusbar: a #GtranslatorStatusbar
@@ -136,7 +179,7 @@
 static gboolean
 remove_message_timeout (GtranslatorStatusbar *statusbar)
 {
-	gtk_statusbar_remove (GTK_STATUSBAR (statusbar),
+	gtk_statusbar_remove (GTK_STATUSBAR (statusbar->priv->statusbar),
 			      statusbar->priv->flash_context_id,
 			      statusbar->priv->flash_message_id);
 
@@ -181,7 +224,7 @@
 	}
 
 	statusbar->priv->flash_context_id = context_id;
-	statusbar->priv->flash_message_id = gtk_statusbar_push (GTK_STATUSBAR (statusbar),
+	statusbar->priv->flash_message_id = gtk_statusbar_push (GTK_STATUSBAR (statusbar->priv->statusbar),
 								context_id,
 								msg);
 
@@ -191,3 +234,33 @@
 
 	g_free (msg);
 }
+
+/*
+ * Update the progress bar
+ */
+void
+gtranslator_statusbar_update_progress_bar (GtranslatorStatusbar *statusbar,
+					   gdouble translated_count,
+					   gdouble messages_count)
+{
+	gdouble percentage;
+	
+	g_return_if_fail (GTR_IS_STATUSBAR (statusbar));
+	
+	/*
+	 * Calculate the percentage.
+	 */
+	percentage = translated_count / messages_count;
+	
+	/*
+	 * Set the progress only if the values are reasonable.
+	 */
+	if(percentage > 0.0 || percentage < 1.0)
+	{
+		/*
+		 * Set the progressbar status.
+		 */
+		gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (statusbar->priv->progress_bar),
+					       percentage);
+	}
+}

Modified: trunk/src/statusbar.h
==============================================================================
--- trunk/src/statusbar.h	(original)
+++ trunk/src/statusbar.h	Mon Mar 24 23:14:08 2008
@@ -21,7 +21,7 @@
 #ifndef GTR_STATUSBAR_H
 #define GTR_STATUSBAR_H
 
-#include <gtk/gtkstatusbar.h>
+#include <gtk/gtkhbox.h>
 
 G_BEGIN_DECLS
 
@@ -38,7 +38,7 @@
 
 struct _GtranslatorStatusbar
 {
-        GtkStatusbar parent;
+        GtkHBox parent;
 
 	/* <private/> */
         GtranslatorStatusbarPrivate *priv;
@@ -46,13 +46,19 @@
 
 struct _GtranslatorStatusbarClass
 {
-        GtkStatusbarClass parent_class;
+        GtkHBoxClass parent_class;
 };
 
-GType		 gtranslator_statusbar_get_type		(void) G_GNUC_CONST;
+GType		 gtranslator_statusbar_get_type	                (void) G_GNUC_CONST;
 
 GtkWidget	*gtranslator_statusbar_new			(void);
 
+guint            gtranslator_statusbar_push                     (GtranslatorStatusbar *statusbar,
+								 guint context_id,
+								 const gchar *text);
+
+void             gtranslator_statusbar_pop                      (GtranslatorStatusbar *statusbar,
+								 guint context_id);
 
 void		 gtranslator_statusbar_set_overwrite		(GtranslatorStatusbar   *statusbar,
 								 gboolean          overwrite);
@@ -63,6 +69,11 @@
 							 	 guint             context_id,
 							 	 const gchar      *format,
 							 	 ...) G_GNUC_PRINTF(3, 4);
+
+void             gtranslator_statusbar_update_progress_bar      (GtranslatorStatusbar *statusbar,
+								 gdouble translated_count,
+								 gdouble messages_count);
+
 G_END_DECLS
 
 #endif

Modified: trunk/src/window.c
==============================================================================
--- trunk/src/window.c	(original)
+++ trunk/src/window.c	Mon Mar 24 23:14:08 2008
@@ -77,9 +77,7 @@
 	GtkWidget *statusbar;
 	guint generic_message_cid;
 	guint tip_message_cid;
-	
-	GtkWidget *progressbar;
-	
+		
 	GtkUIManager *ui_manager;
 	GtkRecentManager *recent_manager;
 	GtkWidget *recent_menu;
@@ -716,12 +714,12 @@
 	msg = g_strconcat("    ", current, "    ", status_msg, "    ", total,
 			  "    ", fuzzy_msg, "    ", untranslated_msg, NULL);
 	
-	gtk_statusbar_pop(GTK_STATUSBAR(window->priv->statusbar),
-			  0);
+	gtranslator_statusbar_pop (GTR_STATUSBAR (window->priv->statusbar),
+				   0);
 	
-	gtk_statusbar_push(GTK_STATUSBAR(window->priv->statusbar),
-			   0,
-			   msg);
+	gtranslator_statusbar_push (GTR_STATUSBAR (window->priv->statusbar),
+				    0,
+				    msg);
 	
 	g_free(msg);			 
 	g_free(current);
@@ -729,6 +727,13 @@
 	g_free(total);
 	g_free(fuzzy_msg);
 	g_free(untranslated_msg);
+	
+	/*
+	 * We have to update the progress bar too
+	 */
+	gtranslator_statusbar_update_progress_bar (GTR_STATUSBAR (window->priv->statusbar),
+						   (gdouble)gtranslator_po_get_translated_count (po),
+						   (gdouble)gtranslator_po_get_messages_count (po));
 }
 
 static GtranslatorWindow *
@@ -1299,16 +1304,9 @@
 	hbox = gtk_hbox_new(FALSE, 0);
 	gtk_box_pack_start( GTK_BOX(priv->main_box), hbox, FALSE, FALSE, 0);
 	gtk_widget_show(hbox);
-	
-	/*
-	 * progressbar
-	 */
-	priv->progressbar = gtk_progress_bar_new();
-	gtk_box_pack_start( GTK_BOX(hbox), priv->progressbar, FALSE, FALSE, 0);
-	gtk_widget_show(priv->progressbar);
 			
 	/*
-	 * statusbar
+	 * statusbar & progress bar
 	 */
 	window->priv->statusbar = gtranslator_statusbar_new ();
 
@@ -1563,10 +1561,10 @@
 	return GTR_NOTEBOOK(window->priv->notebook);
 }
 
-GtkStatusbar *
+GtkWidget *
 gtranslator_window_get_statusbar(GtranslatorWindow *window)
 {
-	return GTK_STATUSBAR(window->priv->statusbar);
+	return window->priv->statusbar;
 }
 
 GtkUIManager *
@@ -1637,38 +1635,6 @@
 	return views;
 }
 
-/*
- * Update the progress bar
- */
-void 
-gtranslator_window_update_progress_bar(GtranslatorWindow *window)
-{
-	gdouble percentage;
-	GtranslatorTab *current_page;
-	GtranslatorPo *po;
-	
-	current_page = gtranslator_window_get_active_tab(window);
-	po = gtranslator_tab_get_po(current_page);
-	
-	/*
-	 * Calculate the percentage.
-	 */
-	percentage = (gdouble)(gtranslator_po_get_translated_count(po)
-			       / (gdouble)gtranslator_po_get_messages_count(po));
-	
-	/*
-	 * Set the progress only if the values are reasonable.
-	 */
-	if(percentage > 0.0 || percentage < 1.0)
-	{
-		/*
-		 * Set the progressbar status.
-		 */
-		gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(window->priv->progressbar),
-					      percentage);
-	}
-}
-
 void
 gtranslator_window_add_widget (GtranslatorWindow *window,
 			       GtkWidget *widget,

Modified: trunk/src/window.h
==============================================================================
--- trunk/src/window.h	(original)
+++ trunk/src/window.h	Mon Mar 24 23:14:08 2008
@@ -94,7 +94,7 @@
 GtranslatorNotebook *gtranslator_window_get_notebook     (GtranslatorWindow *window);
 GtranslatorHeader *gtranslator_window_get_header_from_active_tab (GtranslatorWindow *window);
 
-GtkStatusbar 	 *gtranslator_window_get_statusbar    (GtranslatorWindow *window);
+GtkWidget        *gtranslator_window_get_statusbar    (GtranslatorWindow *window);
 
 GtkUIManager     *gtranslator_window_get_ui_manager   (GtranslatorWindow *window);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]