[gthumb] added the export commands to the headerbar, removed the toolbar



commit c585bd8ad7372db1e59f94076dfab657d7917de6
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Tue Oct 22 16:16:29 2013 +0200

    added the export commands to the headerbar, removed the toolbar

 configure.ac                                     |    2 +
 data/org.gnome.gthumb.gschema.xml.in             |    6 -
 data/ui/preferences.ui                           |   61 +----------
 extensions/23hq/actions.c                        |   18 +--
 extensions/23hq/actions.h                        |    7 +-
 extensions/23hq/callbacks.c                      |   86 +++-------------
 extensions/Makefile.am                           |    2 +-
 extensions/burn_disc/actions.c                   |   14 ++-
 extensions/burn_disc/actions.h                   |    6 +-
 extensions/burn_disc/callbacks.c                 |   74 +++-----------
 extensions/change_date/callbacks.c               |    2 -
 extensions/contact_sheet/actions.c               |   24 +++--
 extensions/contact_sheet/actions.h               |    8 +-
 extensions/contact_sheet/callbacks.c             |   85 +++------------
 extensions/export_tools/Makefile.am              |   14 ++-
 extensions/export_tools/callbacks.c              |   98 +++---------------
 extensions/export_tools/data/Makefile.am         |    2 +
 extensions/export_tools/data/ui/Makefile.am      |    4 +
 extensions/export_tools/data/ui/export-menu.ui   |   10 ++
 extensions/export_tools/export-tools.h           |   28 +++++
 extensions/export_tools/resources.xml            |    6 +
 extensions/facebook/Makefile.am                  |    2 +-
 extensions/facebook/actions.c                    |   17 ++--
 extensions/facebook/actions.h                    |    6 +-
 extensions/facebook/callbacks.c                  |   92 ++++-------------
 extensions/facebook/facebook.extension.in.in     |    2 +-
 extensions/file_viewer/gth-file-viewer-page.c    |   30 +-----
 extensions/flicker/Makefile.am                   |    2 +-
 extensions/flicker/actions.c                     |   17 ++--
 extensions/flicker/actions.h                     |    8 +-
 extensions/flicker/callbacks.c                   |   92 ++++-------------
 extensions/flicker/flicker.extension.in.in       |    2 +-
 extensions/photo_importer/Makefile.am            |    5 +-
 extensions/photo_importer/actions.c              |   17 ++--
 extensions/photo_importer/actions.h              |    5 +-
 extensions/photo_importer/callbacks.c            |   83 +++++----------
 extensions/photo_importer/data/ui/Makefile.am    |    7 +-
 extensions/photo_importer/data/ui/import-menu.ui |   10 ++
 extensions/photo_importer/dlg-photo-importer.c   |    2 +-
 extensions/photo_importer/main.c                 |    2 +-
 extensions/photo_importer/photo-importer.h       |   28 +++++
 extensions/photo_importer/resources.xml          |    8 ++
 extensions/photobucket/actions.c                 |   10 +-
 extensions/photobucket/actions.h                 |    6 +-
 extensions/photobucket/callbacks.c               |   75 +++-----------
 extensions/picasaweb/actions.c                   |   17 ++--
 extensions/picasaweb/actions.h                   |    8 +-
 extensions/picasaweb/callbacks.c                 |   92 ++++-------------
 extensions/webalbums/actions.c                   |   12 ++-
 extensions/webalbums/actions.h                   |    6 +-
 extensions/webalbums/callbacks.c                 |  103 +++---------------
 gthumb/dlg-preferences.c                         |   14 ---
 gthumb/gth-browser-actions-callbacks.c           |   13 ---
 gthumb/gth-browser-actions-callbacks.h           |    1 -
 gthumb/gth-browser-actions-entries.h             |    8 --
 gthumb/gth-browser-ui.h                          |   41 -------
 gthumb/gth-browser.c                             |  123 ++--------------------
 gthumb/gth-browser.h                             |    5 +-
 gthumb/gth-menu-manager.c                        |   16 +++
 gthumb/gth-menu-manager.h                        |    3 +
 gthumb/gth-preferences.c                         |   35 ------
 gthumb/gth-preferences.h                         |    3 -
 gthumb/gth-toolbox.c                             |    1 -
 gthumb/resources/gears-menu.ui                   |    2 +
 gthumb/typedefs.h                                |    9 --
 po/POTFILES.in                                   |    6 +
 66 files changed, 447 insertions(+), 1156 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index a8ea5b6..26161b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -714,6 +714,8 @@ extensions/exiv2_tools/Makefile
 extensions/exiv2_tools/data/Makefile
 extensions/exiv2_tools/data/ui/Makefile
 extensions/export_tools/Makefile
+extensions/export_tools/data/Makefile
+extensions/export_tools/data/ui/Makefile
 extensions/facebook/Makefile
 extensions/facebook/data/Makefile
 extensions/facebook/data/ui/Makefile
diff --git a/data/org.gnome.gthumb.gschema.xml.in b/data/org.gnome.gthumb.gschema.xml.in
index adf6787..61a1dd9 100644
--- a/data/org.gnome.gthumb.gschema.xml.in
+++ b/data/org.gnome.gthumb.gschema.xml.in
@@ -89,9 +89,6 @@
     <key name="sort-inverse" type="b">
       <default>false</default>
     </key>
-    <key name="toolbar-style" enum="org.gnome.gthumb.GthToolbarStyle">
-      <default>'system'</default>
-    </key>
     <key name="window-width" type="i">
       <default>0</default>
     </key>
@@ -104,9 +101,6 @@
     <key name="image-pane-visible" type="b">
       <default>true</default>
     </key>
-    <key name="toolbar-visible" type="b">
-      <default>true</default>
-    </key>
     <key name="statusbar-visible" type="b">
       <default>true</default>
     </key>
diff --git a/data/ui/preferences.ui b/data/ui/preferences.ui
index 3221b0b..7447a70 100644
--- a/data/ui/preferences.ui
+++ b/data/ui/preferences.ui
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.0 on Tue Oct 22 16:12:56 2013 -->
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
   <object class="GtkListStore" id="file_properties_position_liststore">
@@ -36,7 +37,6 @@
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
                 <property name="use_stock">True</property>
               </object>
               <packing>
@@ -53,7 +53,6 @@
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
                 <property name="use_stock">True</property>
               </object>
               <packing>
@@ -106,22 +105,6 @@
                                 <property name="row_spacing">6</property>
                                 <property name="column_spacing">6</property>
                                 <child>
-                                  <object class="GtkLabel" id="toolbar_style_label">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">_Toolbar style:</property>
-                                    <property name="use_underline">True</property>
-                                    <property name="mnemonic_widget">toolbar_style_combobox</property>
-                                  </object>
-                                  <packing>
-                                    <property name="left_attach">0</property>
-                                    <property name="top_attach">0</property>
-                                    <property name="width">1</property>
-                                    <property name="height">1</property>
-                                  </packing>
-                                </child>
-                                <child>
                                   <object class="GtkLabel" id="label5">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
@@ -131,25 +114,6 @@
                                   </object>
                                   <packing>
                                     <property name="left_attach">0</property>
-                                    <property name="top_attach">1</property>
-                                    <property name="width">1</property>
-                                    <property name="height">1</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkComboBoxText" id="toolbar_style_combobox">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <items>
-                                      <item translatable="yes">System settings</item>
-                                      <item translatable="yes">Text below icons</item>
-                                      <item translatable="yes">Text beside icons</item>
-                                      <item translatable="yes">Icons only</item>
-                                      <item translatable="yes">Text only</item>
-                                    </items>
-                                  </object>
-                                  <packing>
-                                    <property name="left_attach">1</property>
                                     <property name="top_attach">0</property>
                                     <property name="width">1</property>
                                     <property name="height">1</property>
@@ -166,7 +130,7 @@
                                   </object>
                                   <packing>
                                     <property name="left_attach">1</property>
-                                    <property name="top_attach">1</property>
+                                    <property name="top_attach">0</property>
                                     <property name="width">1</property>
                                     <property name="height">1</property>
                                   </packing>
@@ -182,7 +146,7 @@
                                   </object>
                                   <packing>
                                     <property name="left_attach">0</property>
-                                    <property name="top_attach">2</property>
+                                    <property name="top_attach">1</property>
                                     <property name="width">1</property>
                                     <property name="height">1</property>
                                   </packing>
@@ -201,20 +165,11 @@
                                   </object>
                                   <packing>
                                     <property name="left_attach">1</property>
-                                    <property name="top_attach">2</property>
+                                    <property name="top_attach">1</property>
                                     <property name="width">1</property>
                                     <property name="height">1</property>
                                   </packing>
                                 </child>
-                                <child>
-                                  <placeholder/>
-                                </child>
-                                <child>
-                                  <placeholder/>
-                                </child>
-                                <child>
-                                  <placeholder/>
-                                </child>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
@@ -269,7 +224,6 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="xalign">0</property>
                                 <property name="active">True</property>
@@ -293,7 +247,6 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
-                                    <property name="use_action_appearance">False</property>
                                     <property name="use_underline">True</property>
                                     <property name="xalign">0</property>
                                     <property name="active">True</property>
@@ -337,7 +290,6 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
-                                    <property name="use_action_appearance">False</property>
                                     <property name="use_underline">True</property>
                                   </object>
                                   <packing>
@@ -361,7 +313,6 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="xalign">0</property>
                                 <property name="draw_indicator">True</property>
@@ -419,7 +370,6 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="xalign">0</property>
                                 <property name="draw_indicator">True</property>
@@ -437,7 +387,6 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="xalign">0</property>
                                 <property name="draw_indicator">True</property>
@@ -455,7 +404,6 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="xalign">0</property>
                                 <property name="draw_indicator">True</property>
@@ -633,7 +581,6 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="xalign">0</property>
                                 <property name="draw_indicator">True</property>
diff --git a/extensions/23hq/actions.c b/extensions/23hq/actions.c
index 4097efc..2b44d96 100644
--- a/extensions/23hq/actions.c
+++ b/extensions/23hq/actions.c
@@ -24,7 +24,6 @@
 #include <glib/gi18n.h>
 #include <gthumb.h>
 #include <extensions/flicker_utils/dlg-export-to-flickr.h>
-#include <extensions/flicker_utils/dlg-import-from-flickr.h>
 #include <extensions/flicker_utils/flickr-types.h>
 
 
@@ -49,11 +48,13 @@ static FlickrServer www_23hq_com = {
 
 
 void
-gth_browser_activate_action_export_23 (GtkAction  *action,
-                                      GthBrowser *browser)
+gth_browser_activate_export_23 (GSimpleAction  *action,
+                               GVariant        *parameter,
+                               gpointer         user_data)
 {
-       GList *items;
-       GList *file_list;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GList      *items;
+       GList      *file_list;
 
        items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
        file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items);
@@ -65,10 +66,3 @@ gth_browser_activate_action_export_23 (GtkAction  *action,
        _gtk_tree_path_list_free (items);
 }
 
-
-void
-gth_browser_activate_action_import_23 (GtkAction  *action,
-                                      GthBrowser *browser)
-{
-       dlg_import_from_flickr (&www_23hq_com, browser);
-}
diff --git a/extensions/23hq/actions.h b/extensions/23hq/actions.h
index ff19ad7..01751c2 100644
--- a/extensions/23hq/actions.h
+++ b/extensions/23hq/actions.h
@@ -22,11 +22,8 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
+#include <gthumb.h>
 
-#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
-
-DEFINE_ACTION(gth_browser_activate_action_export_23)
-DEFINE_ACTION(gth_browser_activate_action_import_23)
+DEF_ACTION_CALLBACK (gth_browser_activate_export_23)
 
 #endif /* ACTIONS_H */
diff --git a/extensions/23hq/callbacks.c b/extensions/23hq/callbacks.c
index 0b7f185..8c318a3 100644
--- a/extensions/23hq/callbacks.c
+++ b/extensions/23hq/callbacks.c
@@ -24,90 +24,30 @@
 #include <glib/gi18n.h>
 #include <glib-object.h>
 #include <gthumb.h>
+#include <extensions/export_tools/export-tools.h>
 #include "actions.h"
 
 
-#define BROWSER_DATA_KEY "23hq-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-/*
-"      <menu name='Import' action='ImportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='File_Import_23'/>"
-"        </placeholder>"
-"      </menu>"
-*/
-"      <menu name='Export' action='ExportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='File_Export_23'/>"
-"        </placeholder>"
-"      </menu>"
-"    </menu>"
-"  </menubar>"
-"  <popup name='ExportPopup'>"
-"    <placeholder name='Web_Services'>"
-"      <menuitem action='File_Export_23'/>"
-"    </placeholder>"
-"  </popup>"
-"</ui>";
-
-
-static GthActionEntryExt action_entries[] = {
-       /*
-       { "File_Import_23", "site-twentythree",
-         N_("_23..."), NULL,
-         N_("Download photos from 23"),
-         GTH_ACTION_FLAG_ALWAYS_SHOW_IMAGE,
-         G_CALLBACK (gth_browser_activate_action_import_23) },
-       */
-       { "File_Export_23", "site-twentythree",
-         N_("_23..."), NULL,
-         N_("Upload photos to 23"),
-         GTH_ACTION_FLAG_ALWAYS_SHOW_IMAGE,
-         G_CALLBACK (gth_browser_activate_action_export_23) },
+static const GActionEntry actions[] = {
+       { "export-23", gth_browser_activate_export_23 }
 };
 
 
-typedef struct {
-       GtkActionGroup *action_group;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
+static const GthMenuEntry action_entries[] = {
+       { "23…", "win.export-23", NULL, "site-twentythree" }
+};
 
 
 void
 tt__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GError      *error = NULL;
-       guint        merge_id;
-
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
-
-       data->action_group = gtk_action_group_new ("23HQ Actions");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-       _gtk_action_group_add_actions_with_flags (data->action_group,
-                                                 action_entries,
-                                                 G_N_ELEMENTS (action_entries),
-                                                 browser);
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
-
-       merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, 
&error);
-       if (merge_id == 0) {
-               g_warning ("building ui failed: %s", error->message);
-               g_clear_error (&error);
-       }
-
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
+       g_action_map_add_action_entries (G_ACTION_MAP (browser),
+                                        actions,
+                                        G_N_ELEMENTS (actions),
+                                        browser);
+       gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_WEB_EXPORTERS),
+                                        action_entries,
+                                        G_N_ELEMENTS (action_entries));
 }
diff --git a/extensions/Makefile.am b/extensions/Makefile.am
index 5701a4f..51a1fe9 100644
--- a/extensions/Makefile.am
+++ b/extensions/Makefile.am
@@ -61,8 +61,8 @@ SUBDIRS =                     \
        search                  \
        selections              \
        slideshow               \
-       $(EXPORTERS)            \
        $(IMPORTERS)            \
+       $(EXPORTERS)            \
        $(OTHER_TOOLS)          \
        $(NULL)
 
diff --git a/extensions/burn_disc/actions.c b/extensions/burn_disc/actions.c
index b0bb831..18a54d3 100644
--- a/extensions/burn_disc/actions.c
+++ b/extensions/burn_disc/actions.c
@@ -27,13 +27,15 @@
 
 
 void
-gth_browser_activate_action_burn_disc (GtkAction  *action,
-                                      GthBrowser *browser)
+gth_browser_activate_burn_disc (GSimpleAction  *action,
+                               GVariant        *parameter,
+                               gpointer         user_data)
 {
-       GList   *items;
-       GList   *file_list;
-       GList   *files;
-       GthTask *task;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GList      *items;
+       GList      *file_list;
+       GList      *files;
+       GthTask    *task;
 
        items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
        file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items);
diff --git a/extensions/burn_disc/actions.h b/extensions/burn_disc/actions.h
index b43ae95..2360cb3 100644
--- a/extensions/burn_disc/actions.h
+++ b/extensions/burn_disc/actions.h
@@ -22,10 +22,8 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
+#include <gthumb.h>
 
-#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
-
-DEFINE_ACTION(gth_browser_activate_action_burn_disc)
+DEF_ACTION_CALLBACK (gth_browser_activate_burn_disc)
 
 #endif /* ACTIONS_H */
diff --git a/extensions/burn_disc/callbacks.c b/extensions/burn_disc/callbacks.c
index a25bab8..0e1f5ca 100644
--- a/extensions/burn_disc/callbacks.c
+++ b/extensions/burn_disc/callbacks.c
@@ -24,76 +24,28 @@
 #include <glib/gi18n.h>
 #include <glib-object.h>
 #include <gthumb.h>
+#include <extensions/export_tools/export-tools.h>
 #include "actions.h"
-#include "callbacks.h"
 
 
-#define BROWSER_DATA_KEY "burn-disc-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <menu name='Export' action='ExportMenu'>"
-"        <placeholder name='Misc_Actions'>"
-"          <menuitem action='File_Export_BurnDisc'/>"
-"        </placeholder>"
-"      </menu>"
-"    </menu>"
-"  </menubar>"
-"  <popup name='ExportPopup'>"
-"    <placeholder name='Misc_Actions'>"
-"      <menuitem action='File_Export_BurnDisc'/>"
-"    </placeholder>"
-"  </popup>"
-"</ui>";
-
-
-static GtkActionEntry action_entries[] = {
-       { "File_Export_BurnDisc", GTK_STOCK_CDROM,
-         N_("_Optical Disc..."), NULL,
-         N_("Write files to an optical disc"),
-         G_CALLBACK (gth_browser_activate_action_burn_disc) }
+static const GActionEntry actions[] = {
+       { "burn-disc", gth_browser_activate_burn_disc }
 };
 
 
-typedef struct {
-       GtkActionGroup *action_group;
-       guint           actions_merge_id;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
-
-
 void
 bd__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GError      *error = NULL;
-
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
-
-       data->action_group = gtk_action_group_new ("Burn Disc Action");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-       gtk_action_group_add_actions (data->action_group,
-                                     action_entries,
-                                     G_N_ELEMENTS (action_entries),
-                                     browser);
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
-
-       data->actions_merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), 
ui_info, -1, &error);
-       if (data->actions_merge_id == 0) {
-               g_warning ("building menus failed: %s", error->message);
-               g_error_free (error);
-       }
-
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
+       g_action_map_add_action_entries (G_ACTION_MAP (browser),
+                                        actions,
+                                        G_N_ELEMENTS (actions),
+                                        browser);
+       gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_OTHER_EXPORTERS),
+                                      GTH_MENU_MANAGER_NEW_MERGE_ID,
+                                      _("_Optical Disc..."),
+                                      "win.burn-disc",
+                                      NULL,
+                                      NULL);
 }
diff --git a/extensions/change_date/callbacks.c b/extensions/change_date/callbacks.c
index b43c622..d878cf4 100644
--- a/extensions/change_date/callbacks.c
+++ b/extensions/change_date/callbacks.c
@@ -27,8 +27,6 @@
 #include <extensions/list_tools/list-tools.h>
 #include "actions.h"
 
-#define BROWSER_DATA_KEY "change-date-browser-data"
-
 
 static const GActionEntry actions[] = {
        { "change-date", gth_browser_activate_change_date }
diff --git a/extensions/contact_sheet/actions.c b/extensions/contact_sheet/actions.c
index 63d9a03..927f3c5 100644
--- a/extensions/contact_sheet/actions.c
+++ b/extensions/contact_sheet/actions.c
@@ -28,12 +28,14 @@
 
 
 void
-gth_browser_activate_action_create_contact_sheet (GtkAction  *action,
-                                                 GthBrowser *browser)
+gth_browser_activate_create_contact_sheet (GSimpleAction       *action,
+                                          GVariant             *parameter,
+                                          gpointer              user_data)
 {
-       GList *items;
-       GList *file_data_list;
-       GList *file_list;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GList      *items;
+       GList      *file_data_list;
+       GList      *file_list;
 
        items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
        file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items);
@@ -50,12 +52,14 @@ gth_browser_activate_action_create_contact_sheet (GtkAction  *action,
 
 
 void
-gth_browser_activate_action_create_image_wall (GtkAction  *action,
-                                              GthBrowser *browser)
+gth_browser_activate_create_image_wall (GSimpleAction  *action,
+                                       GVariant        *parameter,
+                                       gpointer         user_data)
 {
-       GList *items;
-       GList *file_data_list;
-       GList *file_list;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GList      *items;
+       GList      *file_data_list;
+       GList      *file_list;
 
        items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
        file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items);
diff --git a/extensions/contact_sheet/actions.h b/extensions/contact_sheet/actions.h
index f36c0f6..a3982c3 100644
--- a/extensions/contact_sheet/actions.h
+++ b/extensions/contact_sheet/actions.h
@@ -22,11 +22,9 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
+#include <gthumb.h>
 
-#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
-
-DEFINE_ACTION(gth_browser_activate_action_create_contact_sheet)
-DEFINE_ACTION(gth_browser_activate_action_create_image_wall)
+DEF_ACTION_CALLBACK (gth_browser_activate_create_contact_sheet)
+DEF_ACTION_CALLBACK (gth_browser_activate_create_image_wall)
 
 #endif /* ACTIONS_H */
diff --git a/extensions/contact_sheet/callbacks.c b/extensions/contact_sheet/callbacks.c
index 44aa98b..3047d38 100644
--- a/extensions/contact_sheet/callbacks.c
+++ b/extensions/contact_sheet/callbacks.c
@@ -24,86 +24,31 @@
 #include <glib/gi18n.h>
 #include <glib-object.h>
 #include <gthumb.h>
+#include <extensions/export_tools/export-tools.h>
 #include "actions.h"
 
 
-#define BROWSER_DATA_KEY "contact-sheet-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <menu name='Export' action='ExportMenu'>"
-"        <placeholder name='Misc_Actions'>"
-"          <menu name='ContactSheet' action='ContactSheetMenu'>"
-"            <menuitem action='Tool_CreateContactSheet'/>"
-"            <menuitem action='Tool_CreateImageWall'/>"
-"          </menu>"
-"        </placeholder>"
-"      </menu>"
-"    </menu>"
-"  </menubar>"
-"  <popup name='ExportPopup'>"
-"    <placeholder name='Misc_Actions'>"
-"      <menu name='ContactSheet' action='ContactSheetMenu'>"
-"        <menuitem action='Tool_CreateContactSheet'/>"
-"        <menuitem action='Tool_CreateImageWall'/>"
-"      </menu>"
-"    </placeholder>"
-"  </popup>"
-"</ui>";
-
-
-static GtkActionEntry action_entries[] = {
-       { "ContactSheetMenu", NULL, N_("Contact _Sheet") },
-       { "Tool_CreateContactSheet", "contact-sheet",
-         N_("Contact _Sheet..."), NULL,
-         N_("Create a contact sheet"),
-         G_CALLBACK (gth_browser_activate_action_create_contact_sheet) },
-       { "Tool_CreateImageWall", "image-wall",
-         N_("Image _Wall..."), NULL,
-         N_("Create an image-wall"),
-         G_CALLBACK (gth_browser_activate_action_create_image_wall) },
+static const GActionEntry actions[] = {
+       { "create-contact-sheet", gth_browser_activate_create_contact_sheet },
+       { "create-image-wall", gth_browser_activate_create_image_wall }
 };
 
-
-typedef struct {
-       GtkActionGroup *action_group;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
+static const GthMenuEntry action_entries[] = {
+       { N_("Contact _Sheet..."), "win.create-contact-sheet" },
+       { N_("Image _Wall..."), "win.create-image-wall" }
+};
 
 
 void
 cs__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GError      *error = NULL;
-       guint        merge_id;
-
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
-
-       data->action_group = gtk_action_group_new ("Contact Sheet Actions");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-       gtk_action_group_add_actions (data->action_group,
-                                     action_entries,
-                                     G_N_ELEMENTS (action_entries),
-                                     browser);
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
-
-       merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, 
&error);
-       if (merge_id == 0) {
-               g_warning ("building ui failed: %s", error->message);
-               g_clear_error (&error);
-       }
-
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
+       g_action_map_add_action_entries (G_ACTION_MAP (browser),
+                                        actions,
+                                        G_N_ELEMENTS (actions),
+                                        browser);
+       gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_OTHER_EXPORTERS),
+                                        action_entries,
+                                        G_N_ELEMENTS (action_entries));
 }
diff --git a/extensions/export_tools/Makefile.am b/extensions/export_tools/Makefile.am
index a755d96..9bd1550 100644
--- a/extensions/export_tools/Makefile.am
+++ b/extensions/export_tools/Makefile.am
@@ -1,11 +1,16 @@
+SUBDIRS = data
+
 extensiondir = $(pkglibdir)/extensions
 extension_LTLIBRARIES = libexport_tools.la
 
 libexport_tools_la_SOURCES =           \
        callbacks.c                     \
        callbacks.h                     \
-       main.c
-
+       export-tools.h                  \
+       main.c                          \
+       resources.c                     \
+       resources.h
+       
 libexport_tools_la_CFLAGS = $(GTHUMB_CFLAGS) -I$(top_srcdir) -I$(top_builddir)/gthumb 
 libexport_tools_la_LDFLAGS = $(EXTENSION_LIBTOOL_FLAGS)
 libexport_tools_la_LIBADD = $(GTHUMB_LIBS)
@@ -18,8 +23,11 @@ extensionini_DATA = $(extensionini_in_files:.extension.in.in=.extension)
 @GTHUMB_EXTENSION_IN_RULE@
 @GTHUMB_EXTENSION_RULE@
 
-EXTRA_DIST = $(extensionini_in_files) 
+EXTRA_DIST =                           \
+       $(extensionini_in_files)        \
+       resources.xml
 
 DISTCLEANFILES = $(extensionini_DATA)
 
 -include $(top_srcdir)/git.mk
+-include $(top_srcdir)/extension-resources.mk
diff --git a/extensions/export_tools/callbacks.c b/extensions/export_tools/callbacks.c
index fd8e716..53e4760 100644
--- a/extensions/export_tools/callbacks.c
+++ b/extensions/export_tools/callbacks.c
@@ -25,95 +25,27 @@
 #include <glib-object.h>
 #include <gthumb.h>
 #include "callbacks.h"
-
-
-#define BROWSER_DATA_KEY "export-tools-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-"  <toolbar name='ToolBar'>"
-"    <placeholder name='Edit_Actions_2'>"
-"      <toolitem action='ExportTools'/>"
-"    </placeholder>"
-"  </toolbar>"
-"  <popup name='ExportPopup'>"
-"    <placeholder name='Web_Services'/>"
-"    <separator/>"
-"    <placeholder name='Misc_Actions'/>"
-"  </popup>"
-"</ui>";
-
-
-typedef struct {
-       GthBrowser     *browser;
-       GtkActionGroup *action_group;
-       gboolean        menu_initialized;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
-
-
-static void
-export_tools_show_menu_func (GtkAction *action,
-                            gpointer   user_data)
-{
-       BrowserData *data = user_data;
-       GtkWidget   *menu;
-
-       if (data->menu_initialized)
-               return;
-
-       data->menu_initialized = TRUE;
-
-       menu = gtk_ui_manager_get_widget (gth_browser_get_ui_manager (data->browser), "/ExportPopup");
-       g_object_set (action, "menu", menu, NULL);
-}
+#include "export-tools.h"
 
 
 void
 export_tools__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GtkAction   *action;
-       GError      *error = NULL;
-       guint        merge_id;
+       GtkBuilder *builder;
+       GMenuModel *menu;
+       GtkWidget  *button;
 
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
-       data->browser = browser;
-       data->action_group = gtk_action_group_new ("Export Tools Actions");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-
-       /* tools menu action */
-
-       action = g_object_new (GTH_TYPE_TOGGLE_MENU_ACTION,
-                              "name", "ExportTools",
-                              "icon-name", "share",
-                              "label", _("Share"),
-                              /*"tooltip",  _("Export files"),*/
-                              "is-important", TRUE,
-                              NULL);
-       gth_toggle_menu_action_set_show_menu_func (GTH_TOGGLE_MENU_ACTION (action),
-                                                  export_tools_show_menu_func,
-                                                  data,
-                                                  NULL);
-       gtk_action_group_add_action (data->action_group, action);
-       g_object_unref (action);
-
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
-
-       merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, 
&error);
-       if (merge_id == 0) {
-               g_warning ("building ui failed: %s", error->message);
-               g_clear_error (&error);
-       }
-
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
+       builder = gtk_builder_new_from_resource ("/org/gnome/gThumb/export_tools/data/ui/export-menu.ui");
+       gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_WEB_EXPORTERS, G_MENU 
(gtk_builder_get_object (builder, "web-exporters")));
+       gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_OTHER_EXPORTERS, G_MENU 
(gtk_builder_get_object (builder, "other-exporters")));
+       menu = G_MENU_MODEL (gtk_builder_get_object (builder, "export-menu"));
+
+       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_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);
 }
diff --git a/extensions/export_tools/data/Makefile.am b/extensions/export_tools/data/Makefile.am
new file mode 100644
index 0000000..4d5385d
--- /dev/null
+++ b/extensions/export_tools/data/Makefile.am
@@ -0,0 +1,2 @@
+SUBDIRS = ui
+-include $(top_srcdir)/git.mk
diff --git a/extensions/export_tools/data/ui/Makefile.am b/extensions/export_tools/data/ui/Makefile.am
new file mode 100644
index 0000000..048b8e5
--- /dev/null
+++ b/extensions/export_tools/data/ui/Makefile.am
@@ -0,0 +1,4 @@
+EXTRA_DIST =                   \
+       export-menu.ui
+
+-include $(top_srcdir)/git.mk
diff --git a/extensions/export_tools/data/ui/export-menu.ui b/extensions/export_tools/data/ui/export-menu.ui
new file mode 100644
index 0000000..3c169a7
--- /dev/null
+++ b/extensions/export_tools/data/ui/export-menu.ui
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <menu id="export-menu">
+    <section id="web-exporters">
+    </section>
+    <section id="other-exporters">
+    </section>
+  </menu>
+</interface>
diff --git a/extensions/export_tools/export-tools.h b/extensions/export_tools/export-tools.h
new file mode 100644
index 0000000..1cdb72a
--- /dev/null
+++ b/extensions/export_tools/export-tools.h
@@ -0,0 +1,28 @@
+/* -*- 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/>.
+ */
+
+#ifndef EXPORT_TOOLS_H
+#define EXPORT_TOOLS_H
+
+#define GTH_BROWSER_MENU_MANAGER_WEB_EXPORTERS "exporters.web-exporters"
+#define GTH_BROWSER_MENU_MANAGER_OTHER_EXPORTERS "exporters.other-exporters"
+
+#endif /* EXPORT_TOOLS_H */
diff --git a/extensions/export_tools/resources.xml b/extensions/export_tools/resources.xml
new file mode 100644
index 0000000..090289f
--- /dev/null
+++ b/extensions/export_tools/resources.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/gThumb/export_tools">
+    <file compressed="true">data/ui/export-menu.ui</file>
+  </gresource>
+</gresources>
diff --git a/extensions/facebook/Makefile.am b/extensions/facebook/Makefile.am
index 9bb8e58..5ae7da8 100644
--- a/extensions/facebook/Makefile.am
+++ b/extensions/facebook/Makefile.am
@@ -28,7 +28,7 @@ libfacebook_la_SOURCES =                      \
 
 libfacebook_la_CFLAGS = $(GTHUMB_CFLAGS) $(LIBSOUP_CFLAGS) $(LIBSECRET_CFLAGS) $(WEBKIT2_CFLAGS) 
$(JSON_GLIB_CFLAGS) -I$(top_srcdir) -I$(top_builddir)/gthumb 
 libfacebook_la_LDFLAGS = $(EXTENSION_LIBTOOL_FLAGS)
-libfacebook_la_LIBADD = $(GTHUMB_LIBS) $(LIBSOUP_LIBS) $(LIBSECRET_LIBS) $(WEBKIT2_LIBS) $(JSON_GLIB_LIBS) 
../export_tools/libexport_tools.la ../oauth/liboauth.la ../importer/libimporter.la
+libfacebook_la_LIBADD = $(GTHUMB_LIBS) $(LIBSOUP_LIBS) $(LIBSECRET_LIBS) $(WEBKIT2_LIBS) $(JSON_GLIB_LIBS) 
../export_tools/libexport_tools.la ../oauth/liboauth.la ../photo_importer/libphoto_importer.la 
../importer/libimporter.la
 libfacebook_la_DEPENDENCIES = $(top_builddir)/gthumb/gthumb$(EXEEXT)
 
 extensioninidir = $(extensiondir)
diff --git a/extensions/facebook/actions.c b/extensions/facebook/actions.c
index d3162e6..8cf8140 100644
--- a/extensions/facebook/actions.c
+++ b/extensions/facebook/actions.c
@@ -28,11 +28,13 @@
 
 
 void
-gth_browser_activate_action_export_facebook (GtkAction  *action,
-                                            GthBrowser *browser)
+gth_browser_activate_export_facebook (GSimpleAction    *action,
+                                     GVariant          *parameter,
+                                     gpointer           user_data)
 {
-       GList *items;
-       GList *file_list;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GList      *items;
+       GList      *file_list;
 
        items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
        file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items);
@@ -46,8 +48,9 @@ gth_browser_activate_action_export_facebook (GtkAction  *action,
 
 
 void
-gth_browser_activate_action_import_facebook (GtkAction  *action,
-                                            GthBrowser *browser)
+gth_browser_activate_import_facebook (GSimpleAction    *action,
+                                     GVariant          *parameter,
+                                     gpointer           user_data)
 {
-       dlg_import_from_facebook (browser);
+       dlg_import_from_facebook (GTH_BROWSER (user_data));
 }
diff --git a/extensions/facebook/actions.h b/extensions/facebook/actions.h
index c184b9a..7900bb9 100644
--- a/extensions/facebook/actions.h
+++ b/extensions/facebook/actions.h
@@ -22,11 +22,11 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
+#include <gthumb.h>
 
 #define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
 
-DEFINE_ACTION(gth_browser_activate_action_export_facebook)
-DEFINE_ACTION(gth_browser_activate_action_import_facebook)
+DEF_ACTION_CALLBACK (gth_browser_activate_export_facebook)
+DEF_ACTION_CALLBACK (gth_browser_activate_import_facebook)
 
 #endif /* ACTIONS_H */
diff --git a/extensions/facebook/callbacks.c b/extensions/facebook/callbacks.c
index 1c8b087..ef95377 100644
--- a/extensions/facebook/callbacks.c
+++ b/extensions/facebook/callbacks.c
@@ -24,86 +24,36 @@
 #include <glib/gi18n.h>
 #include <glib-object.h>
 #include <gthumb.h>
+#include <extensions/export_tools/export-tools.h>
+#include <extensions/photo_importer/photo-importer.h>
 #include "actions.h"
 
 
-#define BROWSER_DATA_KEY "facebook-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <menu name='Import' action='ImportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='File_Import_Facebook'/>"
-"        </placeholder>"
-"      </menu>"
-"      <menu name='Export' action='ExportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='File_Export_Facebook'/>"
-"        </placeholder>"
-"      </menu>"
-"    </menu>"
-"  </menubar>"
-"  <popup name='ExportPopup'>"
-"    <placeholder name='Web_Services'>"
-"      <menuitem action='File_Export_Facebook'/>"
-"    </placeholder>"
-"  </popup>"
-"</ui>";
-
-
-static GthActionEntryExt action_entries[] = {
-       { "File_Import_Facebook", "site-facebook",
-         N_("Face_book..."), NULL,
-         N_("Download photos from Facebook"),
-         GTH_ACTION_FLAG_ALWAYS_SHOW_IMAGE,
-         G_CALLBACK (gth_browser_activate_action_import_facebook) },
-       { "File_Export_Facebook", "site-facebook",
-         N_("Face_book..."), NULL,
-         N_("Upload photos to Facebook"),
-         GTH_ACTION_FLAG_ALWAYS_SHOW_IMAGE,
-         G_CALLBACK (gth_browser_activate_action_export_facebook) },
+static const GActionEntry actions[] = {
+       { "export-facebook", gth_browser_activate_export_facebook },
+       { "import-facebook", gth_browser_activate_import_facebook }
 };
 
 
-typedef struct {
-       GtkActionGroup *action_group;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
-
-
 void
 fb__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GError      *error = NULL;
-       guint        merge_id;
-
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
-
-       data->action_group = gtk_action_group_new ("Facebook Actions");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-       _gtk_action_group_add_actions_with_flags (data->action_group,
-                                                 action_entries,
-                                                 G_N_ELEMENTS (action_entries),
-                                                 browser);
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
-
-       merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, 
&error);
-       if (merge_id == 0) {
-               g_warning ("building ui failed: %s", error->message);
-               g_clear_error (&error);
-       }
-
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
+       g_action_map_add_action_entries (G_ACTION_MAP (browser),
+                                        actions,
+                                        G_N_ELEMENTS (actions),
+                                        browser);
+       gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_WEB_EXPORTERS),
+                                      GTH_MENU_MANAGER_NEW_MERGE_ID,
+                                      "Facebook…",
+                                      "win.export-facebook",
+                                      NULL,
+                                      "site-facebook");
+       gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_WEB_IMPORTERS),
+                                      GTH_MENU_MANAGER_NEW_MERGE_ID,
+                                      "Facebook…",
+                                      "win.import-facebook",
+                                      NULL,
+                                      "site-facebook");
 }
diff --git a/extensions/facebook/facebook.extension.in.in b/extensions/facebook/facebook.extension.in.in
index afdadc9..6495fef 100644
--- a/extensions/facebook/facebook.extension.in.in
+++ b/extensions/facebook/facebook.extension.in.in
@@ -11,4 +11,4 @@ Category=Exporter
 Type=module
 File=%LIBRARY%
 API=%GTHUMB_API_VERSION%
-Requires=importer;export_tools;oauth
+Requires=photo_importer;export_tools;oauth
diff --git a/extensions/file_viewer/gth-file-viewer-page.c b/extensions/file_viewer/gth-file-viewer-page.c
index 4a1a32b..3f8db53 100644
--- a/extensions/file_viewer/gth-file-viewer-page.c
+++ b/extensions/file_viewer/gth-file-viewer-page.c
@@ -25,22 +25,12 @@
 #define GTH_FILE_VIEWER_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GTH_TYPE_FILE_VIEWER_PAGE, 
GthFileViewerPagePrivate))
 
 
-static const char *file_viewer_ui_info =
-"<ui>"
-"  <toolbar name='ViewerToolBar'>"
-"    <placeholder name='ViewerCommands'>"
-"    </placeholder>"
-"  </toolbar>"
-"</ui>";
-
-
 struct _GthFileViewerPagePrivate {
        GthBrowser     *browser;
        GtkWidget      *viewer;
        GtkWidget      *icon;
        GtkWidget      *label;
        GthFileData    *file_data;
-       guint           merge_id;
        GthThumbLoader *thumb_loader;
 };
 
@@ -160,30 +150,14 @@ gth_file_viewer_page_real_deactivate (GthViewerPage *base)
 static void
 gth_file_viewer_page_real_show (GthViewerPage *base)
 {
-       GthFileViewerPage *self;
-       GError            *error = NULL;
-
-       self = (GthFileViewerPage*) base;
-
-       self->priv->merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager 
(self->priv->browser), file_viewer_ui_info, -1, &error);
-       if (self->priv->merge_id == 0) {
-               g_warning ("ui building failed: %s", error->message);
-               g_error_free (error);
-       }
+       /* void */
 }
 
 
 static void
 gth_file_viewer_page_real_hide (GthViewerPage *base)
 {
-       GthFileViewerPage *self;
-
-       self = (GthFileViewerPage*) base;
-
-       if (self->priv->merge_id != 0) {
-               gtk_ui_manager_remove_ui (gth_browser_get_ui_manager (self->priv->browser), 
self->priv->merge_id);
-               self->priv->merge_id = 0;
-       }
+       /* void */
 }
 
 
diff --git a/extensions/flicker/Makefile.am b/extensions/flicker/Makefile.am
index 3c8213a..1da7d2e 100644
--- a/extensions/flicker/Makefile.am
+++ b/extensions/flicker/Makefile.am
@@ -12,7 +12,7 @@ libflicker_la_SOURCES =                       \
 
 libflicker_la_CFLAGS = $(GTHUMB_CFLAGS) $(LIBSOUP_CFLAGS) $(LIBSECRET_CFLAGS) -I$(top_srcdir) 
-I$(top_builddir)/gthumb 
 libflicker_la_LDFLAGS = $(EXTENSION_LIBTOOL_FLAGS)
-libflicker_la_LIBADD = $(GTHUMB_LIBS) $(LIBSOUP_LIBS) $(LIBSECRET_LIBS) ../importer/libimporter.la 
../export_tools/libexport_tools.la ../flicker_utils/libflicker_utils.la
+libflicker_la_LIBADD = $(GTHUMB_LIBS) $(LIBSOUP_LIBS) $(LIBSECRET_LIBS) 
../photo_importer/libphoto_importer.la ../importer/libimporter.la ../export_tools/libexport_tools.la 
../flicker_utils/libflicker_utils.la
 libflicker_la_DEPENDENCIES = $(top_builddir)/gthumb/gthumb$(EXEEXT)
 
 extensioninidir = $(extensiondir)
diff --git a/extensions/flicker/actions.c b/extensions/flicker/actions.c
index 0ad858a..b659906 100644
--- a/extensions/flicker/actions.c
+++ b/extensions/flicker/actions.c
@@ -49,11 +49,13 @@ static FlickrServer www_flickr_com = {
 
 
 void
-gth_browser_activate_action_export_flicker (GtkAction  *action,
-                                           GthBrowser *browser)
+gth_browser_activate_export_flickr (GSimpleAction      *action,
+                                   GVariant            *parameter,
+                                   gpointer             user_data)
 {
-       GList *items;
-       GList *file_list;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GList      *items;
+       GList      *file_list;
 
        items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
        file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items);
@@ -67,8 +69,9 @@ gth_browser_activate_action_export_flicker (GtkAction  *action,
 
 
 void
-gth_browser_activate_action_import_flicker (GtkAction  *action,
-                                           GthBrowser *browser)
+gth_browser_activate_import_flickr (GSimpleAction      *action,
+                                   GVariant            *parameter,
+                                   gpointer             user_data)
 {
-       dlg_import_from_flickr (&www_flickr_com, browser);
+       dlg_import_from_flickr (&www_flickr_com, GTH_BROWSER (user_data));
 }
diff --git a/extensions/flicker/actions.h b/extensions/flicker/actions.h
index 6edd033..7fef757 100644
--- a/extensions/flicker/actions.h
+++ b/extensions/flicker/actions.h
@@ -22,11 +22,9 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
+#include <gthumb.h>
 
-#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
-
-DEFINE_ACTION(gth_browser_activate_action_export_flicker)
-DEFINE_ACTION(gth_browser_activate_action_import_flicker)
+DEF_ACTION_CALLBACK (gth_browser_activate_export_flickr)
+DEF_ACTION_CALLBACK (gth_browser_activate_import_flickr)
 
 #endif /* ACTIONS_H */
diff --git a/extensions/flicker/callbacks.c b/extensions/flicker/callbacks.c
index 9c7420c..c2886fa 100644
--- a/extensions/flicker/callbacks.c
+++ b/extensions/flicker/callbacks.c
@@ -24,86 +24,36 @@
 #include <glib/gi18n.h>
 #include <glib-object.h>
 #include <gthumb.h>
+#include <extensions/export_tools/export-tools.h>
+#include <extensions/photo_importer/photo-importer.h>
 #include "actions.h"
 
 
-#define BROWSER_DATA_KEY "flicker-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <menu name='Import' action='ImportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='File_Import_Flicker'/>"
-"        </placeholder>"
-"      </menu>"
-"      <menu name='Export' action='ExportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='File_Export_Flicker'/>"
-"        </placeholder>"
-"      </menu>"
-"    </menu>"
-"  </menubar>"
-"  <popup name='ExportPopup'>"
-"    <placeholder name='Web_Services'>"
-"      <menuitem action='File_Export_Flicker'/>"
-"    </placeholder>"
-"  </popup>"
-"</ui>";
-
-
-static GthActionEntryExt action_entries[] = {
-       { "File_Import_Flicker", "site-flickr",
-         N_("_Flickr..."), NULL,
-         N_("Download photos from Flickr"),
-         GTH_ACTION_FLAG_ALWAYS_SHOW_IMAGE,
-         G_CALLBACK (gth_browser_activate_action_import_flicker) },
-       { "File_Export_Flicker", "site-flickr",
-         N_("_Flickr..."), NULL,
-         N_("Upload photos to Flickr"),
-         GTH_ACTION_FLAG_ALWAYS_SHOW_IMAGE,
-         G_CALLBACK (gth_browser_activate_action_export_flicker) },
+static const GActionEntry actions[] = {
+       { "export-flickr", gth_browser_activate_export_flickr },
+       { "import-flickr", gth_browser_activate_import_flickr }
 };
 
 
-typedef struct {
-       GtkActionGroup *action_group;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
-
-
 void
 fl__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GError      *error = NULL;
-       guint        merge_id;
-
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
-
-       data->action_group = gtk_action_group_new ("Flicker Actions");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-       _gtk_action_group_add_actions_with_flags (data->action_group,
-                                                 action_entries,
-                                                 G_N_ELEMENTS (action_entries),
-                                                 browser);
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
-
-       merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, 
&error);
-       if (merge_id == 0) {
-               g_warning ("building ui failed: %s", error->message);
-               g_clear_error (&error);
-       }
-
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
+       g_action_map_add_action_entries (G_ACTION_MAP (browser),
+                                        actions,
+                                        G_N_ELEMENTS (actions),
+                                        browser);
+       gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_WEB_EXPORTERS),
+                                      GTH_MENU_MANAGER_NEW_MERGE_ID,
+                                      "Flickr…",
+                                      "win.export-flickr",
+                                      NULL,
+                                      "site-flickr");
+       gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_WEB_IMPORTERS),
+                                      GTH_MENU_MANAGER_NEW_MERGE_ID,
+                                      "Flickr…",
+                                      "win.import-flickr",
+                                      NULL,
+                                      "site-flickr");
 }
diff --git a/extensions/flicker/flicker.extension.in.in b/extensions/flicker/flicker.extension.in.in
index cc00d2b..24906c1 100644
--- a/extensions/flicker/flicker.extension.in.in
+++ b/extensions/flicker/flicker.extension.in.in
@@ -11,4 +11,4 @@ Category=Exporter
 Type=module
 File=%LIBRARY%
 API=%GTHUMB_API_VERSION%
-Requires=importer;export_tools;flicker_utils
+Requires=photo_importer;export_tools;flicker_utils
diff --git a/extensions/photo_importer/Makefile.am b/extensions/photo_importer/Makefile.am
index 877adf4..aefde05 100644
--- a/extensions/photo_importer/Makefile.am
+++ b/extensions/photo_importer/Makefile.am
@@ -11,7 +11,9 @@ libphoto_importer_la_SOURCES =                \
        dlg-photo-importer.c            \
        dlg-photo-importer.h            \
        main.c                          \
-       preferences.h
+       preferences.h                   \
+       resources.c                     \
+       resources.h
        
 libphoto_importer_la_CFLAGS = $(GTHUMB_CFLAGS) -I$(top_srcdir) -I$(top_builddir)/gthumb 
 libphoto_importer_la_LDFLAGS = $(EXTENSION_LIBTOOL_FLAGS)
@@ -35,3 +37,4 @@ dist-hook:
        cd $(distdir); rm -f $(CLEANFILES)
 
 -include $(top_srcdir)/git.mk
+-include $(top_srcdir)/extension-resources.mk
diff --git a/extensions/photo_importer/actions.c b/extensions/photo_importer/actions.c
index cb02754..45b8449 100644
--- a/extensions/photo_importer/actions.c
+++ b/extensions/photo_importer/actions.c
@@ -27,10 +27,11 @@
 
 
 void
-gth_browser_activate_action_import_from_device (GtkAction  *action,
-                                               GthBrowser *browser)
+gth_browser_activate_import_device (GSimpleAction      *action,
+                                   GVariant            *parameter,
+                                   gpointer             user_data)
 {
-       dlg_photo_importer_from_device (browser, NULL);
+       dlg_photo_importer_from_device (GTH_BROWSER (user_data), NULL);
 }
 
 
@@ -58,11 +59,13 @@ folder_chooser_response_cb (GtkDialog *dialog,
 
 
 void
-gth_browser_activate_action_import_from_folder (GtkAction  *action,
-                                               GthBrowser *browser)
+gth_browser_activate_import_folder (GSimpleAction      *action,
+                                   GVariant            *parameter,
+                                   gpointer             user_data)
 {
-       GtkWidget *chooser;
-       GFile     *folder;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GtkWidget  *chooser;
+       GFile      *folder;
 
        chooser = gtk_file_chooser_dialog_new (_("Choose a folder"),
                                               GTK_WINDOW (browser),
diff --git a/extensions/photo_importer/actions.h b/extensions/photo_importer/actions.h
index 644d72d..df3bb2a 100644
--- a/extensions/photo_importer/actions.h
+++ b/extensions/photo_importer/actions.h
@@ -22,11 +22,14 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
+#include <gthumb.h>
 
 #define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
 
 DEFINE_ACTION(gth_browser_activate_action_import_from_device)
 DEFINE_ACTION(gth_browser_activate_action_import_from_folder)
 
+DEF_ACTION_CALLBACK (gth_browser_activate_import_device)
+DEF_ACTION_CALLBACK (gth_browser_activate_import_folder)
+
 #endif /* ACTIONS_H */
diff --git a/extensions/photo_importer/callbacks.c b/extensions/photo_importer/callbacks.c
index 2048453..47a044d 100644
--- a/extensions/photo_importer/callbacks.c
+++ b/extensions/photo_importer/callbacks.c
@@ -26,77 +26,50 @@
 #include <gthumb.h>
 #include "actions.h"
 #include "dlg-photo-importer.h"
+#include "photo-importer.h"
 #include "preferences.h"
 
 
-#define BROWSER_DATA_KEY "photo-importer-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <menu name='Import' action='ImportMenu'>"
-"        <placeholder name='Misc_Actions'>"
-"          <menuitem action='File_ImportFromDevice'/>"
-"          <menuitem action='File_ImportFromFolder'/>"
-"        </placeholder>"
-"      </menu>"
-"    </menu>"
-"  </menubar>"
-"</ui>";
-
-
-static GtkActionEntry action_entries[] = {
-       { "File_ImportFromDevice", "camera-photo",
-         N_("_Removable Device..."), NULL,
-         N_("Import photos and other files from a removable device"),
-         G_CALLBACK (gth_browser_activate_action_import_from_device) },
-       { "File_ImportFromFolder", "folder",
-         N_("F_older..."), NULL,
-         N_("Import photos and other files from a folder"),
-         G_CALLBACK (gth_browser_activate_action_import_from_folder) }
+static const GActionEntry actions[] = {
+       { "import-device", gth_browser_activate_import_device },
+       { "import-folder", gth_browser_activate_import_folder }
 };
 
 
-typedef struct {
-       GtkActionGroup *action_group;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
+static const GthMenuEntry action_entries[] = {
+       { N_("_Removable Device..."), "win.import-device", NULL, "camera-photo-symbolic" },
+       { N_("F_older..."), "win.import-folder", NULL, "folder-symbolic" }
+};
 
 
 void
 pi__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GError      *error = NULL;
-       guint        merge_id;
+       GtkBuilder      *builder;
+       GMenuModel      *import_menu;
+       GMenu           *other_actions;
 
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
+       g_action_map_add_action_entries (G_ACTION_MAP (browser),
+                                        actions,
+                                        G_N_ELEMENTS (actions),
+                                        browser);
+
+       builder = gtk_builder_new_from_resource ("/org/gnome/gThumb/photo_importer/data/ui/import-menu.ui");
+       import_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "import-menu"));
+       other_actions = gth_menu_manager_get_menu (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_GEARS_OTHER_ACTIONS));
+       g_menu_append_submenu (other_actions, _("I_mport From"), import_menu);
+
+       gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_WEB_IMPORTERS, G_MENU 
(gtk_builder_get_object (builder, "web-importers")));
+       gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_OTHER_IMPORTERS, G_MENU 
(gtk_builder_get_object (builder, "other-importers")));
 
-       data->action_group = gtk_action_group_new ("Photo Importer Actions");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-       gtk_action_group_add_actions (data->action_group,
-                                     action_entries,
-                                     G_N_ELEMENTS (action_entries),
-                                     browser);
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
+       gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_OTHER_IMPORTERS),
+                                        action_entries,
+                                        G_N_ELEMENTS (action_entries));
 
-       merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, 
&error);
-       if (merge_id == 0) {
-               g_warning ("building ui failed: %s", error->message);
-               g_clear_error (&error);
-       }
+       g_object_unref (builder);
 
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
 }
 
 
@@ -187,7 +160,7 @@ pi__dlg_preferences_construct_cb (GtkWidget  *dialog,
        GtkWidget       *widget;
 
        data = g_new0 (PreferencesData, 1);
-       data->builder = _gtk_builder_new_from_file("photo-importer-options.ui", "photo_importer");
+       data->builder = gtk_builder_new_from_resource 
("/org/gnome/gThumb/photo_importer/data/ui/photo-importer-options.ui");
        data->settings = g_settings_new (GTHUMB_PHOTO_IMPORTER_SCHEMA);
 
        general_vbox = _gtk_builder_get_widget (dialog_builder, "general_vbox");
diff --git a/extensions/photo_importer/data/ui/Makefile.am b/extensions/photo_importer/data/ui/Makefile.am
index 328ca20..cefd059 100644
--- a/extensions/photo_importer/data/ui/Makefile.am
+++ b/extensions/photo_importer/data/ui/Makefile.am
@@ -1,5 +1,6 @@
-uidir = $(pkgdatadir)/ui
-ui_DATA = photo-importer.ui photo-importer-options.ui
-EXTRA_DIST = $(ui_DATA)
+EXTRA_DIST =                           \
+       import-menu.ui                  \
+       photo-importer.ui               \
+       photo-importer-options.ui
 
 -include $(top_srcdir)/git.mk
diff --git a/extensions/photo_importer/data/ui/import-menu.ui 
b/extensions/photo_importer/data/ui/import-menu.ui
new file mode 100644
index 0000000..e602aa3
--- /dev/null
+++ b/extensions/photo_importer/data/ui/import-menu.ui
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <menu id="import-menu">
+    <section id="other-importers">
+    </section>
+    <section id="web-importers">
+    </section>
+  </menu>
+</interface>
diff --git a/extensions/photo_importer/dlg-photo-importer.c b/extensions/photo_importer/dlg-photo-importer.c
index 2009ab2..52a1224 100644
--- a/extensions/photo_importer/dlg-photo-importer.c
+++ b/extensions/photo_importer/dlg-photo-importer.c
@@ -567,7 +567,7 @@ dlg_photo_importer (GthBrowser            *browser,
 
        data = g_new0 (DialogData, 1);
        data->browser = browser;
-       data->builder = _gtk_builder_new_from_file ("photo-importer.ui", "photo_importer");
+       data->builder = gtk_builder_new_from_resource 
("/org/gnome/gThumb/photo_importer/data/ui/photo-importer.ui");
        data->settings = g_settings_new (GTHUMB_PHOTO_IMPORTER_SCHEMA);
        data->selector_type = selector_type;
        data->source = _g_object_ref (source);
diff --git a/extensions/photo_importer/main.c b/extensions/photo_importer/main.c
index 04bd8bb..6b52ac7 100644
--- a/extensions/photo_importer/main.c
+++ b/extensions/photo_importer/main.c
@@ -30,7 +30,7 @@ G_MODULE_EXPORT void
 gthumb_extension_activate (void)
 {
        gth_hook_add_callback ("import-photos", 10, G_CALLBACK (pi__import_photos_cb), NULL);
-       gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (pi__gth_browser_construct_cb), NULL);
+       gth_hook_add_callback ("gth-browser-construct", 9, G_CALLBACK (pi__gth_browser_construct_cb), NULL);
        gth_hook_add_callback ("dlg-preferences-construct", 10, G_CALLBACK 
(pi__dlg_preferences_construct_cb), NULL);
 }
 
diff --git a/extensions/photo_importer/photo-importer.h b/extensions/photo_importer/photo-importer.h
new file mode 100644
index 0000000..4519cc9
--- /dev/null
+++ b/extensions/photo_importer/photo-importer.h
@@ -0,0 +1,28 @@
+/* -*- 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/>.
+ */
+
+#ifndef PHOTO_IMPORTER_H
+#define PHOTO_IMPORTER_H
+
+#define GTH_BROWSER_MENU_MANAGER_WEB_IMPORTERS "gears.import.web-importers"
+#define GTH_BROWSER_MENU_MANAGER_OTHER_IMPORTERS "gears.import.other-importers"
+
+#endif /* PHOTO_IMPORTER_H */
diff --git a/extensions/photo_importer/resources.xml b/extensions/photo_importer/resources.xml
new file mode 100644
index 0000000..d1160f2
--- /dev/null
+++ b/extensions/photo_importer/resources.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/gThumb/photo_importer">
+    <file compressed="true">data/ui/photo-importer.ui</file>
+    <file compressed="true">data/ui/photo-importer-options.ui</file>
+    <file compressed="true">data/ui/import-menu.ui</file>
+  </gresource>
+</gresources>
diff --git a/extensions/photobucket/actions.c b/extensions/photobucket/actions.c
index 05a08d8..983bfc9 100644
--- a/extensions/photobucket/actions.c
+++ b/extensions/photobucket/actions.c
@@ -27,11 +27,13 @@
 
 
 void
-gth_browser_activate_action_export_photobucket (GtkAction  *action,
-                                               GthBrowser *browser)
+gth_browser_activate_export_photobucket (GSimpleAction *action,
+                                        GVariant       *parameter,
+                                        gpointer        user_data)
 {
-       GList *items;
-       GList *file_list;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GList      *items;
+       GList      *file_list;
 
        items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
        file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items);
diff --git a/extensions/photobucket/actions.h b/extensions/photobucket/actions.h
index 32016c5..cc70091 100644
--- a/extensions/photobucket/actions.h
+++ b/extensions/photobucket/actions.h
@@ -22,10 +22,8 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
+#include <gthumb.h>
 
-#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
-
-DEFINE_ACTION(gth_browser_activate_action_export_photobucket)
+DEF_ACTION_CALLBACK (gth_browser_activate_export_photobucket)
 
 #endif /* ACTIONS_H */
diff --git a/extensions/photobucket/callbacks.c b/extensions/photobucket/callbacks.c
index 1e65c5c..182214a 100644
--- a/extensions/photobucket/callbacks.c
+++ b/extensions/photobucket/callbacks.c
@@ -24,76 +24,29 @@
 #include <glib/gi18n.h>
 #include <glib-object.h>
 #include <gthumb.h>
+#include <extensions/export_tools/export-tools.h>
+#include <extensions/photo_importer/photo-importer.h>
 #include "actions.h"
 
 
-#define BROWSER_DATA_KEY "photobucket-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <menu name='Export' action='ExportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='File_Export_PhotoBucket'/>"
-"        </placeholder>"
-"      </menu>"
-"    </menu>"
-"  </menubar>"
-"  <popup name='ExportPopup'>"
-"    <placeholder name='Web_Services'>"
-"      <menuitem action='File_Export_PhotoBucket'/>"
-"    </placeholder>"
-"  </popup>"
-"</ui>";
-
-
-static GthActionEntryExt action_entries[] = {
-       { "File_Export_PhotoBucket", "site-photobucket",
-         N_("Photobucket..."), NULL,
-         N_("Upload photos to Photobucket"),
-         GTH_ACTION_FLAG_ALWAYS_SHOW_IMAGE,
-         G_CALLBACK (gth_browser_activate_action_export_photobucket) },
+static const GActionEntry actions[] = {
+       { "export-photobucket", gth_browser_activate_export_photobucket }
 };
 
 
-typedef struct {
-       GtkActionGroup *action_group;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
-
-
 void
 pb__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GError      *error = NULL;
-       guint        merge_id;
-
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
-
-       data->action_group = gtk_action_group_new ("PhotoBucket Actions");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-       _gtk_action_group_add_actions_with_flags (data->action_group,
-                                                 action_entries,
-                                                 G_N_ELEMENTS (action_entries),
-                                                 browser);
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
-
-       merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, 
&error);
-       if (merge_id == 0) {
-               g_warning ("building ui failed: %s", error->message);
-               g_clear_error (&error);
-       }
-
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
+       g_action_map_add_action_entries (G_ACTION_MAP (browser),
+                                        actions,
+                                        G_N_ELEMENTS (actions),
+                                        browser);
+       gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_WEB_EXPORTERS),
+                                      GTH_MENU_MANAGER_NEW_MERGE_ID,
+                                      "Photobucket…",
+                                      "win.export-photobucket",
+                                      NULL,
+                                      "site-photobucket");
 }
diff --git a/extensions/picasaweb/actions.c b/extensions/picasaweb/actions.c
index dceea1e..36900f8 100644
--- a/extensions/picasaweb/actions.c
+++ b/extensions/picasaweb/actions.c
@@ -28,19 +28,22 @@
 
 
 void
-gth_browser_activate_action_import_picasaweb (GtkAction  *action,
-                                             GthBrowser *browser)
+gth_browser_activate_import_picasaweb (GSimpleAction   *action,
+                                      GVariant         *parameter,
+                                      gpointer          user_data)
 {
-       dlg_import_from_picasaweb (browser);
+       dlg_import_from_picasaweb (GTH_BROWSER (user_data));
 }
 
 
 void
-gth_browser_activate_action_export_picasaweb (GtkAction  *action,
-                                             GthBrowser *browser)
+gth_browser_activate_export_picasaweb (GSimpleAction   *action,
+                                      GVariant         *parameter,
+                                      gpointer          user_data)
 {
-       GList *items;
-       GList *file_list;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GList      *items;
+       GList      *file_list;
 
        items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
        file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items);
diff --git a/extensions/picasaweb/actions.h b/extensions/picasaweb/actions.h
index 6620b5f..8e67be3 100644
--- a/extensions/picasaweb/actions.h
+++ b/extensions/picasaweb/actions.h
@@ -22,11 +22,9 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
+#include <gthumb.h>
 
-#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
-
-DEFINE_ACTION(gth_browser_activate_action_import_picasaweb)
-DEFINE_ACTION(gth_browser_activate_action_export_picasaweb)
+DEF_ACTION_CALLBACK (gth_browser_activate_export_picasaweb)
+DEF_ACTION_CALLBACK (gth_browser_activate_import_picasaweb)
 
 #endif /* ACTIONS_H */
diff --git a/extensions/picasaweb/callbacks.c b/extensions/picasaweb/callbacks.c
index fcb03d0..14e45f7 100644
--- a/extensions/picasaweb/callbacks.c
+++ b/extensions/picasaweb/callbacks.c
@@ -24,86 +24,36 @@
 #include <glib/gi18n.h>
 #include <glib-object.h>
 #include <gthumb.h>
+#include <extensions/export_tools/export-tools.h>
+#include <extensions/photo_importer/photo-importer.h>
 #include "actions.h"
 
 
-#define BROWSER_DATA_KEY "picasaweb-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <menu name='Import' action='ImportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='File_Import_PicasaWeb'/>"
-"        </placeholder>"
-"      </menu>"
-"      <menu name='Export' action='ExportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='File_Export_PicasaWeb'/>"
-"        </placeholder>"
-"      </menu>"
-"    </menu>"
-"  </menubar>"
-"  <popup name='ExportPopup'>"
-"    <placeholder name='Web_Services'>"
-"      <menuitem action='File_Export_PicasaWeb'/>"
-"    </placeholder>"
-"  </popup>"
-"</ui>";
-
-
-static GthActionEntryExt action_entries[] = {
-       { "File_Import_PicasaWeb", "site-picasaweb",
-         N_("_Picasa Web Album..."), NULL,
-         N_("Download photos from Picasa Web Album"),
-         GTH_ACTION_FLAG_ALWAYS_SHOW_IMAGE,
-         G_CALLBACK (gth_browser_activate_action_import_picasaweb) },
-       { "File_Export_PicasaWeb", "site-picasaweb",
-         N_("_Picasa Web Album..."), NULL,
-         N_("Upload photos to Picasa Web Album"),
-         GTH_ACTION_FLAG_ALWAYS_SHOW_IMAGE,
-         G_CALLBACK (gth_browser_activate_action_export_picasaweb) },
+static const GActionEntry actions[] = {
+       { "export-picasaweb", gth_browser_activate_export_picasaweb },
+       { "import-picasaweb", gth_browser_activate_import_picasaweb }
 };
 
 
-typedef struct {
-       GtkActionGroup *action_group;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
-
-
 void
 pw__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GError      *error = NULL;
-       guint        merge_id;
-
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
-
-       data->action_group = gtk_action_group_new ("Picasa Web Actions");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-       _gtk_action_group_add_actions_with_flags (data->action_group,
-                                                 action_entries,
-                                                 G_N_ELEMENTS (action_entries),
-                                                 browser);
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
-
-       merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, 
&error);
-       if (merge_id == 0) {
-               g_warning ("building ui failed: %s", error->message);
-               g_clear_error (&error);
-       }
-
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
+       g_action_map_add_action_entries (G_ACTION_MAP (browser),
+                                        actions,
+                                        G_N_ELEMENTS (actions),
+                                        browser);
+       gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_WEB_EXPORTERS),
+                                      GTH_MENU_MANAGER_NEW_MERGE_ID,
+                                      _("_Picasa Web Album..."),
+                                      "win.export-picasaweb",
+                                      NULL,
+                                      "site-picasaweb");
+       gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_WEB_IMPORTERS),
+                                      GTH_MENU_MANAGER_NEW_MERGE_ID,
+                                      _("_Picasa Web Album..."),
+                                      "win.import-picasaweb",
+                                      NULL,
+                                      "site-picasaweb");
 }
diff --git a/extensions/webalbums/actions.c b/extensions/webalbums/actions.c
index 61dd14c..6e205a1 100644
--- a/extensions/webalbums/actions.c
+++ b/extensions/webalbums/actions.c
@@ -27,12 +27,14 @@
 
 
 void
-gth_browser_activate_action_export_webalbum (GtkAction  *action,
-                                            GthBrowser *browser)
+gth_browser_activate_create_web_album (GSimpleAction   *action,
+                                      GVariant         *parameter,
+                                      gpointer          user_data)
 {
-       GList *items;
-       GList *file_data_list;
-       GList *file_list;
+       GthBrowser *browser = GTH_BROWSER (user_data);
+       GList      *items;
+       GList      *file_data_list;
+       GList      *file_list;
 
        items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
        file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items);
diff --git a/extensions/webalbums/actions.h b/extensions/webalbums/actions.h
index 63952fa..25c319a 100644
--- a/extensions/webalbums/actions.h
+++ b/extensions/webalbums/actions.h
@@ -22,10 +22,8 @@
 #ifndef ACTIONS_H
 #define ACTIONS_H
 
-#include <gtk/gtk.h>
+#include <gthumb.h>
 
-#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
-
-DEFINE_ACTION(gth_browser_activate_action_export_webalbum)
+DEF_ACTION_CALLBACK (gth_browser_activate_create_web_album)
 
 #endif /* ACTIONS_H */
diff --git a/extensions/webalbums/callbacks.c b/extensions/webalbums/callbacks.c
index 809bf37..a8791eb 100644
--- a/extensions/webalbums/callbacks.c
+++ b/extensions/webalbums/callbacks.c
@@ -24,111 +24,38 @@
 #include <glib/gi18n.h>
 #include <glib-object.h>
 #include <gthumb.h>
+#include <extensions/export_tools/export-tools.h>
 #include "actions.h"
 
 
-#define BROWSER_DATA_KEY "webalbums-browser-data"
-
-
-static const char *ui_info =
-"<ui>"
-/* FIXME
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <placeholder name='Misc_Actions'>"
-"        <menuitem action='Tool_CreateWebAlbum'/>"
-"      </placeholder>"
-"    </menu>"
-"  </menubar>"
-*/
-"  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <menu name='Export' action='ExportMenu'>"
-"        <placeholder name='Web_Services'>"
-"          <menuitem action='Tool_CreateWebAlbum'/>"
-"        </placeholder>"
-"      </menu>"
-"    </menu>"
-"  </menubar>"
-/*
-"  <popup name='ListToolsPopup'>"
-"    <placeholder name='Tools'>"
-"      <menuitem name='CreateWebAlbum' action='Tool_CreateWebAlbum'/>"
-"    </placeholder>"
-"  </popup>"
-*/
-
-"  <popup name='ExportPopup'>"
-"    <placeholder name='Web_Services'>"
-"      <menuitem action='Tool_CreateWebAlbum'/>"
-"    </placeholder>"
-"  </popup>"
-"</ui>";
-
-
-static GtkActionEntry action_entries[] = {
-       { "Tool_CreateWebAlbum", "webalbums",
-         N_("_Web Album..."), NULL,
-         N_("Create a static web album"),
-         G_CALLBACK (gth_browser_activate_action_export_webalbum) },
+static const GActionEntry actions[] = {
+       { "create-web-album", gth_browser_activate_create_web_album }
 };
 
 
-typedef struct {
-       GtkActionGroup *action_group;
-} BrowserData;
-
-
-static void
-browser_data_free (BrowserData *data)
-{
-       g_free (data);
-}
-
-
 void
 wa__gth_browser_construct_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GError      *error = NULL;
-       guint        merge_id;
-
        g_return_if_fail (GTH_IS_BROWSER (browser));
 
-       data = g_new0 (BrowserData, 1);
-
-       data->action_group = gtk_action_group_new ("Web Albums Actions");
-       gtk_action_group_set_translation_domain (data->action_group, NULL);
-       gtk_action_group_add_actions (data->action_group,
-                                     action_entries,
-                                     G_N_ELEMENTS (action_entries),
-                                     browser);
-       gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
-
-       merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, 
&error);
-       if (merge_id == 0) {
-               g_warning ("building ui failed: %s", error->message);
-               g_clear_error (&error);
-       }
-
-       g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) 
browser_data_free);
+       g_action_map_add_action_entries (G_ACTION_MAP (browser),
+                                        actions,
+                                        G_N_ELEMENTS (actions),
+                                        browser);
+       gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, 
GTH_BROWSER_MENU_MANAGER_OTHER_EXPORTERS),
+                                      GTH_MENU_MANAGER_NEW_MERGE_ID,
+                                      _("_Web Album..."),
+                                      "win.create-web-album",
+                                      NULL,
+                                      NULL);
 }
 
 
 void
 wa__gth_browser_update_sensitivity_cb (GthBrowser *browser)
 {
-       BrowserData *data;
-       GtkAction   *action;
-       int          n_selected;
-       gboolean     sensitive;
-
-       data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY);
-       g_return_if_fail (data != NULL);
+       int n_selected;
 
        n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view 
(browser)));
-       sensitive = n_selected > 0;
-
-       action = gtk_action_group_get_action (data->action_group, "File_CreateWebAlbum");
-       g_object_set (action, "sensitive", sensitive, NULL);
+       gth_window_enable_action (GTH_WINDOW (browser), "export-web-album", n_selected > 0);
 }
diff --git a/gthumb/dlg-preferences.c b/gthumb/dlg-preferences.c
index 1bc0d00..9f73a81 100644
--- a/gthumb/dlg-preferences.c
+++ b/gthumb/dlg-preferences.c
@@ -147,14 +147,6 @@ set_to_current_cb (GtkWidget  *widget,
 
 
 static void
-toolbar_style_changed_cb (GtkWidget  *widget,
-                         DialogData *data)
-{
-       g_settings_set_enum (data->browser_settings, PREF_BROWSER_TOOLBAR_STYLE, gtk_combo_box_get_active 
(GTK_COMBO_BOX (GET_WIDGET ("toolbar_style_combobox"))));
-}
-
-
-static void
 thumbnails_pane_orientation_changed_cb (GtkWidget  *widget,
                                        DialogData *data)
 {
@@ -295,8 +287,6 @@ dlg_preferences (GthBrowser *browser)
                                      g_settings_get_boolean (data->messages_settings, 
PREF_MSG_CONFIRM_DELETION));
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("ask_to_save_checkbutton")),
                                      g_settings_get_boolean (data->messages_settings, 
PREF_MSG_SAVE_MODIFIED_IMAGE));
-       gtk_combo_box_set_active (GTK_COMBO_BOX (GET_WIDGET ("toolbar_style_combobox")),
-                                 g_settings_get_enum (data->browser_settings, PREF_BROWSER_TOOLBAR_STYLE));
        gtk_combo_box_set_active (GTK_COMBO_BOX (GET_WIDGET ("thumbnails_pane_orient_combobox")),
                                  g_settings_get_enum (data->browser_settings, 
PREF_BROWSER_VIEWER_THUMBNAILS_ORIENT));
 
@@ -331,10 +321,6 @@ dlg_preferences (GthBrowser *browser)
 
        /* general */
 
-       g_signal_connect (G_OBJECT (GET_WIDGET ("toolbar_style_combobox")),
-                         "changed",
-                         G_CALLBACK (toolbar_style_changed_cb),
-                         data);
        g_signal_connect (GET_WIDGET ("thumbnails_pane_orient_combobox"),
                          "changed",
                          G_CALLBACK (thumbnails_pane_orientation_changed_cb),
diff --git a/gthumb/gth-browser-actions-callbacks.c b/gthumb/gth-browser-actions-callbacks.c
index 651f2b3..7d9e04f 100644
--- a/gthumb/gth-browser-actions-callbacks.c
+++ b/gthumb/gth-browser-actions-callbacks.c
@@ -97,19 +97,6 @@ gth_browser_activate_action_view_thumbnails (GtkAction  *action,
 
 
 void
-gth_browser_activate_action_view_toolbar (GtkAction  *action,
-                                         GthBrowser *browser)
-{
-       GSettings *settings;
-
-       settings = g_settings_new (GTHUMB_BROWSER_SCHEMA);
-       g_settings_set_boolean (settings, PREF_BROWSER_TOOLBAR_VISIBLE, gtk_toggle_action_get_active 
(GTK_TOGGLE_ACTION (action)));
-
-       g_object_unref (settings);
-}
-
-
-void
 gth_browser_activate_action_view_show_hidden_files (GtkAction  *action,
                                                    GthBrowser *browser)
 {
diff --git a/gthumb/gth-browser-actions-callbacks.h b/gthumb/gth-browser-actions-callbacks.h
index a6d4206..045383f 100644
--- a/gthumb/gth-browser-actions-callbacks.h
+++ b/gthumb/gth-browser-actions-callbacks.h
@@ -35,7 +35,6 @@ DEFINE_ACTION(gth_browser_activate_action_view_sort_by)
 DEFINE_ACTION(gth_browser_activate_action_view_filter)
 DEFINE_ACTION(gth_browser_activate_action_view_filterbar)
 DEFINE_ACTION(gth_browser_activate_action_view_thumbnails)
-DEFINE_ACTION(gth_browser_activate_action_view_toolbar)
 DEFINE_ACTION(gth_browser_activate_action_view_show_hidden_files)
 DEFINE_ACTION(gth_browser_activate_action_view_statusbar)
 DEFINE_ACTION(gth_browser_activate_action_view_sidebar)
diff --git a/gthumb/gth-browser-actions-entries.h b/gthumb/gth-browser-actions-entries.h
index a1ceff2..1f7a694 100644
--- a/gthumb/gth-browser-actions-entries.h
+++ b/gthumb/gth-browser-actions-entries.h
@@ -58,12 +58,9 @@ static const GthAccelerator gth_browser_accelerators[] = {
 
 
 static GthActionEntryExt gth_browser_action_entries[] = {
-       { "FileMenu", NULL, N_("_File") },
        { "EditMenu", NULL, N_("_Edit") },
        { "ViewMenu", NULL, N_("_View") },
        { "OpenWithMenu", NULL, N_("Open _With") },
-       { "ImportMenu", NULL, N_("I_mport From") },
-       { "ExportMenu", NULL, N_("E_xport To") },
 
        { "File_Open", GTK_STOCK_OPEN,
          NULL, NULL,
@@ -116,11 +113,6 @@ static GthActionEntryExt gth_browser_action_entries[] = {
 
 
 static GtkToggleActionEntry gth_browser_action_toggle_entries[] = {
-       { "View_Toolbar", NULL,
-         N_("_Toolbar"), NULL,
-         N_("View or hide the toolbar of this window"),
-         G_CALLBACK (gth_browser_activate_action_view_toolbar),
-         TRUE },
        { "View_Statusbar", NULL,
          N_("_Statusbar"), NULL,
          N_("View or hide the statusbar of this window"),
diff --git a/gthumb/gth-browser-ui.h b/gthumb/gth-browser-ui.h
index 36c9c66..b9d46dd 100644
--- a/gthumb/gth-browser-ui.h
+++ b/gthumb/gth-browser-ui.h
@@ -27,24 +27,6 @@
 static const char *fixed_ui_info =
 "<ui>"
 "  <menubar name='MenuBar'>"
-"    <menu name='File' action='FileMenu'>"
-"      <placeholder name='File_Actions'/>"
-"      <placeholder name='File_Actions_2'/>"
-"      <separator/>"
-"      <placeholder name='Folder_Actions'/>"
-"      <separator/>"
-"      <menu name='Import' action='ImportMenu'>"
-"        <placeholder name='Misc_Actions'/>"
-"        <separator/>"
-"        <placeholder name='Web_Services'/>"
-"      </menu>"
-"      <menu name='Export' action='ExportMenu'>"
-"        <placeholder name='Web_Services'/>"
-"        <separator/>"
-"        <placeholder name='Misc_Actions'/>"
-"      </menu>"
-"      <placeholder name='Misc_Actions'/>"
-"    </menu>"
 "    <menu name='Edit' action='EditMenu'>"
 "      <placeholder name='File_Actions_1'/>"
 "      <separator/>"
@@ -61,7 +43,6 @@ static const char *fixed_ui_info =
 "      <menuitem action='View_Stop'/>"
 "      <menuitem action='View_Reload'/>"
 "      <separator/>"
-"      <menuitem action='View_Toolbar'/>"
 "      <menuitem action='View_Statusbar'/>"
 "      <placeholder name='View_Bars'/>"
 "      <separator/>"
@@ -78,28 +59,6 @@ static const char *fixed_ui_info =
 "    <placeholder name='OtherMenus'/>"
 "  </menubar>"
 
-"  <toolbar name='ToolBar'>"
-"    <placeholder name='Export_Actions'/>"
-"    <placeholder name='SourceCommands'/>"
-"    <separator/>"
-"    <placeholder name='BrowserCommands'>"
-"    </placeholder>"
-"    <separator/>"
-"    <placeholder name='Edit_Actions'/>"
-"    <placeholder name='Edit_Actions_2'/>"
-"    <separator expand='true'/>"
-"    <placeholder name='BrowserCommandsSecondary'/>"
-"  </toolbar>"
-
-"  <toolbar name='ViewerToolBar'>"
-"    <placeholder name='ViewerCommands'/>"
-"    <separator/>"
-"    <placeholder name='Edit_Actions'/>"
-"    <placeholder name='Edit_Actions_2'/>"
-"    <separator expand='true'/>"
-"    <placeholder name='ViewerCommandsSecondary'/>"
-"  </toolbar>"
-
 "  <toolbar name='Fullscreen_ToolBar'>"
 "    <placeholder name='ViewerCommands'/>"
 "    <separator/>"
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index 652733f..519334a 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -102,7 +102,6 @@ struct _GthBrowserPrivate {
        GtkActionGroup    *actions;
        GtkWidget         *infobar;
        GtkWidget         *statusbar;
-       GtkWidget         *browser_toolbar;
        GtkWidget         *browser_right_container;
        GtkWidget         *browser_left_container;
        GtkWidget         *browser_sidebar;
@@ -127,14 +126,12 @@ struct _GthBrowserPrivate {
        GtkWidget         *viewer_sidebar_pane;
        GtkWidget         *viewer_sidebar_alignment;
        GtkWidget         *viewer_container;
-       GtkWidget         *viewer_toolbar;
        GthViewerPage     *viewer_page;
        GthImagePreloader *image_preloader;
 
        GtkWidget         *progress_dialog;
 
        GHashTable        *named_dialogs;
-       GList             *toolbar_menu_buttons[GTH_BROWSER_N_PAGES];
 
        guint              browser_ui_merge_id;
        guint              viewer_ui_merge_id;
@@ -3569,45 +3566,6 @@ _gth_browser_construct_step2 (gpointer user_data)
 
 
 static void
-_gth_browser_update_toolbar_style (GthBrowser *browser)
-{
-       GthToolbarStyle toolbar_style;
-       GtkToolbarStyle prop = GTK_TOOLBAR_BOTH;
-
-       toolbar_style = gth_pref_get_real_toolbar_style ();
-       switch (toolbar_style) {
-       case GTH_TOOLBAR_STYLE_TEXT_BELOW:
-               prop = GTK_TOOLBAR_BOTH;
-               break;
-       case GTH_TOOLBAR_STYLE_TEXT_BESIDE:
-               prop = GTK_TOOLBAR_BOTH_HORIZ;
-               break;
-       case GTH_TOOLBAR_STYLE_ICONS:
-               prop = GTK_TOOLBAR_ICONS;
-               break;
-       case GTH_TOOLBAR_STYLE_TEXT:
-               prop = GTK_TOOLBAR_TEXT;
-               break;
-       default:
-               break;
-       }
-
-       gtk_toolbar_set_style (GTK_TOOLBAR (browser->priv->browser_toolbar), prop);
-       gtk_toolbar_set_style (GTK_TOOLBAR (browser->priv->viewer_toolbar), prop);
-}
-
-
-static void
-pref_ui_toolbar_style_changed (GSettings  *settings,
-                              const char *key,
-                              gpointer    user_data)
-{
-       GthBrowser *browser = user_data;
-       _gth_browser_update_toolbar_style (browser);
-}
-
-
-static void
 pref_browser_properties_on_the_right_changed (GSettings  *settings,
                                              const char *key,
                                              gpointer    user_data)
@@ -3703,34 +3661,6 @@ pref_ui_viewer_thumbnails_orient_changed (GSettings  *settings,
 
 
 static void
-_gth_browser_set_toolbar_visibility (GthBrowser *browser,
-                                   gboolean    visible)
-{
-       g_return_if_fail (browser != NULL);
-
-       _gth_browser_set_action_active (browser, "View_Toolbar", visible);
-       if (visible) {
-               gtk_widget_show (browser->priv->browser_toolbar);
-               gtk_widget_show (browser->priv->viewer_toolbar);
-       }
-       else {
-               gtk_widget_hide (browser->priv->browser_toolbar);
-               gtk_widget_hide (browser->priv->viewer_toolbar);
-       }
-}
-
-
-static void
-pref_ui_toolbar_visible_changed (GSettings  *settings,
-                                const char *key,
-                                gpointer    user_data)
-{
-       GthBrowser *browser = user_data;
-       _gth_browser_set_toolbar_visibility (browser, g_settings_get_boolean (settings, key));
-}
-
-
-static void
 _gth_browser_set_statusbar_visibility (GthBrowser *browser,
                                       gboolean    visible)
 {
@@ -3950,8 +3880,6 @@ gth_browser_init (GthBrowser *browser)
        browser->priv->image_preloader = gth_image_preloader_new ();
        browser->priv->progress_dialog = NULL;
        browser->priv->named_dialogs = g_hash_table_new (g_str_hash, g_str_equal);
-       for (i = 0; i < GTH_BROWSER_N_PAGES; i++)
-               browser->priv->toolbar_menu_buttons[i] = NULL;
        browser->priv->browser_ui_merge_id = 0;
        browser->priv->viewer_ui_merge_id = 0;
        browser->priv->location = NULL;
@@ -4088,12 +4016,6 @@ gth_browser_init (GthBrowser *browser)
 
        /* -- image page -- */
 
-       /* toolbar */
-
-       browser->priv->viewer_toolbar = gtk_ui_manager_get_widget (browser->priv->ui, "/ViewerToolBar");
-       gtk_toolbar_set_show_arrow (GTK_TOOLBAR (browser->priv->viewer_toolbar), TRUE);
-       gth_window_attach_toolbar (GTH_WINDOW (browser), GTH_BROWSER_PAGE_VIEWER, 
browser->priv->viewer_toolbar);
-
        /* content */
 
        browser->priv->viewer_thumbnails_orientation = g_settings_get_enum (browser->priv->browser_settings, 
PREF_BROWSER_VIEWER_THUMBNAILS_ORIENT);
@@ -4223,6 +4145,7 @@ gth_browser_init (GthBrowser *browser)
 
                        gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_GEARS, 
G_MENU (menu));
                        gth_browser_add_menu_manager_for_menu (browser, 
GTH_BROWSER_MENU_MANAGER_GEARS_FOLDER_ACTIONS, G_MENU (gtk_builder_get_object (builder, "folder-actions")));
+                       gth_browser_add_menu_manager_for_menu (browser, 
GTH_BROWSER_MENU_MANAGER_GEARS_OTHER_ACTIONS, G_MENU (gtk_builder_get_object (builder, "other-actions")));
 
                        _gtk_window_add_accelerators_from_menu ((GTK_WINDOW (browser)), menu);
 
@@ -4269,7 +4192,7 @@ gth_browser_init (GthBrowser *browser)
                        browser->priv->history_menu = G_MENU (gtk_builder_get_object (builder, 
"visited-locations"));
                        gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL 
(gtk_builder_get_object (builder, "menu")));
                        gtk_widget_show_all (button);
-                       gtk_box_pack_start (GTK_BOX (gth_browser_get_headerbar_section (browser, 
GTH_BROWSER_HEADER_SECTION_BROWSER_LOCATIONS)), button, FALSE, FALSE, 0);
+                       gtk_box_pack_start (GTK_BOX (gth_browser_get_headerbar_section (browser, 
GTH_BROWSER_HEADER_SECTION_BROWSER_NAVIGATION)), button, FALSE, FALSE, 0);
 
                        g_object_unref (builder);
                }
@@ -4329,12 +4252,6 @@ gth_browser_init (GthBrowser *browser)
                                                          NULL);
        }
 
-       /* toolbar */
-
-       browser->priv->browser_toolbar = gtk_ui_manager_get_widget (browser->priv->ui, "/ToolBar");
-       gtk_toolbar_set_show_arrow (GTK_TOOLBAR (browser->priv->browser_toolbar), TRUE);
-       gth_window_attach_toolbar (GTH_WINDOW (browser), GTH_BROWSER_PAGE_BROWSER, 
browser->priv->browser_toolbar);
-
        /* infobar */
 
        browser->priv->infobar = gth_info_bar_new (NULL, NULL, NULL);
@@ -4582,8 +4499,6 @@ gth_browser_init (GthBrowser *browser)
        browser->priv->file_popup = gtk_ui_manager_get_widget (browser->priv->ui, "/FilePopup");
 
        _gth_browser_set_sidebar_visibility (browser, g_settings_get_boolean 
(browser->priv->browser_settings, PREF_BROWSER_SIDEBAR_VISIBLE));
-       _gth_browser_set_toolbar_visibility (browser, g_settings_get_boolean 
(browser->priv->browser_settings, PREF_BROWSER_TOOLBAR_VISIBLE));
-       _gth_browser_update_toolbar_style (browser);
 
        browser->priv->show_hidden_files = g_settings_get_boolean (browser->priv->browser_settings, 
PREF_BROWSER_SHOW_HIDDEN_FILES);
        _gth_browser_set_action_active (browser, "View_ShowHiddenFiles", browser->priv->show_hidden_files);
@@ -4619,10 +4534,6 @@ gth_browser_init (GthBrowser *browser)
                          G_CALLBACK (pref_general_filter_changed),
                          browser);
        g_signal_connect (browser->priv->browser_settings,
-                         "changed::" PREF_BROWSER_TOOLBAR_STYLE,
-                         G_CALLBACK (pref_ui_toolbar_style_changed),
-                         browser);
-       g_signal_connect (browser->priv->browser_settings,
                          "changed::" PREF_BROWSER_VIEWER_THUMBNAILS_ORIENT,
                          G_CALLBACK (pref_ui_viewer_thumbnails_orient_changed),
                          browser);
@@ -4630,14 +4541,6 @@ gth_browser_init (GthBrowser *browser)
                          "changed::" PREF_BROWSER_PROPERTIES_ON_THE_RIGHT,
                          G_CALLBACK (pref_browser_properties_on_the_right_changed),
                          browser);
-       g_signal_connect (browser->priv->desktop_interface_settings,
-                         "changed::" PREF_BROWSER_TOOLBAR_STYLE,
-                         G_CALLBACK (pref_ui_toolbar_style_changed),
-                         browser);
-       g_signal_connect (browser->priv->browser_settings,
-                         "changed::" PREF_BROWSER_TOOLBAR_VISIBLE,
-                         G_CALLBACK (pref_ui_toolbar_visible_changed),
-                         browser);
        g_signal_connect (browser->priv->browser_settings,
                          "changed::" PREF_BROWSER_STATUSBAR_VISIBLE,
                          G_CALLBACK (pref_ui_statusbar_visible_changed),
@@ -4829,7 +4732,11 @@ gth_browser_go_home (GthBrowser *browser)
 {
        GFile *location;
 
-       location = g_file_new_for_uri (gth_pref_get_startup_location ());
+       if (g_settings_get_boolean (browser->priv->browser_settings, PREF_BROWSER_USE_STARTUP_LOCATION))
+               location = g_file_new_for_uri (gth_pref_get_startup_location ());
+       else
+               location = g_file_new_for_uri (get_home_uri ());
+
        gth_browser_go_to (browser, location, NULL);
 
        g_object_unref (location);
@@ -4887,13 +4794,6 @@ gth_browser_get_menu_icon_cache (GthBrowser *browser)
 
 
 GtkWidget *
-gth_browser_get_browser_toolbar (GthBrowser *browser)
-{
-       return browser->priv->browser_toolbar;
-}
-
-
-GtkWidget *
 gth_browser_get_infobar (GthBrowser *browser)
 {
        return browser->priv->infobar;
@@ -5397,13 +5297,6 @@ gth_browser_get_viewer_page (GthBrowser *browser)
 
 
 GtkWidget *
-gth_browser_get_viewer_toolbar (GthBrowser *browser)
-{
-       return browser->priv->viewer_toolbar;
-}
-
-
-GtkWidget *
 gth_browser_get_viewer_sidebar (GthBrowser *browser)
 {
        return browser->priv->file_properties;
@@ -6083,9 +5976,7 @@ gth_browser_set_shrink_wrap_viewer (GthBrowser *browser,
        other_width = 0;
        other_height = 0;
        other_height += _gtk_widget_get_allocated_height (gth_window_get_area (GTH_WINDOW (browser), 
GTH_WINDOW_MENUBAR));
-       other_height += _gtk_widget_get_allocated_height (gth_window_get_area (GTH_WINDOW (browser), 
GTH_WINDOW_TOOLBAR));
        other_height += _gtk_widget_get_allocated_height (gth_window_get_area (GTH_WINDOW (browser), 
GTH_WINDOW_STATUSBAR));
-       other_height += _gtk_widget_get_allocated_height (gth_browser_get_viewer_toolbar (browser));
        if (g_settings_get_enum (browser->priv->browser_settings, PREF_BROWSER_VIEWER_THUMBNAILS_ORIENT) == 
GTK_ORIENTATION_HORIZONTAL)
                other_height += _gtk_widget_get_allocated_height (gth_browser_get_thumbnail_list (browser));
        else
diff --git a/gthumb/gth-browser.h b/gthumb/gth-browser.h
index 91b6048..55ef5a2 100644
--- a/gthumb/gth-browser.h
+++ b/gthumb/gth-browser.h
@@ -33,7 +33,8 @@
 G_BEGIN_DECLS
 
 #define GTH_BROWSER_MENU_MANAGER_GEARS                 "gears"
-#define GTH_BROWSER_MENU_MANAGER_GEARS_FOLDER_ACTIONS  "folder-actions"
+#define GTH_BROWSER_MENU_MANAGER_GEARS_FOLDER_ACTIONS  "gears.folder-actions"
+#define GTH_BROWSER_MENU_MANAGER_GEARS_OTHER_ACTIONS   "gears.other-actions"
 
 #define GTH_TYPE_BROWSER              (gth_browser_get_type ())
 #define GTH_BROWSER(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTH_TYPE_BROWSER, GthBrowser))
@@ -123,7 +124,6 @@ GtkWidget *      gth_browser_get_dialog             (GthBrowser       *browser,
 GtkUIManager *   gth_browser_get_ui_manager         (GthBrowser       *browser);
 GtkActionGroup * gth_browser_get_actions            (GthBrowser       *browser);
 GthIconCache *   gth_browser_get_menu_icon_cache    (GthBrowser       *browser);
-GtkWidget *      gth_browser_get_browser_toolbar    (GthBrowser       *browser);
 GtkWidget *      gth_browser_get_infobar            (GthBrowser       *browser);
 GtkWidget *      gth_browser_get_statusbar          (GthBrowser       *browser);
 GtkWidget *      gth_browser_get_filterbar          (GthBrowser       *browser);
@@ -181,7 +181,6 @@ void             gth_browser_set_viewer_widget      (GthBrowser       *browser,
                                                     GtkWidget        *widget);
 GtkWidget *      gth_browser_get_viewer_widget      (GthBrowser       *browser);
 GtkWidget *      gth_browser_get_viewer_page        (GthBrowser       *browser);
-GtkWidget *      gth_browser_get_viewer_toolbar     (GthBrowser       *browser);
 GtkWidget *      gth_browser_get_viewer_sidebar     (GthBrowser       *browser);
 gboolean         gth_browser_show_next_image        (GthBrowser       *browser,
                                                     gboolean          skip_broken,
diff --git a/gthumb/gth-menu-manager.c b/gthumb/gth-menu-manager.c
index dc86761..d294ba4 100644
--- a/gthumb/gth-menu-manager.c
+++ b/gthumb/gth-menu-manager.c
@@ -149,6 +149,13 @@ gth_menu_manager_new (GMenu *menu)
 }
 
 
+GMenu *
+gth_menu_manager_get_menu (GthMenuManager *menu_manager)
+{
+       return menu_manager->priv->menu;
+}
+
+
 static GMenuItem *
 create_menu_item (const char *label,
                  const char *detailed_action,
@@ -182,6 +189,8 @@ gth_menu_manager_append_entries (GthMenuManager     *menu_manager,
        GList *items;
        int    i;
 
+       g_return_if_fail (menu_manager != NULL);
+
        merge_id = gth_menu_manager_new_merge_id (menu_manager);
        items = NULL;
        for (i = 0; i < n_entries; i++) {
@@ -236,6 +245,8 @@ gth_menu_manager_remove_entries (GthMenuManager     *menu_manager,
        GList *items;
        GList *scan;
 
+       g_return_if_fail (menu_manager != NULL);
+
        items = g_hash_table_lookup (menu_manager->priv->items, GINT_TO_POINTER (merge_id));
        g_return_if_fail (items != NULL);
 
@@ -271,6 +282,11 @@ gth_menu_manager_append_entry (GthMenuManager      *menu_manager,
        GMenuItem *item;
        GList     *items;
 
+       g_return_if_fail (menu_manager != NULL);
+
+       if (merge_id == GTH_MENU_MANAGER_NEW_MERGE_ID)
+               merge_id = gth_menu_manager_new_merge_id (menu_manager);
+
        item = create_menu_item (label, detailed_action, accel, icon_name);
        g_menu_append_item (menu_manager->priv->menu, item);
 
diff --git a/gthumb/gth-menu-manager.h b/gthumb/gth-menu-manager.h
index e79125c..38d68df 100644
--- a/gthumb/gth-menu-manager.h
+++ b/gthumb/gth-menu-manager.h
@@ -26,6 +26,8 @@
 
 G_BEGIN_DECLS
 
+#define GTH_MENU_MANAGER_NEW_MERGE_ID -1
+
 #define GTH_TYPE_MENU_MANAGER         (gth_menu_manager_get_type ())
 #define GTH_MENU_MANAGER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GTH_TYPE_MENU_MANAGER, 
GthMenuManager))
 #define GTH_MENU_MANAGER_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), GTH_TYPE_MENU_MANAGER, 
GthMenuManagerClass))
@@ -57,6 +59,7 @@ struct _GthMenuManagerClass
 
 GType                  gth_menu_manager_get_type               (void) G_GNUC_CONST;
 GthMenuManager *       gth_menu_manager_new                    (GMenu                  *menu);
+GMenu *                        gth_menu_manager_get_menu               (GthMenuManager         
*menu_manager);
 guint                  gth_menu_manager_append_entries         (GthMenuManager         *menu_manager,
                                                                 const GthMenuEntry     *entries,
                                                                 int                     n_entries);
diff --git a/gthumb/gth-preferences.c b/gthumb/gth-preferences.c
index 86a5c06..9e5fc19 100644
--- a/gthumb/gth-preferences.c
+++ b/gthumb/gth-preferences.c
@@ -140,41 +140,6 @@ gth_pref_get_wallpaper_options (void)
 }
 
 
-GthToolbarStyle
-gth_pref_get_real_toolbar_style (void)
-{
-       GSettings       *settings;
-       GthToolbarStyle  toolbar_style;
-
-       settings = g_settings_new (GTHUMB_BROWSER_SCHEMA);
-       toolbar_style = g_settings_get_enum (settings, PREF_BROWSER_TOOLBAR_STYLE);
-       if (toolbar_style == GTH_TOOLBAR_STYLE_SYSTEM) {
-               char *system_style;
-
-               toolbar_style = GTH_TOOLBAR_STYLE_TEXT_BELOW; /* default value */
-
-               g_object_unref (settings);
-               settings = g_settings_new (GNOME_DESKTOP_INTERFACE_SCHEMA);
-
-               system_style = g_settings_get_string (settings, "toolbar-style");
-               if (g_strcmp0 (system_style, "both") == 0)
-                       toolbar_style = GTH_TOOLBAR_STYLE_TEXT_BELOW;
-               else if (g_strcmp0 (system_style, "both-horiz") == 0)
-                       toolbar_style = GTH_TOOLBAR_STYLE_TEXT_BESIDE;
-               else if (g_strcmp0 (system_style, "icons") == 0)
-                       toolbar_style = GTH_TOOLBAR_STYLE_ICONS;
-               else if (g_strcmp0 (system_style, "text") == 0)
-                       toolbar_style = GTH_TOOLBAR_STYLE_TEXT;
-
-               g_free (system_style);
-       }
-
-       g_object_unref (settings);
-
-       return toolbar_style;
-}
-
-
 void
 gth_pref_save_window_geometry (GtkWindow  *window,
                                const char *schema)
diff --git a/gthumb/gth-preferences.h b/gthumb/gth-preferences.h
index 68e6eff..add8016 100644
--- a/gthumb/gth-preferences.h
+++ b/gthumb/gth-preferences.h
@@ -65,11 +65,9 @@ G_BEGIN_DECLS
 #define PREF_BROWSER_CLICK_POLICY             "click-policy"
 #define PREF_BROWSER_SORT_TYPE                "sort-type"
 #define PREF_BROWSER_SORT_INVERSE             "sort-inverse"
-#define PREF_BROWSER_TOOLBAR_STYLE            "toolbar-style"
 #define PREF_BROWSER_WINDOW_WIDTH             "window-width"
 #define PREF_BROWSER_WINDOW_HEIGHT            "window-height"
 #define PREF_BROWSER_WINDOW_MAXIMIZED         "maximized"
-#define PREF_BROWSER_TOOLBAR_VISIBLE          "toolbar-visible"
 #define PREF_BROWSER_STATUSBAR_VISIBLE        "statusbar-visible"
 #define PREF_BROWSER_FILTERBAR_VISIBLE        "filterbar-visible"
 #define PREF_BROWSER_SIDEBAR_VISIBLE          "sidebar-visible"
@@ -115,7 +113,6 @@ void             gth_pref_set_startup_location    (const char *location);
 const char *     gth_pref_get_startup_location    (void);
 const char *     gth_pref_get_wallpaper_filename  (void);
 const char *     gth_pref_get_wallpaper_options   (void);
-GthToolbarStyle  gth_pref_get_real_toolbar_style  (void);
 void             gth_pref_save_window_geometry    (GtkWindow  *window,
                                                           const char *schema);
 void             gth_pref_restore_window_geometry (GtkWindow  *window,
diff --git a/gthumb/gth-toolbox.c b/gthumb/gth-toolbox.c
index 3a86d5a..02f6d75 100644
--- a/gthumb/gth-toolbox.c
+++ b/gthumb/gth-toolbox.c
@@ -169,7 +169,6 @@ gth_toolbox_init (GthToolbox *toolbox)
 
        toolbox->priv->options = gtk_scrolled_window_new (NULL, NULL);
        gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (toolbox->priv->options), GTK_SHADOW_IN);
-       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (toolbox->priv->options), GTK_POLICY_AUTOMATIC, 
GTK_POLICY_AUTOMATIC);
        gtk_widget_show (toolbox->priv->options);
        gtk_box_pack_start (GTK_BOX (options_box), toolbox->priv->options, TRUE, TRUE, 0);
 }
diff --git a/gthumb/resources/gears-menu.ui b/gthumb/resources/gears-menu.ui
index 87d58e0..bc9eb75 100644
--- a/gthumb/resources/gears-menu.ui
+++ b/gthumb/resources/gears-menu.ui
@@ -32,6 +32,8 @@
     </section>
     <section id="folder-actions">
     </section>
+    <section id="other-actions">
+    </section>
     <section>
       <item>
         <attribute name="label" translatable="yes">Close _All Windows</attribute>
diff --git a/gthumb/typedefs.h b/gthumb/typedefs.h
index 95c3736..a532907 100644
--- a/gthumb/typedefs.h
+++ b/gthumb/typedefs.h
@@ -47,15 +47,6 @@ typedef enum {
 } GthDirection;
 
 
-typedef enum {
-       GTH_TOOLBAR_STYLE_SYSTEM,
-       GTH_TOOLBAR_STYLE_TEXT_BELOW,
-       GTH_TOOLBAR_STYLE_TEXT_BESIDE,
-       GTH_TOOLBAR_STYLE_ICONS,
-       GTH_TOOLBAR_STYLE_TEXT
-} GthToolbarStyle;
-
-
 /* The GthTransform numeric values range from 1 to 8, corresponding to
  * the valid range of Exif orientation tags.  The name associated with each
  * numeric valid describes the data transformation required that will allow
diff --git a/po/POTFILES.in b/po/POTFILES.in
index dacdf64..8dd30d3 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -221,7 +221,9 @@ extensions/exiv2_tools/gth-metadata-provider-exiv2.h
 extensions/exiv2_tools/main.c
 extensions/export_tools/callbacks.c
 extensions/export_tools/callbacks.h
+[type: gettext/glade]extensions/export_tools/data/ui/export-menu.ui
 [type: gettext/ini]extensions/export_tools/export_tools.extension.in.in
+extensions/export_tools/export-tools.h
 extensions/export_tools/main.c
 extensions/facebook/actions.c
 extensions/facebook/actions.h
@@ -459,6 +461,7 @@ extensions/list_tools/callbacks.h
 [type: gettext/glade]extensions/list_tools/data/ui/ask-value.ui
 [type: gettext/glade]extensions/list_tools/data/ui/personalize-scripts.ui
 [type: gettext/glade]extensions/list_tools/data/ui/script-editor.ui
+[type: gettext/glade]extensions/list_tools/data/ui/tools-menu.ui
 extensions/list_tools/dlg-personalize-scripts.c
 extensions/list_tools/dlg-personalize-scripts.h
 extensions/list_tools/gth-script.c
@@ -470,6 +473,7 @@ extensions/list_tools/gth-script.h
 extensions/list_tools/gth-script-task.c
 extensions/list_tools/gth-script-task.h
 [type: gettext/ini]extensions/list_tools/list_tools.extension.in.in
+extensions/list_tools/list-tools.h
 extensions/list_tools/main.c
 extensions/map_view/gth-map-view.c
 extensions/map_view/gth-map-view.h
@@ -522,12 +526,14 @@ extensions/photo_importer/actions.c
 extensions/photo_importer/actions.h
 extensions/photo_importer/callbacks.c
 extensions/photo_importer/callbacks.h
+[type: gettext/glade]extensions/photo_importer/data/ui/import-menu.ui
 [type: gettext/glade]extensions/photo_importer/data/ui/photo-importer-options.ui
 [type: gettext/glade]extensions/photo_importer/data/ui/photo-importer.ui
 extensions/photo_importer/dlg-photo-importer.c
 extensions/photo_importer/dlg-photo-importer.h
 extensions/photo_importer/main.c
 [type: gettext/ini]extensions/photo_importer/photo_importer.extension.in.in
+extensions/photo_importer/photo-importer.h
 extensions/photo_importer/preferences.h
 extensions/picasaweb/actions.c
 extensions/picasaweb/actions.h


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