[gthumb] removed use of EmbeddedDialog and GtkStatusbar



commit 6c0367dc0b2b94d4ed7c80d30996cfed3417b6c0
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Fri Oct 25 19:01:01 2013 +0200

    removed use of EmbeddedDialog and GtkStatusbar

 extensions/catalogs/callbacks.c                    |   18 +-
 extensions/catalogs/dlg-organize-files.c           |    2 +-
 extensions/desktop_background/actions.c            |    2 +-
 extensions/desktop_background/callbacks.c          |    4 +-
 extensions/export_tools/callbacks.c                |    9 +-
 extensions/file_manager/callbacks.c                |   22 +-
 extensions/file_tools/gth-file-tool-flip.c         |    2 +-
 extensions/file_tools/gth-file-tool-mirror.c       |    2 +-
 extensions/file_tools/gth-file-tool-rotate-left.c  |    2 +-
 extensions/file_tools/gth-file-tool-rotate-right.c |    2 +-
 extensions/find_duplicates/callbacks.c             |    2 +-
 extensions/image_viewer/gth-image-viewer-page.c    |    4 +-
 extensions/search/actions.c                        |    3 +-
 extensions/search/actions.h                        |    6 +-
 extensions/search/callbacks.c                      |   13 +-
 extensions/search/gth-search-task.c                |   35 +-
 extensions/selections/callbacks.c                  |   20 +-
 gthumb/Makefile.am                                 |    8 +-
 gthumb/gth-browser.c                               |  132 ++-
 gthumb/gth-browser.h                               |    3 +-
 gthumb/gth-embedded-dialog.c                       |  204 ----
 gthumb/gth-embedded-dialog.h                       |   69 --
 gthumb/gth-info-bar.c                              |   56 +-
 gthumb/gth-info-bar.h                              |   24 +-
 gthumb/gth-location-bar.c                          |  106 ++
 gthumb/gth-location-bar.h                          |   60 ++
 gthumb/gth-statusbar.c                             |  105 +--
 gthumb/gth-statusbar.h                             |    5 +-
 gthumb/gth-toggle-menu-action.c                    |  186 ----
 gthumb/gth-toggle-menu-action.h                    |   62 --
 gthumb/gth-toggle-menu-tool-button.c               | 1070 --------------------
 gthumb/gth-toggle-menu-tool-button.h               |   80 --
 gthumb/resources/gears-menu.ui                     |   20 +-
 33 files changed, 392 insertions(+), 1946 deletions(-)
---
diff --git a/extensions/catalogs/callbacks.c b/extensions/catalogs/callbacks.c
index 6768d88..540d880 100644
--- a/extensions/catalogs/callbacks.c
+++ b/extensions/catalogs/callbacks.c
@@ -32,8 +32,6 @@
 
 
 #define BROWSER_DATA_KEY "catalogs-browser-data"
-#define _RESPONSE_PROPERTIES 1
-#define _RESPONSE_ORGANIZE 2
 #define UPDATE_RENAMED_FILES_DELAY 500
 
 
@@ -308,9 +306,11 @@ catalogs__gth_browser_update_extra_widget_cb (GthBrowser *browser)
                        gtk_button_set_relief (GTK_BUTTON (data->properties_button), GTK_RELIEF_NONE);
                        gtk_widget_set_tooltip_text (data->properties_button, _("Catalog Properties"));
                        gtk_widget_show_all (data->properties_button);
-                       gtk_info_bar_add_action_widget (GTK_INFO_BAR (gth_browser_get_list_extra_widget 
(browser)),
-                                                       data->properties_button,
-                                                       _RESPONSE_PROPERTIES);
+                       gtk_box_pack_start (GTK_BOX (gth_location_bar_get_action_area (GTH_LOCATION_BAR 
(gth_browser_get_location_bar (browser)))),
+                                           data->properties_button,
+                                           FALSE,
+                                           FALSE,
+                                           0);
                        g_signal_connect (data->properties_button,
                                          "clicked",
                                          G_CALLBACK (properties_button_clicked_cb),
@@ -325,9 +325,11 @@ catalogs__gth_browser_update_extra_widget_cb (GthBrowser *browser)
                        g_object_add_weak_pointer (G_OBJECT (data->organize_button), (gpointer 
*)&data->organize_button);
                        gtk_button_set_relief (GTK_BUTTON (data->organize_button), GTK_RELIEF_NONE);
                        gtk_widget_show_all (data->organize_button);
-                       gtk_info_bar_add_action_widget (GTK_INFO_BAR (gth_browser_get_list_extra_widget 
(browser)),
-                                                       data->organize_button,
-                                                       _RESPONSE_ORGANIZE);
+                       gtk_box_pack_start (GTK_BOX (gth_location_bar_get_action_area (GTH_LOCATION_BAR 
(gth_browser_get_location_bar (browser)))),
+                                           data->organize_button,
+                                           FALSE,
+                                           FALSE,
+                                           0);
                        g_signal_connect (data->organize_button,
                                          "clicked",
                                          G_CALLBACK (organize_button_clicked_cb),
diff --git a/extensions/catalogs/dlg-organize-files.c b/extensions/catalogs/dlg-organize-files.c
index 42d7176..e52da70 100644
--- a/extensions/catalogs/dlg-organize-files.c
+++ b/extensions/catalogs/dlg-organize-files.c
@@ -111,7 +111,7 @@ dlg_organize_files (GthBrowser *browser,
        data->builder = _gtk_builder_new_from_file ("organize-files.ui", "catalogs");
        data->dialog = GET_WIDGET ("organize_files_dialog");
 
-       info_bar = gth_info_bar_new (NULL, NULL, NULL);
+       info_bar = gth_info_bar_new ();
        gtk_info_bar_set_message_type (GTK_INFO_BAR (info_bar), GTK_MESSAGE_INFO);
        info_label = gth_info_bar_get_primary_label (GTH_INFO_BAR (info_bar));
        gtk_label_set_ellipsize (GTK_LABEL (info_label), PANGO_ELLIPSIZE_NONE);
diff --git a/extensions/desktop_background/actions.c b/extensions/desktop_background/actions.c
index d4151bb..ed71f72 100644
--- a/extensions/desktop_background/actions.c
+++ b/extensions/desktop_background/actions.c
@@ -217,7 +217,7 @@ wallpaper_data_set (WallpaperData *wdata)
        wallpaper_style_set_as_current (&wdata->new_style);
 
        infobar = gth_browser_get_infobar (wdata->browser);
-       gth_info_bar_set_icon (GTH_INFO_BAR (infobar), GTK_STOCK_DIALOG_INFO);
+       gth_info_bar_set_icon_name (GTH_INFO_BAR (infobar), "dialog-information-symbolic", 
GTK_ICON_SIZE_DIALOG);
 
        {
                char *name;
diff --git a/extensions/desktop_background/callbacks.c b/extensions/desktop_background/callbacks.c
index a102909..8141cd4 100644
--- a/extensions/desktop_background/callbacks.c
+++ b/extensions/desktop_background/callbacks.c
@@ -43,13 +43,13 @@ db__gth_browser_construct_cb (GthBrowser *browser)
                                         browser);
        gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_FILE_SCREEN_ACTIONS),
                                       GTH_MENU_MANAGER_NEW_MERGE_ID,
-                                      _("Desktop Background"),
+                                      _("Set as Desktop Background"),
                                       "win.set-desktop-background",
                                       NULL,
                                       NULL);
        gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_FILE_LIST_SCREEN_ACTIONS),
                                       GTH_MENU_MANAGER_NEW_MERGE_ID,
-                                      _("Desktop Background"),
+                                      _("Set as Desktop Background"),
                                       "win.set-desktop-background",
                                       NULL,
                                       NULL);
diff --git a/extensions/export_tools/callbacks.c b/extensions/export_tools/callbacks.c
index 53e4760..0fb234b 100644
--- a/extensions/export_tools/callbacks.c
+++ b/extensions/export_tools/callbacks.c
@@ -44,8 +44,15 @@ export_tools__gth_browser_construct_cb (GthBrowser *browser)
 
        button = _gtk_menu_button_new_for_header_bar ();
        gtk_widget_set_tooltip_text (button, _("Share"));
-       gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("send-to-symbolic", 
GTK_ICON_SIZE_MENU));
+       gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name 
("folder-publicshare-symbolic", GTK_ICON_SIZE_MENU));
        gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), menu);
        gtk_widget_show_all (button);
        gtk_box_pack_start (GTK_BOX (gth_browser_get_headerbar_section (browser, 
GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS)), button, FALSE, FALSE, 0);
+
+       button = _gtk_menu_button_new_for_header_bar ();
+       gtk_widget_set_tooltip_text (button, _("Share"));
+       gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name 
("folder-publicshare-symbolic", GTK_ICON_SIZE_MENU));
+       gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), menu);
+       gtk_widget_show_all (button);
+       gtk_box_pack_start (GTK_BOX (gth_browser_get_headerbar_section (browser, 
GTH_BROWSER_HEADER_SECTION_VIEWER_TOOLS)), button, FALSE, FALSE, 0);
 }
diff --git a/extensions/file_manager/callbacks.c b/extensions/file_manager/callbacks.c
index bbd86bc..6d71dd0 100644
--- a/extensions/file_manager/callbacks.c
+++ b/extensions/file_manager/callbacks.c
@@ -88,7 +88,7 @@ static const GthMenuEntry folder_context_open_entries[] = {
 
 
 static const GthMenuEntry folder_context_create_entries[] = {
-       { N_("Create Folder"), "win.folder-context-create" }
+       { N_("Create Folder"), "win.folder-context-create", "<Control><Shift>n" }
 };
 
 
@@ -108,11 +108,6 @@ static const GthMenuEntry folder_context_folder_entries[] = {
 };
 
 
-static const GthMenuEntry create_folder_entries[] = {
-       { N_("Create Folder"), "win.create-folder", "<Control><Shift>n" }
-};
-
-
 static const GthMenuEntry vfs_entries[] = {
        { N_("Duplicate"), "win.duplicate", "<Control>d" }
 };
@@ -132,7 +127,6 @@ static GtkTargetEntry non_reorderable_drag_dest_targets[] = {
 
 typedef struct {
        guint     vfs_merge_id;
-       guint     browser_vfs_merge_id;
        guint     folder_context_open_id;
        guint     folder_context_create_id;
        guint     folder_context_edit_id;
@@ -568,20 +562,6 @@ file_manager_update_ui (BrowserData *data,
                gth_menu_manager_remove_entries (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_FILE_LIST_FILE_ACTIONS), data->vfs_merge_id);
                data->vfs_merge_id = 0;
        }
-
-       if (GTH_IS_FILE_SOURCE_VFS (gth_browser_get_location_source (browser))
-           && (gth_window_get_current_page (GTH_WINDOW (browser)) == GTH_BROWSER_PAGE_BROWSER))
-       {
-               if (data->browser_vfs_merge_id == 0)
-                       data->browser_vfs_merge_id =
-                                       gth_menu_manager_append_entries (gth_browser_get_menu_manager 
(browser, GTH_BROWSER_MENU_MANAGER_GEARS_FOLDER_ACTIONS),
-                                                                        create_folder_entries,
-                                                                        G_N_ELEMENTS 
(create_folder_entries));
-       }
-       else {
-               gth_menu_manager_remove_entries (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_GEARS_FOLDER_ACTIONS), data->browser_vfs_merge_id);
-               data->browser_vfs_merge_id = 0;
-       }
 }
 
 
diff --git a/extensions/file_tools/gth-file-tool-flip.c b/extensions/file_tools/gth-file-tool-flip.c
index 0d5ae6b..1c60a27 100644
--- a/extensions/file_tools/gth-file-tool-flip.c
+++ b/extensions/file_tools/gth-file-tool-flip.c
@@ -87,6 +87,6 @@ gth_file_tool_flip_class_init (GthFileToolFlipClass *klass)
 static void
 gth_file_tool_flip_init (GthFileToolFlip *self)
 {
-       gth_file_tool_construct (GTH_FILE_TOOL (self), "tool-flip", _("Flip"), NULL, FALSE);
+       gth_file_tool_construct (GTH_FILE_TOOL (self), "object-flip-vertical-symbolic", _("Flip"), NULL, 
FALSE);
        gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Flip the image vertically"));
 }
diff --git a/extensions/file_tools/gth-file-tool-mirror.c b/extensions/file_tools/gth-file-tool-mirror.c
index c29a1bc..5a2aeb2 100644
--- a/extensions/file_tools/gth-file-tool-mirror.c
+++ b/extensions/file_tools/gth-file-tool-mirror.c
@@ -87,6 +87,6 @@ gth_file_tool_mirror_class_init (GthFileToolMirrorClass *klass)
 static void
 gth_file_tool_mirror_init (GthFileToolMirror *self)
 {
-       gth_file_tool_construct (GTH_FILE_TOOL (self), "tool-mirror", _("Mirror"), NULL, FALSE);
+       gth_file_tool_construct (GTH_FILE_TOOL (self), "object-flip-horizontal-symbolic", _("Mirror"), NULL, 
FALSE);
        gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Mirror the image horizontally"));
 }
diff --git a/extensions/file_tools/gth-file-tool-rotate-left.c 
b/extensions/file_tools/gth-file-tool-rotate-left.c
index 048b4c5..03f69b9 100644
--- a/extensions/file_tools/gth-file-tool-rotate-left.c
+++ b/extensions/file_tools/gth-file-tool-rotate-left.c
@@ -87,6 +87,6 @@ gth_file_tool_rotate_left_class_init (GthFileToolRotateLeftClass *klass)
 static void
 gth_file_tool_rotate_left_init (GthFileToolRotateLeft *self)
 {
-       gth_file_tool_construct (GTH_FILE_TOOL (self), "tool-rotate-270", _("Rotate Left"), NULL, FALSE);
+       gth_file_tool_construct (GTH_FILE_TOOL (self), "object-rotate-left-symbolic", _("Rotate Left"), NULL, 
FALSE);
        gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Rotate the image by 90 degrees counterclockwise"));
 }
diff --git a/extensions/file_tools/gth-file-tool-rotate-right.c 
b/extensions/file_tools/gth-file-tool-rotate-right.c
index 28c605e..2bbcf3b 100644
--- a/extensions/file_tools/gth-file-tool-rotate-right.c
+++ b/extensions/file_tools/gth-file-tool-rotate-right.c
@@ -87,6 +87,6 @@ gth_file_tool_rotate_right_class_init (GthFileToolRotateRightClass *klass)
 static void
 gth_file_tool_rotate_right_init (GthFileToolRotateRight *self)
 {
-       gth_file_tool_construct (GTH_FILE_TOOL (self), "tool-rotate-90", _("Rotate Right"), NULL, TRUE);
+       gth_file_tool_construct (GTH_FILE_TOOL (self), "object-rotate-right-symbolic", _("Rotate Right"), 
NULL, TRUE);
        gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Rotate the image by 90 degrees clockwise"));
 }
diff --git a/extensions/find_duplicates/callbacks.c b/extensions/find_duplicates/callbacks.c
index e2b967c..5c65470 100644
--- a/extensions/find_duplicates/callbacks.c
+++ b/extensions/find_duplicates/callbacks.c
@@ -47,7 +47,7 @@ find_dup__gth_browser_construct_cb (GthBrowser *browser)
                                         actions,
                                         G_N_ELEMENTS (actions),
                                         browser);
-       gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_GEARS_FOLDER_ACTIONS),
+       gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_GEARS_OTHER_ACTIONS),
                                         action_entries,
                                         G_N_ELEMENTS (action_entries));
 }
diff --git a/extensions/image_viewer/gth-image-viewer-page.c b/extensions/image_viewer/gth-image-viewer-page.c
index 66c52a5..1cbbfcb 100644
--- a/extensions/image_viewer/gth-image-viewer-page.c
+++ b/extensions/image_viewer/gth-image-viewer-page.c
@@ -65,8 +65,8 @@ static const GthAccelerator accelerators[] = {
 
 
 static const GthMenuEntry file_popup_entries[] = {
-       { N_("Copy Image"), "win.copy-image", "<control>c" },
-       { N_("Paste Image"), "win.paste-image", "<control>v" },
+       { N_("Copy Image"), "win.copy-image" },
+       { N_("Paste Image"), "win.paste-image" },
 };
 
 
diff --git a/extensions/search/actions.c b/extensions/search/actions.c
index 925b481..8505cd9 100644
--- a/extensions/search/actions.c
+++ b/extensions/search/actions.c
@@ -137,8 +137,7 @@ search_update_buffer_ready_cb (void     **buffer,
 
 
 void
-gth_browser_activate_action_edit_search_update (GtkAction  *action,
-                                               GthBrowser *browser)
+gth_browser_update_search (GthBrowser *browser)
 {
        GFile      *location;
        SearchData *search_data;
diff --git a/extensions/search/actions.h b/extensions/search/actions.h
index da3bcd3..b93d283 100644
--- a/extensions/search/actions.h
+++ b/extensions/search/actions.h
@@ -22,11 +22,9 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
-
-#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
+#include <gthumb.h>
 
 DEF_ACTION_CALLBACK (gth_browser_activate_find)
-DEFINE_ACTION (gth_browser_activate_action_edit_search_update)
+void gth_browser_update_search (GthBrowser *browser);
 
 #endif /* ACTIONS_H */
diff --git a/extensions/search/callbacks.c b/extensions/search/callbacks.c
index e2c2407..776b0d7 100644
--- a/extensions/search/callbacks.c
+++ b/extensions/search/callbacks.c
@@ -33,7 +33,6 @@
 
 
 #define BROWSER_DATA_KEY "search-browser-data"
-#define _RESPONSE_REFRESH 2
 
 
 static const GActionEntry actions[] = {
@@ -80,7 +79,7 @@ static void
 refresh_button_clicked_cb (GtkButton  *button,
                           GthBrowser *browser)
 {
-       gth_browser_activate_action_edit_search_update (NULL, browser);
+       gth_browser_update_search (browser);
 }
 
 
@@ -98,14 +97,16 @@ search__gth_browser_update_extra_widget_cb (GthBrowser *browser)
 
        if (data->refresh_button == NULL) {
                data->refresh_button = gtk_button_new ();
-               gtk_container_add (GTK_CONTAINER (data->refresh_button), gtk_image_new_from_stock 
(GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU));
+               gtk_container_add (GTK_CONTAINER (data->refresh_button), gtk_image_new_from_icon_name 
("view-refresh-symbolic", GTK_ICON_SIZE_MENU));
                g_object_add_weak_pointer (G_OBJECT (data->refresh_button), (gpointer 
*)&data->refresh_button);
                gtk_button_set_relief (GTK_BUTTON (data->refresh_button), GTK_RELIEF_NONE);
                gtk_widget_set_tooltip_text (data->refresh_button, _("Search again"));
                gtk_widget_show_all (data->refresh_button);
-               gtk_info_bar_add_action_widget (GTK_INFO_BAR (gth_browser_get_list_extra_widget (browser)),
-                                               data->refresh_button,
-                                               _RESPONSE_REFRESH);
+               gtk_box_pack_start (GTK_BOX (gth_location_bar_get_action_area (GTH_LOCATION_BAR 
(gth_browser_get_location_bar (browser)))),
+                                   data->refresh_button,
+                                   FALSE,
+                                   FALSE,
+                                   0);
                g_signal_connect (data->refresh_button,
                                  "clicked",
                                  G_CALLBACK (refresh_button_clicked_cb),
diff --git a/extensions/search/gth-search-task.c b/extensions/search/gth-search-task.c
index 7773ffe..6f948f7 100644
--- a/extensions/search/gth-search-task.c
+++ b/extensions/search/gth-search-task.c
@@ -80,15 +80,15 @@ typedef struct {
        GthBrowser    *browser;
        GthSearchTask *task;
        gulong         response_id;
-} EmbeddedDialogData;
+} InfoBarData;
 
 
 static void
-embedded_dialog_response_cb (GthEmbeddedDialog *dialog,
-                            int                response_id,
-                            gpointer           user_data)
+info_bar_response_cb (GtkInfoBar *info_bar,
+                     int         response_id,
+                     gpointer    user_data)
 {
-       EmbeddedDialogData *data = user_data;
+       InfoBarData *data = user_data;
 
        switch (response_id) {
        case GTK_RESPONSE_CANCEL:
@@ -99,7 +99,7 @@ embedded_dialog_response_cb (GthEmbeddedDialog *dialog,
                break;
        }
 
-       g_signal_handler_disconnect (dialog, data->response_id);
+       g_signal_handler_disconnect (info_bar, data->response_id);
        g_free (data);
 }
 
@@ -134,7 +134,7 @@ done_func (GObject  *object,
        gsize          size;
        GFile         *search_result_real_file;
 
-       gth_embedded_dialog_set_secondary_text (GTH_EMBEDDED_DIALOG (task->priv->dialog), NULL);
+       gth_info_bar_set_secondary_text (GTH_INFO_BAR (task->priv->dialog), NULL);
 
        task->priv->error = NULL;
        if (error != NULL) {
@@ -179,7 +179,7 @@ update_secondary_text (GthSearchTask *task)
 
        format_str = g_strdup_printf ("%"G_GSIZE_FORMAT, task->priv->n_files);
        msg = g_strdup_printf (_("Files found until now: %s"), format_str);
-       gth_embedded_dialog_set_secondary_text (GTH_EMBEDDED_DIALOG (task->priv->dialog), msg);
+       gth_info_bar_set_secondary_text (GTH_INFO_BAR (task->priv->dialog), msg);
 
        g_free (format_str);
        g_free (msg);
@@ -236,7 +236,7 @@ start_dir_func (GFile      *directory,
 
        uri = g_file_get_parse_name (directory);
        text = g_strdup_printf ("Searching in %s", uri);
-       gth_embedded_dialog_set_primary_text (GTH_EMBEDDED_DIALOG (task->priv->dialog), text);
+       gth_info_bar_set_primary_text (GTH_INFO_BAR (task->priv->dialog), text);
 
        g_free (text);
        g_free (uri);
@@ -252,7 +252,7 @@ browser_location_ready_cb (GthBrowser    *browser,
                           GthSearchTask *task)
 {
        GtkWidget          *button;
-       EmbeddedDialogData *dialog_data;
+       InfoBarData *dialog_data;
        GSettings          *settings;
        GString            *attributes;
        const char         *test_attributes;
@@ -266,26 +266,27 @@ browser_location_ready_cb (GthBrowser    *browser,
 
        task->priv->n_files = 0;
 
-       task->priv->dialog = gth_browser_get_list_extra_widget (browser);
-       gth_embedded_dialog_set_icon (GTH_EMBEDDED_DIALOG (task->priv->dialog), GTK_STOCK_FIND, 
GTK_ICON_SIZE_DIALOG);
-       gth_embedded_dialog_set_primary_text (GTH_EMBEDDED_DIALOG (task->priv->dialog), _("Searching..."));
+       task->priv->dialog = gth_browser_get_list_info_bar (browser);
+       gth_info_bar_set_icon_name (GTH_INFO_BAR (task->priv->dialog), "edit-find-symbolic", 
GTK_ICON_SIZE_BUTTON);
+       gth_info_bar_set_primary_text (GTH_INFO_BAR (task->priv->dialog), _("Searching..."));
        update_secondary_text (task);
        _gtk_info_bar_clear_action_area (GTK_INFO_BAR (task->priv->dialog));
+       gtk_widget_show (task->priv->dialog);
+
        button = gtk_button_new ();
-       gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_stock (GTK_STOCK_STOP, 
GTK_ICON_SIZE_BUTTON));
-       gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
+       gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("process-stop-symbolic", 
GTK_ICON_SIZE_BUTTON));
        gtk_widget_set_tooltip_text (button, _("Cancel the operation"));
        gtk_widget_show_all (button);
        gtk_info_bar_add_action_widget (GTK_INFO_BAR (task->priv->dialog),
                                        button,
                                        GTK_RESPONSE_CANCEL);
 
-       dialog_data = g_new0 (EmbeddedDialogData, 1);
+       dialog_data = g_new0 (InfoBarData, 1);
        dialog_data->browser = task->priv->browser;
        dialog_data->task = task;
        dialog_data->response_id = g_signal_connect (task->priv->dialog,
                                                     "response",
-                                                    G_CALLBACK (embedded_dialog_response_cb),
+                                                    G_CALLBACK (info_bar_response_cb),
                                                     dialog_data);
 
        /**/
diff --git a/extensions/selections/callbacks.c b/extensions/selections/callbacks.c
index 74932b9..75b6f49 100644
--- a/extensions/selections/callbacks.c
+++ b/extensions/selections/callbacks.c
@@ -298,7 +298,7 @@ void
 selections__gth_browser_update_extra_widget_cb (GthBrowser *browser)
 {
        GthFileData *location_data;
-       GtkWidget   *extra_widget;
+       GtkWidget   *info_bar;
        int          n_selection;
        char        *msg;
 
@@ -307,14 +307,16 @@ selections__gth_browser_update_extra_widget_cb (GthBrowser *browser)
                return;
 
        n_selection = g_file_info_get_attribute_int32 (location_data->info, "gthumb::n-selection");
-       extra_widget = gth_browser_get_list_extra_widget (browser);
-       gth_embedded_dialog_set_gicon (GTH_EMBEDDED_DIALOG (extra_widget), g_file_info_get_icon 
(location_data->info), GTK_ICON_SIZE_DIALOG);
-       gth_embedded_dialog_set_primary_text (GTH_EMBEDDED_DIALOG (extra_widget), 
g_file_info_get_display_name (location_data->info));
-       if (n_selection > 0)
-               msg = g_strdup_printf (_("Use Alt-%d to add files to this selection, Ctrl-%d to view this 
selection."), n_selection, n_selection);
-       else
-               msg = NULL;
-       gth_embedded_dialog_set_secondary_text (GTH_EMBEDDED_DIALOG (extra_widget), msg);
+       if (n_selection <= 0)
+               return;
+
+       info_bar = gth_browser_get_list_info_bar (browser);
+       gtk_info_bar_set_message_type (GTK_INFO_BAR(info_bar), GTK_MESSAGE_INFO);
+       gth_info_bar_set_icon_name (GTH_INFO_BAR (info_bar), "dialog-information-symbolic", 
GTK_ICON_SIZE_MENU);
+       gth_info_bar_set_primary_text (GTH_INFO_BAR (info_bar), NULL);
+       msg = g_strdup_printf (_("Use Alt-%d to add files to this selection, Ctrl-%d to view this 
selection."), n_selection, n_selection);
+       gth_info_bar_set_secondary_text (GTH_INFO_BAR (info_bar), msg);
+       gtk_widget_show (info_bar);
 
        g_free (msg);
 }
diff --git a/gthumb/Makefile.am b/gthumb/Makefile.am
index 4a8705a..9d6586c 100644
--- a/gthumb/Makefile.am
+++ b/gthumb/Makefile.am
@@ -37,7 +37,6 @@ PUBLIC_HEADER_FILES =                                         \
        gth-color-scale.h                               \
        gth-dumb-notebook.h                             \
        gth-duplicable.h                                \
-       gth-embedded-dialog.h                           \
        gth-empty-list.h                                \
        gth-extensions.h                                \
        gth-file-chooser-dialog.h                       \
@@ -77,6 +76,7 @@ PUBLIC_HEADER_FILES =                                         \
        gth-image-viewer-tool.h                         \
        gth-info-bar.h                                  \
        gth-load-file-data-task.h                       \
+       gth-location-bar.h                              \
        gth-location-chooser.h                          \
        gth-main.h                                      \
        gth-menu-action.h                               \
@@ -111,8 +111,6 @@ PUBLIC_HEADER_FILES =                                       \
        gth-thumb-loader.h                              \
        gth-time.h                                      \
        gth-time-selector.h                             \
-       gth-toggle-menu-action.h                        \
-       gth-toggle-menu-tool-button.h                   \
        gth-toolbox.h                                   \
        gth-uri-list.h                                  \
        gth-user-dir.h                                  \
@@ -172,7 +170,6 @@ gthumb_SOURCES =                                    \
        gth-color-scale.c                               \
        gth-dumb-notebook.c                             \
        gth-duplicable.c                                \
-       gth-embedded-dialog.c                           \
        gth-empty-list.c                                \
        gth-error.c                                     \
        gth-extensions.c                                \
@@ -212,6 +209,7 @@ gthumb_SOURCES =                                    \
        gth-image-viewer-tool.c                         \
        gth-info-bar.c                                  \
        gth-load-file-data-task.c                       \
+       gth-location-bar.c                              \
        gth-location-chooser.c                          \
        gth-main.c                                      \
        gth-main-default-hooks.c                        \
@@ -251,8 +249,6 @@ gthumb_SOURCES =                                    \
        gth-thumb-loader.c                              \
        gth-time.c                                      \
        gth-time-selector.c                             \
-       gth-toggle-menu-action.c                        \
-       gth-toggle-menu-tool-button.c                   \
        gth-toolbox.c                                   \
        gth-uri-list.c                                  \
        gth-user-dir.c                                  \
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index a61b331..f2bb8c3 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -31,7 +31,6 @@
 #include "gth-browser-actions-callbacks.h"
 #include "gth-browser-actions-entries.h"
 #include "gth-duplicable.h"
-#include "gth-embedded-dialog.h"
 #include "gth-enum-types.h"
 #include "gth-error.h"
 #include "gth-file-list.h"
@@ -44,6 +43,7 @@
 #include "gth-icon-cache.h"
 #include "gth-info-bar.h"
 #include "gth-image-preloader.h"
+#include "gth-location-bar.h"
 #include "gth-location-chooser.h"
 #include "gth-main.h"
 #include "gth-marshal.h"
@@ -54,7 +54,6 @@
 #include "gth-progress-dialog.h"
 #include "gth-sidebar.h"
 #include "gth-statusbar.h"
-#include "gth-toggle-menu-tool-button.h"
 #include "gth-user-dir.h"
 #include "gth-viewer-page.h"
 #include "gth-window.h"
@@ -74,6 +73,8 @@
 #define SHIRNK_WRAP_HEIGHT_OFFSET 125
 #define FILE_PROPERTIES_MINIMUM_HEIGHT 100
 #define HISTORY_FILE "history.xbel"
+#define SECTION_BIG_MARGIN 12
+
 
 G_DEFINE_TYPE (GthBrowser, gth_browser, GTH_TYPE_WINDOW)
 
@@ -109,9 +110,12 @@ struct _GthBrowserPrivate {
        GtkWidget         *filterbar;
        GtkWidget         *file_list;
        GtkWidget         *list_extra_widget_container;
-       GtkWidget         *list_extra_widget;
+       GtkWidget         *list_info_bar;
+       GtkWidget         *location_bar;
        GtkWidget         *file_properties;
        GtkWidget         *header_sections[GTH_BROWSER_N_HEADER_SECTIONS];
+       GtkWidget         *browser_status_commands;
+       GtkWidget         *viewer_status_commands;
        GHashTable        *menu_managers;
 
        GtkWidget         *thumbnail_list;
@@ -131,7 +135,6 @@ struct _GthBrowserPrivate {
 
        /* Browser data */
 
-       guint              help_message_cid;
        gulong             folder_changed_id;
        gulong             file_renamed_id;
        gulong             metadata_changed_id;
@@ -384,8 +387,10 @@ gth_browser_update_sensitivity (GthBrowser *browser)
 void
 gth_browser_update_extra_widget (GthBrowser *browser)
 {
-       _gtk_info_bar_clear_action_area (GTK_INFO_BAR (browser->priv->list_extra_widget));
-       gth_embedded_dialog_set_from_file (GTH_EMBEDDED_DIALOG (browser->priv->list_extra_widget), 
browser->priv->location->file);
+       gtk_widget_hide (browser->priv->list_info_bar);
+       gtk_widget_show (browser->priv->location_bar);
+       _gtk_container_remove_children (GTK_CONTAINER (gth_location_bar_get_action_area (GTH_LOCATION_BAR 
(browser->priv->location_bar))), NULL, NULL);
+       gth_location_bar_set_from_file (GTH_LOCATION_BAR (browser->priv->location_bar), 
browser->priv->location->file);
        gth_hook_invoke ("gth-browser-update-extra-widget", browser);
 }
 
@@ -406,7 +411,7 @@ _gth_browser_set_location (GthBrowser  *browser,
        gth_browser_update_title (browser);
        gth_browser_update_sensitivity (browser);
 
-       location_chooser = gth_embedded_dialog_get_chooser (GTH_EMBEDDED_DIALOG 
(browser->priv->list_extra_widget));
+       location_chooser = gth_location_bar_get_chooser (GTH_LOCATION_BAR (browser->priv->location_bar));
        g_signal_handlers_block_by_data (location_chooser, browser);
        gth_browser_update_extra_widget (browser);
        g_signal_handlers_unblock_by_data (location_chooser, browser);
@@ -954,7 +959,7 @@ _gth_browser_show_error (GthBrowser *browser,
        gth_info_bar_set_secondary_text (GTH_INFO_BAR (browser->priv->infobar), error->message);
 
        gtk_orientable_set_orientation (GTK_ORIENTABLE (gtk_info_bar_get_action_area (GTK_INFO_BAR 
(browser->priv->infobar))), GTK_ORIENTATION_HORIZONTAL);
-       gth_info_bar_set_icon (GTH_INFO_BAR (browser->priv->infobar), GTK_STOCK_DIALOG_ERROR);
+       gth_info_bar_set_icon_name (GTH_INFO_BAR (browser->priv->infobar), "dialog-error-symbolic", 
GTK_ICON_SIZE_DIALOG);
        gtk_info_bar_set_message_type (GTK_INFO_BAR (browser->priv->infobar), GTK_MESSAGE_ERROR);
        _gtk_info_bar_clear_action_area (GTK_INFO_BAR (browser->priv->infobar));
        gtk_info_bar_add_buttons (GTK_INFO_BAR (browser->priv->infobar),
@@ -2165,6 +2170,9 @@ _gth_browser_real_set_current_page (GthWindow *window,
        _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT, page 
== GTH_BROWSER_PAGE_VIEWER);
        _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_TOOLS, page 
== GTH_BROWSER_PAGE_VIEWER);
 
+       gtk_widget_set_visible (browser->priv->browser_status_commands, page == GTH_BROWSER_PAGE_BROWSER);
+       gtk_widget_set_visible (browser->priv->viewer_status_commands, page == GTH_BROWSER_PAGE_VIEWER);
+
        /* move the sidebar from the browser to the viewer and vice-versa */
 
        gtk_widget_unrealize (browser->priv->file_properties);
@@ -3862,6 +3870,12 @@ gth_browser_init (GthBrowser *browser)
                        gtk_style_context_add_class (gtk_widget_get_style_context 
(browser->priv->header_sections[i]), GTK_STYLE_CLASS_LINKED);
                }
 
+               gtk_widget_set_margin_right 
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_EDIT], SECTION_BIG_MARGIN);
+               gtk_widget_set_margin_left 
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_EDIT], SECTION_BIG_MARGIN);
+
+               gtk_widget_set_margin_right 
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT], SECTION_BIG_MARGIN);
+               gtk_widget_set_margin_left 
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT], SECTION_BIG_MARGIN);
+
                gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar), 
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_NAVIGATION]);
                gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar), 
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_LOCATIONS]);
                gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar), 
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_COMMANDS]);
@@ -3946,18 +3960,6 @@ gth_browser_init (GthBrowser *browser)
 
                /* browser commands */
 
-               gth_browser_add_header_bar_toggle_button (browser,
-                                                         GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW,
-                                                         "document-properties-symbolic",
-                                                         _("View file properties"),
-                                                         "win.browser-properties",
-                                                         NULL);
-               gth_browser_add_header_bar_button (browser,
-                                                  GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW,
-                                                  "view-fullscreen-symbolic",
-                                                  _("Switch to fullscreen"),
-                                                  "win.fullscreen",
-                                                  NULL);
                gth_browser_add_header_bar_button (browser,
                                                   GTH_BROWSER_HEADER_SECTION_BROWSER_EDIT,
                                                   "palette-symbolic",
@@ -3974,21 +3976,6 @@ gth_browser_init (GthBrowser *browser)
                                                   "win.browser-mode",
                                                   NULL);
 
-               /* viewer view */
-
-               gth_browser_add_header_bar_toggle_button (browser,
-                                                         GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW,
-                                                         "document-properties-symbolic",
-                                                         _("View file properties"),
-                                                         "win.viewer-properties",
-                                                         NULL);
-               gth_browser_add_header_bar_button (browser,
-                                                  GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW,
-                                                  "view-fullscreen-symbolic",
-                                                  _("Switch to fullscreen"),
-                                                  "win.fullscreen",
-                                                  NULL);
-
                /* viewer edit */
 
                gth_browser_add_header_bar_toggle_button (browser,
@@ -4001,16 +3988,54 @@ gth_browser_init (GthBrowser *browser)
 
        /* infobar */
 
-       browser->priv->infobar = gth_info_bar_new (NULL, NULL, NULL);
+       browser->priv->infobar = gth_info_bar_new ();
        gth_window_attach (GTH_WINDOW (browser), browser->priv->infobar, GTH_WINDOW_INFOBAR);
 
        /* statusbar */
 
        browser->priv->statusbar = gth_statusbar_new ();
-       browser->priv->help_message_cid = gtk_statusbar_get_context_id (GTK_STATUSBAR 
(browser->priv->statusbar), "gth_help_message");
        _gth_browser_set_statusbar_visibility (browser, g_settings_get_boolean 
(browser->priv->browser_settings, PREF_BROWSER_STATUSBAR_VISIBLE));
        gth_window_attach (GTH_WINDOW (browser), browser->priv->statusbar, GTH_WINDOW_STATUSBAR);
 
+       {
+               GtkWidget *button;
+
+               /* statusbar commands in browser mode */
+
+               browser->priv->browser_status_commands = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+               gtk_widget_show (browser->priv->browser_status_commands);
+               /*gtk_style_context_add_class (gtk_widget_get_style_context 
(browser->priv->browser_status_commands), GTK_STYLE_CLASS_LINKED);*/
+               gtk_box_pack_start (GTK_BOX (gth_statubar_get_action_area (GTH_STATUSBAR 
(browser->priv->statusbar))), browser->priv->browser_status_commands, FALSE, FALSE, 0);
+
+               button = gtk_toggle_button_new ();
+               /*gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);*/
+               gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name 
("document-properties-symbolic", GTK_ICON_SIZE_MENU));
+               gtk_widget_show_all (button);
+               gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.browser-properties");
+               gtk_box_pack_end (GTK_BOX (browser->priv->browser_status_commands), button, FALSE, FALSE, 0);
+
+               /* statusbar commands in viewer mode */
+
+               browser->priv->viewer_status_commands = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+               gtk_widget_show (browser->priv->viewer_status_commands);
+               /*gtk_style_context_add_class (gtk_widget_get_style_context 
(browser->priv->viewer_status_commands), GTK_STYLE_CLASS_LINKED);*/
+               gtk_box_pack_start (GTK_BOX (gth_statubar_get_action_area (GTH_STATUSBAR 
(browser->priv->statusbar))), browser->priv->viewer_status_commands, FALSE, FALSE, 0);
+
+               button = gtk_toggle_button_new ();
+               /*gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);*/
+               gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name 
("document-properties-symbolic", GTK_ICON_SIZE_MENU));
+               gtk_widget_show_all (button);
+               gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.viewer-properties");
+               gtk_box_pack_end (GTK_BOX (browser->priv->viewer_status_commands), button, FALSE, FALSE, 0);
+
+               button = gtk_toggle_button_new ();
+               /*gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);*/
+               gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name 
("view-grid-symbolic", GTK_ICON_SIZE_MENU));
+               gtk_widget_show_all (button);
+               gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.show-thumbnail-list");
+               gtk_box_pack_end (GTK_BOX (browser->priv->viewer_status_commands), button, FALSE, FALSE, 0);
+       }
+
        /* main content */
 
        browser->priv->browser_right_container = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
@@ -4125,20 +4150,25 @@ gth_browser_init (GthBrowser *browser)
 
        /* the list extra widget container */
 
-       browser->priv->list_extra_widget_container = gtk_alignment_new (0, 0.5, 1.0, 1.0);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (browser->priv->list_extra_widget_container), 0, 0, 0, 0);
+       browser->priv->list_extra_widget_container = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
        gtk_widget_show (browser->priv->list_extra_widget_container);
        gtk_box_pack_start (GTK_BOX (vbox), browser->priv->list_extra_widget_container, FALSE, FALSE, 0);
 
-       browser->priv->list_extra_widget = gth_embedded_dialog_new ();
-       gtk_widget_show (browser->priv->list_extra_widget);
-       gtk_container_add (GTK_CONTAINER (browser->priv->list_extra_widget_container), 
browser->priv->list_extra_widget);
+       /* location bar */
 
-       g_signal_connect (gth_embedded_dialog_get_chooser (GTH_EMBEDDED_DIALOG 
(browser->priv->list_extra_widget)),
+       browser->priv->location_bar = gth_location_bar_new ();
+       gtk_widget_show (browser->priv->location_bar);
+       gtk_box_pack_start (GTK_BOX (browser->priv->list_extra_widget_container), 
browser->priv->location_bar, TRUE, TRUE, 0);
+       g_signal_connect (gth_location_bar_get_chooser (GTH_LOCATION_BAR (browser->priv->location_bar)),
                          "changed",
                          G_CALLBACK (location_chooser_changed_cb),
                          browser);
 
+       /* list info bar */
+
+       browser->priv->list_info_bar = gth_info_bar_new ();
+       gtk_box_pack_start (GTK_BOX (browser->priv->list_extra_widget_container), 
browser->priv->list_info_bar, TRUE, TRUE, 0);
+
        /* the file list */
 
        browser->priv->file_list = gth_file_list_new (gth_grid_view_new (), GTH_FILE_LIST_MODE_NORMAL, TRUE);
@@ -4622,7 +4652,7 @@ _gth_browser_setup_header_bar_button (GthBrowser                  *browser,
                                      const char                        *accelerator,
                                      GtkWidget *button)
 {
-       gtk_actionable_set_action_name (GTK_ACTIONABLE (button),action_name);
+       gtk_actionable_set_action_name (GTK_ACTIONABLE (button), action_name);
        if (tooltip != NULL)
                gtk_widget_set_tooltip_text (button, tooltip);
        if (accelerator != NULL)
@@ -4857,7 +4887,6 @@ foreground_task_completed_cb (GthTask    *task,
        g_signal_handler_disconnect (browser->priv->task, browser->priv->task_completed);
        g_signal_handler_disconnect (browser->priv->task, browser->priv->task_progress);
 
-       gth_statusbar_set_progress (GTH_STATUSBAR (browser->priv->statusbar), NULL, FALSE, 0.0);
        gth_browser_update_sensitivity (browser);
        if ((error != NULL) && ! g_error_matches (error, GTH_TASK_ERROR, GTH_TASK_ERROR_CANCELLED))
                _gth_browser_show_error (browser, _("Could not perform the operation"), error);
@@ -4875,7 +4904,7 @@ foreground_task_progress_cb (GthTask    *task,
                             double      fraction,
                             GthBrowser *browser)
 {
-       gth_statusbar_set_progress (GTH_STATUSBAR (browser->priv->statusbar), description, pulse, fraction);
+       /* void */
 }
 
 
@@ -4937,9 +4966,16 @@ gth_browser_get_close_with_task (GthBrowser *browser)
 
 
 GtkWidget *
-gth_browser_get_list_extra_widget (GthBrowser *browser)
+gth_browser_get_location_bar (GthBrowser *browser)
+{
+       return browser->priv->location_bar;
+}
+
+
+GtkWidget *
+gth_browser_get_list_info_bar (GthBrowser *browser)
 {
-       return browser->priv->list_extra_widget;
+       return browser->priv->list_info_bar;
 }
 
 
diff --git a/gthumb/gth-browser.h b/gthumb/gth-browser.h
index 3039c24..0397a38 100644
--- a/gthumb/gth-browser.h
+++ b/gthumb/gth-browser.h
@@ -189,7 +189,8 @@ void             gth_browser_exec_task              (GthBrowser       *browser,
 void             gth_browser_set_close_with_task    (GthBrowser       *browser,
                                                     gboolean          value);
 gboolean         gth_browser_get_close_with_task    (GthBrowser       *browser);
-GtkWidget *      gth_browser_get_list_extra_widget  (GthBrowser       *browser);
+GtkWidget *      gth_browser_get_location_bar      (GthBrowser       *browser);
+GtkWidget *      gth_browser_get_list_info_bar     (GthBrowser       *browser);
 gboolean         gth_browser_viewer_button_press_cb (GthBrowser       *browser,
                                                     GdkEventButton   *event);
 gboolean        gth_browser_viewer_scroll_event_cb (GthBrowser       *browser,
diff --git a/gthumb/gth-info-bar.c b/gthumb/gth-info-bar.c
index a4f412e..90a896f 100644
--- a/gthumb/gth-info-bar.c
+++ b/gthumb/gth-info-bar.c
@@ -42,13 +42,6 @@ gth_info_bar_class_init (GthInfoBarClass *klass)
 
 
 static void
-gth_info_bar_init (GthInfoBar *self)
-{
-       self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GTH_TYPE_INFO_BAR, GthInfoBarPrivate);
-}
-
-
-static void
 infobar_response_cb (GtkInfoBar *self,
                     int         response_id,
                     gpointer    user_data)
@@ -62,7 +55,7 @@ infobar_response_cb (GtkInfoBar *self,
 
 
 static void
-gth_info_bar_construct (GthInfoBar *self)
+gth_info_bar_init (GthInfoBar *self)
 {
        GtkWidget *hbox_content;
        GtkWidget *image;
@@ -70,7 +63,9 @@ gth_info_bar_construct (GthInfoBar *self)
        GtkWidget *primary_label;
        GtkWidget *secondary_label;
        GtkWidget *area;
-       
+
+       self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GTH_TYPE_INFO_BAR, GthInfoBarPrivate);
+
        hbox_content = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
        gtk_widget_show (hbox_content);
 
@@ -91,7 +86,7 @@ gth_info_bar_construct (GthInfoBar *self)
        gtk_label_set_ellipsize (GTK_LABEL (primary_label), PANGO_ELLIPSIZE_MIDDLE);
        gtk_misc_set_alignment (GTK_MISC (primary_label), 0, 0.5);
        gtk_label_set_selectable (GTK_LABEL (primary_label), TRUE);
-       
+
        self->priv->secondary_text_label = secondary_label = gtk_label_new (NULL);
        gtk_box_pack_start (GTK_BOX (vbox), secondary_label, TRUE, TRUE, 0);
        gtk_widget_set_can_focus (secondary_label, TRUE);
@@ -101,7 +96,7 @@ gth_info_bar_construct (GthInfoBar *self)
        gtk_label_set_ellipsize (GTK_LABEL (secondary_label), PANGO_ELLIPSIZE_END);
        gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5);
        gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE);
-       
+
        area = gtk_info_bar_get_action_area (GTK_INFO_BAR (self));
        gtk_container_set_border_width (GTK_CONTAINER (self), 0);
        gtk_box_set_homogeneous (GTK_BOX (area), FALSE);
@@ -113,7 +108,6 @@ gth_info_bar_construct (GthInfoBar *self)
 
        gtk_widget_set_name (GTK_WIDGET (self), "GthInfoBar");
        gtk_info_bar_set_message_type (GTK_INFO_BAR (self), GTK_MESSAGE_OTHER);
-       gtk_container_set_border_width (GTK_CONTAINER (self), 0);
 
        g_signal_connect (self,
                          "response",
@@ -123,19 +117,9 @@ gth_info_bar_construct (GthInfoBar *self)
 
 
 GtkWidget *
-gth_info_bar_new (const char *icon_stock_id,
-                 const char *primary_text,
-                 const char *secondary_text)
+gth_info_bar_new (void)
 {
-       GthInfoBar *self;
-
-       self = g_object_new (GTH_TYPE_INFO_BAR, NULL);
-       gth_info_bar_construct (self);
-       gth_info_bar_set_icon (self, icon_stock_id);
-       gth_info_bar_set_primary_text (self, primary_text);
-       gth_info_bar_set_secondary_text (self, secondary_text);
-       
-       return (GtkWidget *) self;
+       return GTK_WIDGET (g_object_new (GTH_TYPE_INFO_BAR, NULL));
 }
 
 
@@ -147,29 +131,31 @@ gth_info_bar_get_primary_label (GthInfoBar *dialog)
 
 
 void
-gth_info_bar_set_icon (GthInfoBar *self,
-                      const char *icon_stock_id)
+gth_info_bar_set_icon_name (GthInfoBar  *self,
+                           const char  *icon_name,
+                           GtkIconSize  icon_size)
 {
-       if (icon_stock_id == NULL) {
+       if (icon_name == NULL) {
                gtk_widget_hide (self->priv->icon_image);
                return;
        }
 
-       gtk_image_set_from_stock (GTK_IMAGE (self->priv->icon_image), icon_stock_id, GTK_ICON_SIZE_BUTTON);
+       gtk_image_set_from_icon_name (GTK_IMAGE (self->priv->icon_image), icon_name, icon_size);
        gtk_widget_show (self->priv->icon_image);
 }
 
 
 void
-gth_info_bar_set_gicon (GthInfoBar *self,
-                       GIcon      *icon)
+gth_info_bar_set_gicon (GthInfoBar  *self,
+                       GIcon       *icon,
+                       GtkIconSize  icon_size)
 {
        if (icon == NULL) {
                gtk_widget_hide (self->priv->icon_image);
                return;
        }
 
-       gtk_image_set_from_gicon (GTK_IMAGE (self->priv->icon_image), icon, GTK_ICON_SIZE_BUTTON);
+       gtk_image_set_from_gicon (GTK_IMAGE (self->priv->icon_image), icon, icon_size);
        gtk_widget_show (self->priv->icon_image);
 }
 
@@ -185,12 +171,12 @@ gth_info_bar_set_primary_text (GthInfoBar *self,
                gtk_widget_hide (self->priv->primary_text_label);
                return;
        }
-       
+
        escaped = g_markup_escape_text (text, -1);
        markup = g_strdup_printf ("<b>%s</b>", escaped);
        gtk_label_set_markup (GTK_LABEL (self->priv->primary_text_label), markup);
        gtk_widget_show (self->priv->primary_text_label);
-       
+
        g_free (markup);
        g_free (escaped);
 }
@@ -207,12 +193,12 @@ gth_info_bar_set_secondary_text (GthInfoBar *self,
                gtk_widget_hide (self->priv->secondary_text_label);
                return;
        }
-       
+
        escaped = g_markup_escape_text (text, -1);
        markup = g_strdup_printf ("<small>%s</small>", escaped);
        gtk_label_set_markup (GTK_LABEL (self->priv->secondary_text_label), markup);
        gtk_widget_show (self->priv->secondary_text_label);
-       
+
        g_free (markup);
        g_free (escaped);
 }
diff --git a/gthumb/gth-info-bar.h b/gthumb/gth-info-bar.h
index a17825f..d47c975 100644
--- a/gthumb/gth-info-bar.h
+++ b/gthumb/gth-info-bar.h
@@ -49,18 +49,18 @@ struct _GthInfoBarClass
 };
 
 GType         gth_info_bar_get_type           (void) G_GNUC_CONST;
-GtkWidget *   gth_info_bar_new                (const char *icon_stock_id,
-                                              const char *primary_text,
-                                              const char *secondary_text);
-GtkWidget *   gth_info_bar_get_primary_label  (GthInfoBar *dialog);
-void          gth_info_bar_set_icon           (GthInfoBar *dialog,
-                                              const char *icon_stock_id);
-void          gth_info_bar_set_gicon          (GthInfoBar *dialog,
-                                              GIcon      *icon);
-void          gth_info_bar_set_primary_text   (GthInfoBar *dialog,
-                                              const char *primary_text);
-void          gth_info_bar_set_secondary_text (GthInfoBar *dialog,
-                                              const char *secondary_text);
+GtkWidget *   gth_info_bar_new                (void);
+GtkWidget *   gth_info_bar_get_primary_label  (GthInfoBar   *dialog);
+void          gth_info_bar_set_icon_name      (GthInfoBar   *dialog,
+                                              const char   *icon_name,
+                                              GtkIconSize   icon_size);
+void          gth_info_bar_set_gicon          (GthInfoBar   *dialog,
+                                              GIcon        *icon,
+                                              GtkIconSize   icon_size);
+void          gth_info_bar_set_primary_text   (GthInfoBar   *dialog,
+                                              const char   *primary_text);
+void          gth_info_bar_set_secondary_text (GthInfoBar   *dialog,
+                                              const char   *secondary_text);
 
 G_END_DECLS
 
diff --git a/gthumb/gth-location-bar.c b/gthumb/gth-location-bar.c
new file mode 100644
index 0000000..48526ff
--- /dev/null
+++ b/gthumb/gth-location-bar.c
@@ -0,0 +1,106 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2013 The Free Software Foundation, Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include <gtk/gtk.h>
+#include "gth-location-bar.h"
+#include "gth-location-chooser.h"
+
+
+#define LOCATION_BAR_MARGIN 3
+
+
+struct _GthLocationBarPrivate {
+       GtkWidget *location_chooser;
+       GtkWidget *action_area;
+};
+
+
+G_DEFINE_TYPE_WITH_CODE (GthLocationBar, gth_location_bar, GTK_TYPE_BOX,
+                        G_ADD_PRIVATE (GthLocationBar))
+
+
+static void
+gth_location_bar_class_init (GthLocationBarClass *klass)
+{
+       /* void */
+}
+
+
+static void
+gth_location_bar_init (GthLocationBar *self)
+{
+       GtkWidget *box;
+
+       self->priv = gth_location_bar_get_instance_private (self);
+
+       gtk_orientable_set_orientation (GTK_ORIENTABLE (self), GTK_ORIENTATION_HORIZONTAL);
+       gtk_widget_set_margin_top (GTK_WIDGET (self), LOCATION_BAR_MARGIN);
+       gtk_widget_set_margin_bottom (GTK_WIDGET (self), LOCATION_BAR_MARGIN);
+       gtk_widget_set_margin_right (GTK_WIDGET (self), LOCATION_BAR_MARGIN);
+
+       /* location chooser */
+
+       box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+       gtk_widget_show (box);
+       self->priv->location_chooser = g_object_new (GTH_TYPE_LOCATION_CHOOSER,
+                                                    "show-entry-points", FALSE,
+                                                    "relief", GTK_RELIEF_NONE,
+                                                    NULL);
+       gtk_widget_show (self->priv->location_chooser);
+       gtk_box_pack_start (GTK_BOX (box), self->priv->location_chooser, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX (self), box, TRUE, TRUE, 0);
+
+       /* action area */
+
+       self->priv->action_area = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+       gtk_widget_show (self->priv->action_area);
+       gtk_box_pack_end (GTK_BOX (self), self->priv->action_area, FALSE, FALSE, 0);
+}
+
+
+GtkWidget *
+gth_location_bar_new (void)
+{
+       return g_object_new (GTH_TYPE_LOCATION_BAR, NULL);
+}
+
+
+void
+gth_location_bar_set_from_file (GthLocationBar *self,
+                               GFile          *file)
+{
+       gth_location_chooser_set_current (GTH_LOCATION_CHOOSER (self->priv->location_chooser), file);
+}
+
+
+GtkWidget *
+gth_location_bar_get_chooser (GthLocationBar *self)
+{
+       return self->priv->location_chooser;
+}
+
+
+GtkWidget *
+gth_location_bar_get_action_area (GthLocationBar *self)
+{
+       return self->priv->action_area;
+}
diff --git a/gthumb/gth-location-bar.h b/gthumb/gth-location-bar.h
new file mode 100644
index 0000000..6f82e18
--- /dev/null
+++ b/gthumb/gth-location-bar.h
@@ -0,0 +1,60 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2013 Free Software Foundation, Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GTH_LOCATION_BAR_H
+#define GTH_LOCATION_BAR_H
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define GTH_TYPE_LOCATION_BAR         (gth_location_bar_get_type ())
+#define GTH_LOCATION_BAR(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GTH_TYPE_LOCATION_BAR, 
GthLocationBar))
+#define GTH_LOCATION_BAR_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), GTH_TYPE_LOCATION_BAR, 
GthLocationBarClass))
+#define GTH_IS_LOCATION_BAR(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTH_TYPE_LOCATION_BAR))
+#define GTH_IS_LOCATION_BAR_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GTH_TYPE_LOCATION_BAR))
+#define GTH_LOCATION_BAR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GTH_TYPE_LOCATION_BAR, 
GthLocationBarClass))
+
+typedef struct _GthLocationBar         GthLocationBar;
+typedef struct _GthLocationBarPrivate  GthLocationBarPrivate;
+typedef struct _GthLocationBarClass    GthLocationBarClass;
+
+struct _GthLocationBar
+{
+       GtkBox __parent;
+       GthLocationBarPrivate *priv;
+};
+
+struct _GthLocationBarClass
+{
+       GtkBoxClass __parent_class;
+};
+
+GType          gth_location_bar_get_type               (void) G_GNUC_CONST;
+GtkWidget *    gth_location_bar_new                    (void);
+void           gth_location_bar_set_from_file          (GthLocationBar         *dialog,
+                                                        GFile                  *file);
+GtkWidget *    gth_location_bar_get_chooser            (GthLocationBar         *dialog);
+GtkWidget *    gth_location_bar_get_action_area        (GthLocationBar         *self);
+
+G_END_DECLS
+
+#endif /* GTH_LOCATION_BAR_H */
diff --git a/gthumb/gth-statusbar.c b/gthumb/gth-statusbar.c
index 6c97348..1e5ffd4 100644
--- a/gthumb/gth-statusbar.c
+++ b/gthumb/gth-statusbar.c
@@ -25,19 +25,16 @@
 
 
 struct _GthStatusbarPrivate {
-       guint      list_info_cid;
+       GtkWidget *list_info_label;
        GtkWidget *primary_text;
        GtkWidget *primary_text_frame;
        GtkWidget *secondary_text;
        GtkWidget *secondary_text_frame;
-       GtkWidget *progress_box;
-       GtkWidget *progress_bar;
-       GtkWidget *progress_label;
-       /*GtkWidget *stop_button;*/
+       GtkWidget *action_area;
 };
 
 
-G_DEFINE_TYPE (GthStatusbar, gth_statusbar, GTK_TYPE_STATUSBAR)
+G_DEFINE_TYPE (GthStatusbar, gth_statusbar, GTK_TYPE_BOX)
 
 
 static void
@@ -50,55 +47,37 @@ gth_statusbar_class_init (GthStatusbarClass *klass)
 static void
 gth_statusbar_init (GthStatusbar *statusbar)
 {
-       GtkWidget *separator;
-       GtkWidget *hbox;
-       GtkWidget *vbox;
-       /*GtkWidget *image;*/
-
-       gtk_box_set_spacing (GTK_BOX (statusbar), 0);
-
        statusbar->priv = G_TYPE_INSTANCE_GET_PRIVATE (statusbar, GTH_TYPE_STATUSBAR, GthStatusbarPrivate);
-       statusbar->priv->list_info_cid = gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), 
"gth_list_info");
 
-       /* Progress info */
+       gtk_box_set_spacing (GTK_BOX (statusbar), 6);
+       gtk_widget_set_margin_top (GTK_WIDGET (statusbar), 3);
+       gtk_widget_set_margin_right (GTK_WIDGET (statusbar), 6);
+       gtk_widget_set_margin_bottom (GTK_WIDGET (statusbar), 3);
+       gtk_widget_set_margin_left (GTK_WIDGET (statusbar), 6);
 
-       statusbar->priv->progress_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-       gtk_widget_hide (statusbar->priv->progress_box);
-       gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->progress_box, FALSE, FALSE, 0);
+       /* List info */
 
-       separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
-       gtk_widget_show (separator);
-       gtk_box_pack_start (GTK_BOX (statusbar->priv->progress_box), separator, FALSE, FALSE, 0);
+       statusbar->priv->list_info_label = gtk_label_new (NULL);
+       gtk_widget_show (statusbar->priv->list_info_label);
+       gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->list_info_label, FALSE, FALSE, 0);
 
-       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
-       gtk_widget_show (hbox);
-       gtk_box_pack_start (GTK_BOX (statusbar->priv->progress_box), hbox, FALSE, FALSE, 0);
+       /* Action area */
 
-       statusbar->priv->progress_label = gtk_label_new (NULL);
-       gtk_widget_show (statusbar->priv->progress_label);
-       gtk_box_pack_start (GTK_BOX (hbox), statusbar->priv->progress_label, TRUE, TRUE, 0);
+       statusbar->priv->action_area = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+       gtk_widget_show (statusbar->priv->action_area);
+       gtk_box_pack_end (GTK_BOX (statusbar), statusbar->priv->action_area, FALSE, FALSE, 0);
 
-       vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-       gtk_box_set_homogeneous (GTK_BOX (vbox), TRUE);
-       gtk_widget_show (vbox);
-       gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
+       /* Primary text */
 
-       statusbar->priv->progress_bar = gtk_progress_bar_new ();
-       gtk_widget_set_size_request (statusbar->priv->progress_bar, 60, 12);
-       gtk_widget_show (statusbar->priv->progress_bar);
-       gtk_box_pack_start (GTK_BOX (vbox), statusbar->priv->progress_bar, FALSE, FALSE, 0);
+       statusbar->priv->primary_text = gtk_label_new (NULL);
+       gtk_widget_show (statusbar->priv->primary_text);
 
-       /*
-       statusbar->priv->stop_button = gtk_button_new ();
-       gtk_widget_set_size_request (statusbar->priv->stop_button, 26, 26);
-       gtk_button_set_relief (GTK_BUTTON (statusbar->priv->stop_button), GTK_RELIEF_NONE);
-       gtk_widget_show (statusbar->priv->stop_button);
-       gtk_box_pack_start (GTK_BOX (hbox), statusbar->priv->stop_button, FALSE, FALSE, 0);
+       statusbar->priv->primary_text_frame = gtk_frame_new (NULL);
+       gtk_widget_show (statusbar->priv->primary_text_frame);
 
-       image = gtk_image_new_from_stock (GTK_STOCK_STOP, GTK_ICON_SIZE_MENU);
-       gtk_widget_show (image);
-       gtk_container_add (GTK_CONTAINER (statusbar->priv->stop_button), image);
-       */
+       gtk_frame_set_shadow_type (GTK_FRAME (statusbar->priv->primary_text_frame), GTK_SHADOW_NONE);
+       gtk_container_add (GTK_CONTAINER (statusbar->priv->primary_text_frame), 
statusbar->priv->primary_text);
+       gtk_box_pack_end (GTK_BOX (statusbar), statusbar->priv->primary_text_frame, FALSE, FALSE, 0);
 
        /* Secondary text */
 
@@ -109,19 +88,7 @@ gth_statusbar_init (GthStatusbar *statusbar)
        gtk_widget_show (statusbar->priv->secondary_text_frame);
        gtk_frame_set_shadow_type (GTK_FRAME (statusbar->priv->secondary_text_frame), GTK_SHADOW_NONE);
        gtk_container_add (GTK_CONTAINER (statusbar->priv->secondary_text_frame), 
statusbar->priv->secondary_text);
-       gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->secondary_text_frame, FALSE, FALSE, 0);
-
-       /* Primary text */
-
-       statusbar->priv->primary_text = gtk_label_new (NULL);
-       gtk_widget_show (statusbar->priv->primary_text);
-
-       statusbar->priv->primary_text_frame = gtk_frame_new (NULL);
-       gtk_widget_show (statusbar->priv->primary_text_frame);
-
-       gtk_frame_set_shadow_type (GTK_FRAME (statusbar->priv->primary_text_frame), GTK_SHADOW_NONE);
-       gtk_container_add (GTK_CONTAINER (statusbar->priv->primary_text_frame), 
statusbar->priv->primary_text);
-       gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->primary_text_frame, FALSE, FALSE, 0);
+       gtk_box_pack_end (GTK_BOX (statusbar), statusbar->priv->secondary_text_frame, FALSE, FALSE, 0);
 }
 
 
@@ -136,8 +103,7 @@ void
 gth_statusbar_set_list_info (GthStatusbar *statusbar,
                             const char   *text)
 {
-       gtk_statusbar_pop (GTK_STATUSBAR (statusbar), statusbar->priv->list_info_cid);
-       gtk_statusbar_push (GTK_STATUSBAR (statusbar), statusbar->priv->list_info_cid, text);
+       gtk_label_set_text (GTK_LABEL (statusbar->priv->list_info_label), text);
 }
 
 
@@ -167,21 +133,8 @@ gth_statusbar_set_secondary_text (GthStatusbar *statusbar,
 }
 
 
-void
-gth_statusbar_set_progress (GthStatusbar *statusbar,
-                           const char   *text,
-                           gboolean      pulse,
-                           double        fraction)
+GtkWidget *
+gth_statubar_get_action_area (GthStatusbar *statusbar)
 {
-       if (text == NULL) {
-               gtk_widget_hide (statusbar->priv->progress_box);
-               return;
-       }
-
-       gtk_widget_show (statusbar->priv->progress_box);
-       gtk_label_set_text (GTK_LABEL (statusbar->priv->progress_label), text);
-       if (pulse)
-               gtk_progress_bar_pulse (GTK_PROGRESS_BAR (statusbar->priv->progress_bar));
-       else
-               gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (statusbar->priv->progress_bar), fraction);
+       return statusbar->priv->action_area;
 }
diff --git a/gthumb/gth-statusbar.h b/gthumb/gth-statusbar.h
index f30bb74..b0dbb80 100644
--- a/gthumb/gth-statusbar.h
+++ b/gthumb/gth-statusbar.h
@@ -38,12 +38,12 @@ typedef struct _GthStatusbarClass GthStatusbarClass;
 typedef struct _GthStatusbarPrivate GthStatusbarPrivate;
 
 struct _GthStatusbar {
-       GtkStatusbar parent_instance;
+       GtkBox parent_instance;
        GthStatusbarPrivate *priv;
 };
 
 struct _GthStatusbarClass {
-       GtkStatusbarClass parent_class;
+       GtkBoxClass parent_class;
 };
 
 GType        gth_statusbar_get_type             (void);
@@ -58,6 +58,7 @@ void         gth_statusbar_set_progress         (GthStatusbar *statusbar,
                                                 const char   *text,
                                                 gboolean      pulse,
                                                 double        fraction);
+GtkWidget *  gth_statubar_get_action_area       (GthStatusbar *statusbar);
 
 G_END_DECLS
 
diff --git a/gthumb/resources/gears-menu.ui b/gthumb/resources/gears-menu.ui
index f964d2b..ec011fc 100644
--- a/gthumb/resources/gears-menu.ui
+++ b/gthumb/resources/gears-menu.ui
@@ -32,6 +32,10 @@
     </section>
     <section id="view-actions">
       <item>
+        <attribute name="label" translatable="yes">Sort By…</attribute>
+        <attribute name="action">win.sort-by</attribute>
+      </item>
+      <item>
         <attribute name="label" translatable="yes">Hidden Files</attribute>
         <attribute name="action">win.show-hidden-files</attribute>
       </item>
@@ -42,24 +46,8 @@
       </item>
     </section>
     <section id="folder-actions">
-      <item>
-        <attribute name="label" translatable="yes">Sort By…</attribute>
-        <attribute name="action">win.sort-by</attribute>
-      </item>
     </section>
     <section id="other-actions">
     </section>
-    <section>
-      <item>
-        <attribute name="label" translatable="yes">Close All Windows</attribute>
-        <attribute name="action">app.quit</attribute>
-        <attribute name="accel"><![CDATA[<Ctrl>q]]></attribute>
-      </item>
-      <item>
-        <attribute name="label" translatable="yes">Close</attribute>
-        <attribute name="action">win.close</attribute>
-        <attribute name="accel"><![CDATA[<Ctrl>w]]></attribute>
-      </item>
-    </section>
   </menu>
 </interface>


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