[gnome-disk-utility/new-ui] Add a expander with detailed error message
- From: David Zeuthen <davidz src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility/new-ui] Add a expander with detailed error message
- Date: Mon, 26 Oct 2009 18:36:47 +0000 (UTC)
commit c5379ed3ef72a2cc7b470903930605ddcb40bfc0
Author: David Zeuthen <davidz redhat com>
Date: Mon Oct 26 14:35:33 2009 -0400
Add a expander with detailed error message
src/gdu-gtk/gdu-error-dialog.c | 35 ++++++++++++++++++++++++++++++++---
1 files changed, 32 insertions(+), 3 deletions(-)
---
diff --git a/src/gdu-gtk/gdu-error-dialog.c b/src/gdu-gtk/gdu-error-dialog.c
index 04c2cea..2738d97 100644
--- a/src/gdu-gtk/gdu-error-dialog.c
+++ b/src/gdu-gtk/gdu-error-dialog.c
@@ -145,11 +145,13 @@ static void
gdu_error_dialog_constructed (GObject *object)
{
GduErrorDialog *dialog = GDU_ERROR_DIALOG (object);
+ GtkWidget *button;
GtkWidget *content_area;
GtkWidget *hbox;
GtkWidget *vbox;
GtkWidget *image;
GtkWidget *label;
+ GtkWidget *expander;
gchar *s;
GIcon *icon;
GEmblem *emblem;
@@ -158,18 +160,22 @@ gdu_error_dialog_constructed (GObject *object)
gchar *name;
gchar *vpd_name;
const gchar *error_msg;
+ GtkWidget *scrolled_window;
+ GtkWidget *text_view;
+ GtkTextBuffer *buffer;
icon = NULL;
name = NULL;
vpd_name = NULL;
gtk_window_set_title (GTK_WINDOW (dialog), _(""));
+ gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
gtk_container_set_border_width (GTK_CONTAINER (dialog), 12);
- gtk_dialog_add_button (GTK_DIALOG (dialog),
- GTK_STOCK_CLOSE,
- GTK_RESPONSE_CLOSE);
+ button = gtk_dialog_add_button (GTK_DIALOG (dialog),
+ GTK_STOCK_CLOSE,
+ GTK_RESPONSE_CLOSE);
content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
@@ -244,6 +250,27 @@ gdu_error_dialog_constructed (GObject *object)
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+ s = g_strdup_printf ("<b>%s</b>", _("_Details"));
+ expander = gtk_expander_new (s);
+ g_free (s);
+ gtk_expander_set_use_markup (GTK_EXPANDER (expander), TRUE);
+ gtk_expander_set_use_underline (GTK_EXPANDER (expander), TRUE);
+ gtk_box_pack_start (GTK_BOX (vbox), expander, FALSE, FALSE, 0);
+
+ scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
+ GTK_SHADOW_IN);
+ buffer = gtk_text_buffer_new (NULL);
+ gtk_text_buffer_set_text (buffer, dialog->priv->error->message, -1);
+ text_view = gtk_text_view_new_with_buffer (buffer);
+ g_object_unref (buffer);
+ gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
+ gtk_container_add (GTK_CONTAINER (expander), scrolled_window);
+ gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
+
g_object_unref (icon);
g_object_unref (emblem);
g_object_unref (error_icon);
@@ -252,6 +279,8 @@ gdu_error_dialog_constructed (GObject *object)
g_free (name);
g_free (vpd_name);
+ gtk_widget_grab_focus (button);
+
if (G_OBJECT_CLASS (gdu_error_dialog_parent_class)->constructed != NULL)
G_OBJECT_CLASS (gdu_error_dialog_parent_class)->constructed (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]