[Xfce4-commits] <ristretto:ristretto-0.3> Replace popup with infobar

Stephan Arts noreply at xfce.org
Sat Mar 3 10:56:01 CET 2012


Updating branch refs/heads/ristretto-0.3
         to 161a676aff908a6bcf1397442cfa2f7e043a2266 (commit)
       from 0462262d167566209cfdb8d2cfb5e4452d9c9d77 (commit)

commit 161a676aff908a6bcf1397442cfa2f7e043a2266
Author: Stephan Arts <stephan at xfce.org>
Date:   Sat Mar 3 10:51:06 2012 +0100

    Replace popup with infobar

 src/image_viewer.c |   52 ++++++----------------------------------------------
 src/main_window.c  |   17 +++++++++++++++++
 src/settings.c     |   29 -----------------------------
 3 files changed, 23 insertions(+), 75 deletions(-)

diff --git a/src/image_viewer.c b/src/image_viewer.c
index 14b6780..08a0f64 100644
--- a/src/image_viewer.c
+++ b/src/image_viewer.c
@@ -75,7 +75,6 @@ struct _RsttoImageViewerPriv
     GdkColor                    *bg_color_fs;
 
     GError                      *error;
-    gboolean                     show_broken_image_error;
 
     RsttoImageViewerTransaction *transaction;
     GdkPixbuf                   *pixbuf;
@@ -289,11 +288,6 @@ rstto_image_viewer_init ( GObject *object )
     viewer->priv->visual = gdk_rgb_get_visual();
     viewer->priv->colormap = gdk_colormap_new (viewer->priv->visual, TRUE);
 
-    viewer->priv->show_broken_image_error =
-            rstto_settings_get_boolean_property (
-                    viewer->priv->settings,
-                    "show-error-broken-image");
-
     viewer->priv->icon_theme = gtk_icon_theme_get_default ();
     viewer->priv->bg_icon = gtk_icon_theme_load_icon (
             viewer->priv->icon_theme,
@@ -1433,9 +1427,9 @@ rstto_image_viewer_set_file (
                     g_error_free (viewer->priv->error);
                     viewer->priv->error = NULL;
                 }
-                viewer->priv->image_scale = 0;
-                viewer->priv->image_width = 0;
-                viewer->priv->image_height = 0;
+                viewer->priv->image_scale = 1.0;
+                viewer->priv->image_width = 1.0;
+                viewer->priv->image_height = 1.0;
 
                 rstto_image_viewer_load_image (
                         viewer,
@@ -1923,7 +1917,6 @@ cb_rstto_image_loader_closed (GdkPixbufLoader *loader, RsttoImageViewerTransacti
 {
     RsttoImageViewer *viewer = transaction->viewer;
     GtkWidget *widget = GTK_WIDGET(viewer);
-    GtkWidget *error_dialog = NULL;
     GtkWidget *vbox, *do_not_show_checkbox;
 
     if (viewer->priv->transaction == transaction)
@@ -1940,6 +1933,9 @@ cb_rstto_image_loader_closed (GdkPixbufLoader *loader, RsttoImageViewerTransacti
         }
         else
         {
+            viewer->priv->image_scale = 1.0;
+            viewer->priv->image_width = 1.0;
+            viewer->priv->image_height = 1.0;
             if (viewer->priv->pixbuf)
             {
                 g_object_unref (viewer->priv->pixbuf);
@@ -1947,42 +1943,6 @@ cb_rstto_image_loader_closed (GdkPixbufLoader *loader, RsttoImageViewerTransacti
             }
 
             gtk_widget_set_tooltip_text (GTK_WIDGET (viewer), transaction->error->message);
-            if (viewer->priv->show_broken_image_error)
-            {
-                GDK_THREADS_ENTER();
-                error_dialog = gtk_message_dialog_new_with_markup (
-                        NULL,
-                        0,
-                        GTK_MESSAGE_WARNING,
-                        GTK_BUTTONS_OK,
-                        transaction->error->message
-                        );
-                vbox = gtk_message_dialog_get_message_area (
-                       GTK_MESSAGE_DIALOG (error_dialog));
-
-                do_not_show_checkbox = gtk_check_button_new_with_mnemonic (
-                        _("Do _not show this message again"));
-                gtk_box_pack_end (
-                        GTK_BOX (vbox),
-                        do_not_show_checkbox,
-                        TRUE,
-                        FALSE,
-                        0);
-                gtk_widget_show (do_not_show_checkbox);
-                gtk_dialog_run (GTK_DIALOG(error_dialog));
-
-                if (TRUE == gtk_toggle_button_get_active (
-                        GTK_TOGGLE_BUTTON (do_not_show_checkbox)))
-                {
-                    viewer->priv->show_broken_image_error = FALSE;
-                    rstto_settings_set_boolean_property (
-                        viewer->priv->settings,
-                        "show-error-broken-image",
-                        FALSE);
-                }
-                gtk_widget_destroy (error_dialog);
-                GDK_THREADS_LEAVE();
-            }
         }
 
 
diff --git a/src/main_window.c b/src/main_window.c
index ded829a..2291f03 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -85,6 +85,8 @@ struct _RsttoMainWindowPriv
 
     GtkWidget *menubar;
     GtkWidget *toolbar;
+    GtkWidget *warning;
+    GtkWidget *warning_label;
     GtkWidget *image_list_toolbar;
     GtkWidget *image_viewer_menu;
     GtkWidget *position_menu;
@@ -582,6 +584,16 @@ rstto_main_window_init (RsttoMainWindow *window)
     window->priv->image_list_toolbar = gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar");
     window->priv->image_viewer_menu = gtk_ui_manager_get_widget (window->priv->ui_manager, "/image-viewer-menu");
     window->priv->position_menu = gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar-menu");
+    window->priv->warning = gtk_info_bar_new();
+    window->priv->warning_label = gtk_label_new(NULL);
+
+    GtkWidget *info_bar_content_area = gtk_info_bar_get_content_area (
+            GTK_INFO_BAR (window->priv->warning));
+    gtk_container_add (
+            GTK_CONTAINER (info_bar_content_area),
+            window->priv->warning_label);
+    gtk_widget_show_all (info_bar_content_area);
+    
 
     /**
      * Get the separator toolitem and tell it to expand
@@ -642,6 +654,7 @@ rstto_main_window_init (RsttoMainWindow *window)
     gtk_container_add (GTK_CONTAINER (window), main_vbox);
     gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->menubar, FALSE, FALSE, 0);
     gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->toolbar, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->warning, FALSE, FALSE, 0);
     gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->table, TRUE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->statusbar, FALSE, FALSE, 0);
 
@@ -649,6 +662,7 @@ rstto_main_window_init (RsttoMainWindow *window)
     gtk_table_attach (GTK_TABLE (window->priv->table), window->priv->image_list_toolbar, 0, 1, 0, 3, GTK_FILL, GTK_EXPAND|GTK_FILL, 0, 0);
 
     gtk_widget_set_no_show_all (window->priv->toolbar, TRUE);
+    gtk_widget_set_no_show_all (window->priv->warning, TRUE);
     gtk_widget_set_no_show_all (window->priv->image_list_toolbar, TRUE);
     gtk_widget_set_no_show_all (window->priv->thumbnailbar, TRUE);
     gtk_widget_set_no_show_all ( gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-nav-toolbar"), TRUE);
@@ -1070,9 +1084,12 @@ rstto_main_window_update_statusbar (RsttoMainWindow *window)
                 tmp_status = g_strdup_printf ("%s\t- %s", status, error->message);
                 g_free (status);
                 status = tmp_status;
+                gtk_label_set_text (GTK_LABEL(window->priv->warning_label), error->message);
+                gtk_widget_show (window->priv->warning);
             }
             else
             {
+                gtk_widget_hide (window->priv->warning);
                 if (TRUE == rstto_file_has_exif (cur_file))
                 {
                     /* Extend the status-message with exif-info */
diff --git a/src/settings.c b/src/settings.c
index a455fcd..1d89aca 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -73,7 +73,6 @@ enum
     PROP_MAXIMIZE_ON_STARTUP,
     PROP_MERGE_TOOLBARS,
     PROP_ERROR_MISSING_THUMBNAILER,
-    PROP_ERROR_BROKEN_IMAGE,
     PROP_SORT_TYPE,
 };
 
@@ -130,7 +129,6 @@ struct _RsttoSettingsPriv
 
     struct {
         gboolean missing_thumbnailer;
-        gboolean broken_image;
     } errors;
 };
 
@@ -167,7 +165,6 @@ rstto_settings_init (GObject *object)
     settings->priv->maximize_on_startup = TRUE;
     settings->priv->hide_thumbnailbar_fullscreen = TRUE;
     settings->priv->errors.missing_thumbnailer = TRUE;
-    settings->priv->errors.broken_image = TRUE;
 
     xfconf_g_property_bind (
             settings->priv->channel,
@@ -300,13 +297,6 @@ rstto_settings_init (GObject *object)
 
     xfconf_g_property_bind (
             settings->priv->channel,
-            "/errors/broken-image",
-            G_TYPE_BOOLEAN,
-            settings,
-            "show-error-broken-image");
-
-    xfconf_g_property_bind (
-            settings->priv->channel,
             "/desktop/type",
             G_TYPE_STRING,
             settings,
@@ -545,17 +535,6 @@ rstto_settings_class_init (GObjectClass *object_class)
             PROP_ERROR_MISSING_THUMBNAILER,
             pspec);
 
-    pspec = g_param_spec_boolean (
-            "show-error-broken-image",
-            "",
-            "",
-            TRUE,
-            G_PARAM_READWRITE);
-    g_object_class_install_property (
-            object_class,
-            PROP_ERROR_BROKEN_IMAGE,
-            pspec);
-
     pspec = g_param_spec_uint (
             "sort-type",
             "",
@@ -727,9 +706,6 @@ rstto_settings_set_property    (GObject      *object,
         case PROP_ERROR_MISSING_THUMBNAILER:
             settings->priv->errors.missing_thumbnailer = g_value_get_boolean (value);
             break;
-        case PROP_ERROR_BROKEN_IMAGE:
-            settings->priv->errors.broken_image = g_value_get_boolean (value);
-            break;
         case PROP_SORT_TYPE:
             settings->priv->sort_type = g_value_get_uint ( value );
             break;
@@ -808,11 +784,6 @@ rstto_settings_get_property    (GObject    *object,
                     value,
                     settings->priv->errors.missing_thumbnailer);
             break;
-        case PROP_ERROR_BROKEN_IMAGE:
-            g_value_set_boolean (
-                    value,
-                    settings->priv->errors.broken_image);
-            break;
         case PROP_SORT_TYPE:
             g_value_set_uint (
                     value,


More information about the Xfce4-commits mailing list