gedit r6928 - in trunk: . gedit plugins/time



Author: pborelli
Date: Sun Mar  1 15:26:54 2009
New Revision: 6928
URL: http://svn.gnome.org/viewvc/gedit?rev=6928&view=rev

Log:
2009-03-01  Paolo Borelli  <pborelli katamail com>

	* gedit/gedit-utils.c: properly handle vararg in error path.
	* plugins/time/gedit-time-plugin.c: handle error more correctly.



Modified:
   trunk/ChangeLog
   trunk/gedit/gedit-utils.c
   trunk/plugins/time/gedit-time-plugin.c

Modified: trunk/gedit/gedit-utils.c
==============================================================================
--- trunk/gedit/gedit-utils.c	(original)
+++ trunk/gedit/gedit-utils.c	Sun Mar  1 15:26:54 2009
@@ -1016,8 +1016,7 @@
 }
 
 static GtkWidget *
-handle_builder_error (const gchar *message,
-		      ...)
+handle_builder_error (const gchar *message, ...)
 {
 	GtkWidget *label;
 	gchar *msg;
@@ -1025,16 +1024,18 @@
 	va_list args;
 
 	va_start (args, message);
-	va_arg (args, const gchar *);
 	msg_plain = g_strdup_vprintf (message, args);
+	va_end (args);
+
+	label = gtk_label_new (NULL);
+	gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
 
 	msg = g_strconcat ("<span size=\"large\" weight=\"bold\">",
-			msg_plain, "</span>\n\n",
-			_("Please check your installation."), NULL);
-	label = gtk_label_new (msg);
+			   msg_plain, "</span>\n\n",
+			   _("Please check your installation."),
+			   NULL);
 
-	gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
-	gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+	gtk_label_set_markup (GTK_LABEL (label), msg);
 
 	g_free (msg_plain);
 	g_free (msg);

Modified: trunk/plugins/time/gedit-time-plugin.c
==============================================================================
--- trunk/plugins/time/gedit-time-plugin.c	(original)
+++ trunk/plugins/time/gedit-time-plugin.c	Sun Mar  1 15:26:54 2009
@@ -931,6 +931,10 @@
 	GtkWidget *error_widget;
 	gboolean ret;
 	gchar *sf, *cf;
+	GtkWindowGroup *wg = NULL;
+	
+	if (parent != NULL)
+		wg = parent->group;
 
 	dialog = g_new0 (ChooseFormatDialog, 1);
 
@@ -952,17 +956,39 @@
 
 	if (!ret)
 	{
-		const gchar *err_message;
+		GtkWidget *err_dialog;
 
-		err_message = gtk_label_get_label (GTK_LABEL (error_widget));
-		gedit_warning (parent, "%s", err_message);
+		err_dialog = gtk_dialog_new_with_buttons (NULL,
+			parent,
+			GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+			GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
+			NULL);
 
-		g_free (dialog);
-		gtk_widget_destroy (error_widget);
+		if (wg != NULL)
+			gtk_window_group_add_window (wg, GTK_WINDOW (err_dialog));
+
+		gtk_window_set_resizable (GTK_WINDOW (err_dialog), FALSE);
+		gtk_dialog_set_has_separator (GTK_DIALOG (err_dialog), FALSE);
+		gtk_dialog_set_default_response (GTK_DIALOG (err_dialog), GTK_RESPONSE_OK);
+
+		gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (err_dialog))),
+				   error_widget);
+
+		g_signal_connect (G_OBJECT (err_dialog),
+				  "response",
+				  G_CALLBACK (gtk_widget_destroy),
+				  NULL);
+
+		gtk_widget_show_all (err_dialog);
 
 		return NULL;
 	}
 
+	gtk_window_group_add_window (wg,
+			     	     GTK_WINDOW (dialog->dialog));
+	gtk_window_set_transient_for (GTK_WINDOW (dialog->dialog), parent);
+	gtk_window_set_modal (GTK_WINDOW (dialog->dialog), TRUE);
+
 	sf = get_selected_format (plugin);
 	create_formats_list (dialog->list, sf, plugin);
 	g_free (sf);
@@ -1113,32 +1139,23 @@
 	}
         else
         {
-        	GtkWindowGroup *wg;
 		ChooseFormatDialog *dialog;
 
 		dialog = get_choose_format_dialog (GTK_WINDOW (data->window),
 						   prompt_type,
 						   data->plugin);
-		g_return_if_fail (dialog != NULL);
-
-		wg = gedit_window_get_group (data->window);
-
-		gtk_window_group_add_window (wg,
-				     	     GTK_WINDOW (dialog->dialog));
-
-		gtk_window_set_transient_for (GTK_WINDOW (dialog->dialog),
-					      GTK_WINDOW (data->window));
-		gtk_window_set_modal (GTK_WINDOW (dialog->dialog), TRUE);
-
-		dialog->buffer = buffer;
-		dialog->plugin = data->plugin;
+		if (dialog != NULL)
+		{
+			dialog->buffer = buffer;
+			dialog->plugin = data->plugin;
 
-		g_signal_connect (dialog->dialog,
-				  "response",
-				  G_CALLBACK (choose_format_dialog_response_cb),
-				  dialog);
+			g_signal_connect (dialog->dialog,
+					  "response",
+					  G_CALLBACK (choose_format_dialog_response_cb),
+					  dialog);
 
-		gtk_widget_show (GTK_WIDGET (dialog->dialog));
+			gtk_widget_show (GTK_WIDGET (dialog->dialog));
+		}
 
 		return;
 	}



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