Commit ff81c83f authored by Paolo Bacchilega's avatar Paolo Bacchilega
Browse files

converted application actions into window actions

parent 6d9e0854
......@@ -134,32 +134,6 @@ gth_application_init (GthApplication *app)
}
static const GActionEntry app_menu_entries[] = {
{ "new-window", gth_application_activate_new_window },
{ "preferences", gth_application_activate_preferences },
{ "shortcuts", gth_application_activate_show_shortcuts },
{ "help", gth_application_activate_show_help },
{ "about", gth_application_activate_about },
{ "quit", gth_application_activate_quit }
};
static void
_gth_application_initialize_app_actions (GApplication *application)
{
const char * const new_window_accel[] = { "<Primary>n", NULL };
const char * const quit_accel[] = { "<Primary>q", NULL };
g_action_map_add_action_entries (G_ACTION_MAP (application),
app_menu_entries,
G_N_ELEMENTS (app_menu_entries),
application);
gtk_application_set_accels_for_action (GTK_APPLICATION (application), "app.new-window", new_window_accel);
gtk_application_set_accels_for_action (GTK_APPLICATION (application), "app.quit", quit_accel);
}
static void
migrate_data (void)
{
......@@ -174,7 +148,6 @@ gth_application_startup (GApplication *application)
g_object_set (gtk_settings_get_default (), "gtk-application-prefer-dark-theme", TRUE, NULL);
_gth_application_initialize_app_actions (application);
gth_pref_initialize ();
migrate_data ();
gth_main_initialize ();
......
......@@ -40,80 +40,52 @@
#include "main.h"
static GtkWidget *
_gth_application_get_current_window (GApplication *application)
{
GList *windows;
windows = gtk_application_get_windows (GTK_APPLICATION (application));
if (windows == NULL)
return NULL;
return GTK_WIDGET (windows->data);
}
void
gth_application_activate_new_window (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
gth_browser_activate_new_window (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GApplication *application = user_data;
GtkWidget *browser;
GtkWidget *window;
GtkWidget *browser = user_data;
GtkWidget *window;
browser = _gth_application_get_current_window (application);
window = gth_browser_new (gth_browser_get_location (GTH_BROWSER (browser)), NULL);
gtk_window_present (GTK_WINDOW (window));
window = gth_browser_new (gth_browser_get_location (GTH_BROWSER (browser)), NULL);
gtk_window_present (GTK_WINDOW (window));
}
void
gth_application_activate_preferences (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
gth_browser_activate_preferences (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GApplication *application = user_data;
GtkWidget *browser;
browser = _gth_application_get_current_window (application);
dlg_preferences (GTH_BROWSER (browser));
dlg_preferences (GTH_BROWSER (user_data));
}
void
gth_application_activate_show_help (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
gth_browser_activate_show_help (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GApplication *application = user_data;
GtkWidget *browser;
browser = _gth_application_get_current_window (application);
show_help_dialog (GTK_WINDOW (browser), NULL);
show_help_dialog (GTK_WINDOW (user_data), NULL);
}
void
gth_application_activate_show_shortcuts (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
gth_browser_activate_show_shortcuts (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GApplication *application = user_data;
GtkWidget *browser;
browser = _gth_application_get_current_window (application);
gth_shortcuts_window_new (GTH_WINDOW (browser));
gth_shortcuts_window_new (GTH_WINDOW (user_data));
}
void
gth_application_activate_about (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
gth_browser_activate_about (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GApplication *application = user_data;
GthWindow *window;
GthBrowser *browser = user_data;
const char *authors[] = {
#include "AUTHORS.tab"
NULL
......@@ -138,19 +110,18 @@ gth_application_activate_about (GSimpleAction *action,
};
GdkPixbuf *logo;
window = (GthWindow *) _gth_application_get_current_window (application);
license_text = g_strconcat (_(license[0]), "\n\n",
_(license[1]), "\n\n",
_(license[2]),
NULL);
logo = gtk_icon_theme_load_icon (gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (window))),
logo = gtk_icon_theme_load_icon (gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (browser))),
"gthumb",
128,
GTK_ICON_LOOKUP_NO_SVG,
NULL);
gtk_show_about_dialog (GTK_WINDOW (window),
gtk_show_about_dialog (GTK_WINDOW (browser),
"version", PACKAGE_VERSION,
"copyright", "Copyright \xc2\xa9 2001-2013 Free Software Foundation, Inc.",
"comments", _("An image viewer and browser for GNOME."),
......@@ -169,16 +140,11 @@ gth_application_activate_about (GSimpleAction *action,
void
gth_application_activate_quit (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
gth_browser_activate_quit (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GApplication *application = user_data;
GList *windows;
windows = gtk_application_get_windows (GTK_APPLICATION (application));
if (windows != NULL)
gth_quit (FALSE);
gth_quit (FALSE);
}
......
......@@ -25,12 +25,12 @@
#include <gtk/gtk.h>
#include "glib-utils.h"
DEF_ACTION_CALLBACK (gth_application_activate_new_window)
DEF_ACTION_CALLBACK (gth_application_activate_preferences)
DEF_ACTION_CALLBACK (gth_application_activate_show_shortcuts)
DEF_ACTION_CALLBACK (gth_application_activate_show_help)
DEF_ACTION_CALLBACK (gth_application_activate_about)
DEF_ACTION_CALLBACK (gth_application_activate_quit)
DEF_ACTION_CALLBACK (gth_browser_activate_new_window)
DEF_ACTION_CALLBACK (gth_browser_activate_preferences)
DEF_ACTION_CALLBACK (gth_browser_activate_show_shortcuts)
DEF_ACTION_CALLBACK (gth_browser_activate_show_help)
DEF_ACTION_CALLBACK (gth_browser_activate_about)
DEF_ACTION_CALLBACK (gth_browser_activate_quit)
DEF_ACTION_CALLBACK (gth_browser_activate_browser_mode)
DEF_ACTION_CALLBACK (gth_browser_activate_browser_edit_file)
DEF_ACTION_CALLBACK (gth_browser_activate_browser_properties)
......
......@@ -29,6 +29,13 @@
static const GActionEntry gth_browser_actions[] = {
{ "new-window", gth_browser_activate_new_window },
{ "preferences", gth_browser_activate_preferences },
{ "shortcuts", gth_browser_activate_show_shortcuts },
{ "help", gth_browser_activate_show_help },
{ "about", gth_browser_activate_about },
{ "quit", gth_browser_activate_quit },
{ "browser-mode", gth_browser_activate_browser_mode },
{ "browser-edit-file", gth_browser_activate_browser_edit_file },
{ "browser-properties", toggle_action_activated, NULL, "false", gth_browser_activate_browser_properties },
......@@ -79,10 +86,12 @@ static const GthAccelerator gth_browser_accelerators[] = {
static const GthShortcut gth_browser_shortcuts[] = {
{ "new-window", N_("New Window"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_GENERAL, "<Primary>n" },
{ "help", N_("Help"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_GENERAL, "F1" },
{ "quit", N_("Quit"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_GENERAL, "<Primary>q" },
{ "browser-mode", N_("Show browser"), GTH_SHORTCUT_CONTEXT_INTERNAL | GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_GENERAL, "Escape" },
{ "close", N_("Close window"), GTH_SHORTCUT_CONTEXT_INTERNAL | GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_GENERAL, "<Primary>w" },
{ "quit", N_("Quit"), GTH_SHORTCUT_CONTEXT_INTERNAL | GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_GENERAL, "<Primary>q" },
{ "new-window", N_("New Window"), GTH_SHORTCUT_CONTEXT_INTERNAL | GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_GENERAL, "<Primary>n" },
{ "close", N_("Close window"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_GENERAL, "<Primary>w" },
{ "open-location", N_("Open location"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "o" },
{ "fullscreen", N_("Fullscreen"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_VIEWER, "f" },
......@@ -109,12 +118,4 @@ static const GthShortcut gth_browser_shortcuts[] = {
};
static const GthMenuEntry gears_app_action_entries[] = {
{ N_("_Preferences"), "app.preferences" },
{ N_("Keyboard Shortcuts"), "app.shortcuts" },
{ N_("_Help"), "app.help" },
{ N_("_About gThumb"), "app.about" }
};
#endif /* GTH_BROWSER_ACTION_ENTRIES_H */
......@@ -4420,10 +4420,6 @@ gth_browser_init (GthBrowser *browser)
gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_EDITOR_APPLY]);
gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_EDITOR_COMMANDS]);
gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_GEARS_APP_ACTIONS),
gears_app_action_entries,
G_N_ELEMENTS (gears_app_action_entries));
/* browser navigation */
gth_browser_add_header_bar_button (browser,
......
......@@ -5,7 +5,7 @@
<section>
<item>
<attribute name="label" translatable="yes">New Window</attribute>
<attribute name="action">app.new-window</attribute>
<attribute name="action">win.new-window</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Open Location…</attribute>
......@@ -41,6 +41,22 @@
<section id="other-actions">
</section>
<section id="app-actions">
<item>
<attribute name="label" translatable="yes">_Preferences</attribute>
<attribute name="action">win.preferences</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Keyboard Shortcuts</attribute>
<attribute name="action">win.shortcuts</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Help</attribute>
<attribute name="action">win.help</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_About gThumb</attribute>
<attribute name="action">win.about</attribute>
</item>
</section>
</menu>
</interface>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment