[gthumb] added the export commands to the headerbar, removed the toolbar
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] added the export commands to the headerbar, removed the toolbar
- Date: Sat, 9 Nov 2013 20:05:55 +0000 (UTC)
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]