gnome-utils r8349 - trunk/logview
- From: cosimoc svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-utils r8349 - trunk/logview
- Date: Tue, 23 Dec 2008 13:29:11 +0000 (UTC)
Author: cosimoc
Date: Tue Dec 23 13:29:11 2008
New Revision: 8349
URL: http://svn.gnome.org/viewvc/gnome-utils?rev=8349&view=rev
Log:
Use the message area to show errors for single load operations.
Modified:
trunk/logview/gtkmessagearea.c
trunk/logview/logview-app.c
trunk/logview/logview-app.h
trunk/logview/logview-main.c
trunk/logview/logview-manager.c
trunk/logview/logview-window.c
trunk/logview/logview-window.h
Modified: trunk/logview/gtkmessagearea.c
==============================================================================
--- trunk/logview/gtkmessagearea.c (original)
+++ trunk/logview/gtkmessagearea.c Tue Dec 23 13:29:11 2008
@@ -300,8 +300,6 @@
"use-tooltip-style", &use_tooltip_style,
NULL);
- g_print ("use tooltip style: %d\n", use_tooltip_style);
-
gtk_box_set_spacing (GTK_BOX (GTK_MESSAGE_AREA (widget)->priv->action_area),
button_spacing);
gtk_container_set_border_width (GTK_CONTAINER (GTK_MESSAGE_AREA (widget)->priv->action_area),
Modified: trunk/logview/logview-app.c
==============================================================================
--- trunk/logview/logview-app.c (original)
+++ trunk/logview/logview-app.c Tue Dec 23 13:29:11 2008
@@ -26,6 +26,8 @@
#include "logview-window.h"
#include "logview-prefs.h"
+#include <glib/gi18n.h>
+
struct _LogviewAppPrivate {
LogviewPrefs *prefs;
LogviewManager *manager;
@@ -165,16 +167,20 @@
void
logview_app_add_error (LogviewApp *app,
- const char *primary,
+ const char *file_path,
const char *secondary)
{
LogviewWindow *window;
+ char *primary;
g_assert (LOGVIEW_IS_APP (app));
window = app->priv->window;
+ primary = g_strdup_printf (_("Impossible to open the file %s"), file_path);
logview_window_add_error (window, primary, secondary);
+
+ g_free (primary);
}
void
Modified: trunk/logview/logview-app.h
==============================================================================
--- trunk/logview/logview-app.h (original)
+++ trunk/logview/logview-app.h Tue Dec 23 13:29:11 2008
@@ -63,7 +63,7 @@
void logview_app_initialize (LogviewApp *app,
char **log_files);
void logview_app_add_error (LogviewApp *app,
- const char *primary,
+ const char *file_path,
const char *secondary);
void logview_app_add_errors (LogviewApp *app,
GPtrArray *errors);
Modified: trunk/logview/logview-main.c
==============================================================================
--- trunk/logview/logview-main.c (original)
+++ trunk/logview/logview-main.c Tue Dec 23 13:29:11 2008
@@ -35,7 +35,7 @@
static void
app_quit_cb (LogviewApp *app,
- gpointer user_data)
+ gpointer user_data)
{
gtk_main_quit ();
}
Modified: trunk/logview/logview-manager.c
==============================================================================
--- trunk/logview/logview-manager.c (original)
+++ trunk/logview/logview-manager.c Tue Dec 23 13:29:11 2008
@@ -182,11 +182,10 @@
/* notify the error */
path = g_file_get_path (data->file);
- primary = g_strdup_printf (_("Impossible to open the file %s."), path);
if (!data->is_multiple) {
logview_app_add_error (logview_app_get (),
- primary, error->message);
+ path, error->message);
} else {
char **error_arr = g_new0 (char *, 3);
Modified: trunk/logview/logview-window.c
==============================================================================
--- trunk/logview/logview-window.c (original)
+++ trunk/logview/logview-window.c Tue Dec 23 13:29:11 2008
@@ -50,7 +50,10 @@
GtkWidget *version_selector;
GtkWidget *hpaned;
GtkWidget *text_view;
+
GtkWidget *message_area;
+ GtkWidget *message_primary;
+ GtkWidget *message_secondary;
GtkTextTagTable *tag_table;
@@ -924,13 +927,11 @@
populate_style_tag_table (style, logview->priv->tag_table);
}
-/* copy-paste from GEdit */
+/* adapted from GEdit */
static void
-set_message_area_text_and_icon (GtkWidget *message_area,
- const char *icon_stock_id,
- const char *primary_text,
- const char *secondary_text)
+message_area_create_error_box (LogviewWindow *window,
+ GtkWidget *message_area)
{
GtkWidget *hbox_content;
GtkWidget *image;
@@ -939,11 +940,12 @@
char *secondary_markup;
GtkWidget *primary_label;
GtkWidget *secondary_label;
-
+
hbox_content = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox_content);
- image = gtk_image_new_from_stock (icon_stock_id, GTK_ICON_SIZE_DIALOG);
+ image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_ERROR,
+ GTK_ICON_SIZE_DIALOG);
gtk_widget_show (image);
gtk_box_pack_start (GTK_BOX (hbox_content), image, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0);
@@ -952,9 +954,8 @@
gtk_widget_show (vbox);
gtk_box_pack_start (GTK_BOX (hbox_content), vbox, TRUE, TRUE, 0);
- primary_markup = g_strdup_printf ("<b>%s</b>", primary_text);
- primary_label = gtk_label_new (primary_markup);
- g_free (primary_markup);
+
+ primary_label = gtk_label_new (NULL);
gtk_widget_show (primary_label);
gtk_box_pack_start (GTK_BOX (vbox), primary_label, TRUE, TRUE, 0);
gtk_label_set_use_markup (GTK_LABEL (primary_label), TRUE);
@@ -962,25 +963,54 @@
gtk_misc_set_alignment (GTK_MISC (primary_label), 0, 0.5);
GTK_WIDGET_SET_FLAGS (primary_label, GTK_CAN_FOCUS);
gtk_label_set_selectable (GTK_LABEL (primary_label), TRUE);
+ window->priv->message_primary = primary_label;
- if (secondary_text != NULL) {
- secondary_markup = g_strdup_printf ("<small>%s</small>",
- secondary_text);
- secondary_label = gtk_label_new (secondary_markup);
- g_free (secondary_markup);
- gtk_widget_show (secondary_label);
- gtk_box_pack_start (GTK_BOX (vbox), secondary_label, TRUE, TRUE, 0);
- GTK_WIDGET_SET_FLAGS (secondary_label, GTK_CAN_FOCUS);
- gtk_label_set_use_markup (GTK_LABEL (secondary_label), TRUE);
- gtk_label_set_line_wrap (GTK_LABEL (secondary_label), TRUE);
- gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE);
- gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5);
- }
+ secondary_label = gtk_label_new (NULL);
+ gtk_widget_show (secondary_label);
+ gtk_box_pack_start (GTK_BOX (vbox), secondary_label, TRUE, TRUE, 0);
+ GTK_WIDGET_SET_FLAGS (secondary_label, GTK_CAN_FOCUS);
+ gtk_label_set_use_markup (GTK_LABEL (secondary_label), TRUE);
+ gtk_label_set_line_wrap (GTK_LABEL (secondary_label), TRUE);
+ gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5);
+ window->priv->message_secondary = secondary_label;
gtk_message_area_set_contents (GTK_MESSAGE_AREA (message_area),
hbox_content);
}
+static void
+message_area_set_labels (LogviewWindow *window,
+ const char *primary,
+ const char *secondary)
+{
+ char *primary_markup, *secondary_markup;
+
+ primary_markup = g_markup_printf_escaped ("<b>%s</b>", primary);
+ secondary_markup = g_markup_printf_escaped ("<small>%s</small>",
+ secondary);
+
+ gtk_label_set_markup (GTK_LABEL (window->priv->message_primary),
+ primary_markup);
+ gtk_label_set_markup (GTK_LABEL (window->priv->message_secondary),
+ secondary_markup);
+
+ g_free (primary_markup);
+ g_free (secondary_markup);
+}
+
+static void
+message_area_response_cb (GtkMessageArea *message_area,
+ int response_id, gpointer user_data)
+{
+ LogviewWindow *window = user_data;
+
+ gtk_widget_hide (GTK_WIDGET (message_area));
+
+ g_signal_handlers_disconnect_by_func (message_area,
+ message_area_response_cb,
+ user_data);
+}
static void
logview_window_finalize (GObject *object)
@@ -1082,6 +1112,10 @@
/* second pane: error message area */
priv->message_area = gtk_message_area_new ();
+ message_area_create_error_box (logview, priv->message_area);
+ gtk_message_area_add_stock_button_with_text (GTK_MESSAGE_AREA (priv->message_area),
+ _("Close"), GTK_STOCK_CLOSE,
+ GTK_RESPONSE_CLOSE);
gtk_box_pack_start (GTK_BOX (main_view), priv->message_area, FALSE, FALSE, 0);
/* second pane: text view */
@@ -1190,9 +1224,18 @@
const char *primary,
const char *secondary)
{
+ LogviewWindowPrivate *priv;
+
g_assert (LOGVIEW_IS_WINDOW (window));
+ priv = window->priv;
- /* TODO: */
+ message_area_set_labels (window,
+ primary, secondary);
+
+ gtk_widget_show (priv->message_area);
+
+ g_signal_connect (priv->message_area, "response",
+ G_CALLBACK (message_area_response_cb), window);
}
void
Modified: trunk/logview/logview-window.h
==============================================================================
--- trunk/logview/logview-window.h (original)
+++ trunk/logview/logview-window.h Tue Dec 23 13:29:11 2008
@@ -46,6 +46,11 @@
GType logview_window_get_type (void);
/* public methods */
-GtkWidget *logview_window_new (void);
+GtkWidget * logview_window_new (void);
+void logview_window_add_error (LogviewWindow *window,
+ const char *primary,
+ const char *secondary);
+void logview_window_add_errors (LogviewWindow *window,
+ GPtrArray *errors);
#endif /* __LOGVIEW_WINDOW_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]