[evince/wip/gpoo/Retire-app-menu] shell: Remove App menu
- From: Germán Poo-Caamaño <gpoo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince/wip/gpoo/Retire-app-menu] shell: Remove App menu
- Date: Tue, 9 Oct 2018 01:27:19 +0000 (UTC)
commit d0ba8d8997e336bf654934f7b32e125bdce3b89a
Author: Germán Poo-Caamaño <gpoo gnome org>
Date: Mon Oct 8 21:45:21 2018 -0300
shell: Remove App menu
Move the items in the App Menu at the bottom of the primary
menu.
A side effect of removing app-menu fully in Evince is that
gnome-shell will show a fallback menu with a `Quit` action,
which Evince has always avoided to have. The fallback menu
will be removed from gnome-shell (gnome-shell#624).
See also https://gitlab.gnome.org/GNOME/Initiatives/issues/4
Fixes #994
shell/ev-application.c | 98 ++------------------------------------------------
shell/ev-application.h | 3 --
shell/ev-window.c | 89 +++++++++++++++++++++++++++++++++++++++++++++
shell/evince-menus.ui | 33 ++++++++---------
4 files changed, 105 insertions(+), 118 deletions(-)
---
diff --git a/shell/ev-application.c b/shell/ev-application.c
index 42fef8cb..b01b3fa0 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -938,73 +938,9 @@ ev_application_migrate_config_dir (EvApplication *application)
g_free (old_accels);
}
-static void
-app_help_cb (GSimpleAction *action,
- GVariant *parameter,
- gpointer user_data)
-{
- EvApplication *application = user_data;
-
- ev_application_show_help (application, NULL, NULL);
-}
-
-static void
-app_about_cb (GSimpleAction *action,
- GVariant *parameter,
- gpointer user_data)
-{
- EvApplication *application = user_data;
-
- const char *authors[] = {
- "Martin Kretzschmar <m_kretzschmar gmx net>",
- "Jonathan Blandford <jrb gnome org>",
- "Marco Pesenti Gritti <marco gnome org>",
- "Nickolay V. Shmyrev <nshmyrev yandex ru>",
- "Bryan Clark <clarkbw gnome org>",
- "Carlos Garcia Campos <carlosgc gnome org>",
- "Wouter Bolsterlee <wbolster gnome org>",
- "Christian Persch <chpe" "\100" "gnome.org>",
- "Germán Poo-Caamaño <gpoo" "\100" "gnome.org>",
- NULL
- };
- const char *documenters[] = {
- "Nickolay V. Shmyrev <nshmyrev yandex ru>",
- "Phil Bull <philbull gmail com>",
- "Tiffany Antpolski <tiffany antopolski gmail com>",
- NULL
- };
-#ifdef ENABLE_NLS
- const char **p;
-
- for (p = authors; *p; ++p)
- *p = _(*p);
-
- for (p = documenters; *p; ++p)
- *p = _(*p);
-#endif
-
- gtk_show_about_dialog (gtk_application_get_active_window (GTK_APPLICATION (application)),
- "name", _("Evince"),
- "version", VERSION,
- "copyright", _("© 1996–2017 The Evince authors"),
- "license-type", GTK_LICENSE_GPL_2_0,
- "website", "https://wiki.gnome.org/Apps/Evince",
- "comments", _("Document Viewer"),
- "authors", authors,
- "documenters", documenters,
- "translator-credits", _("translator-credits"),
- "logo-icon-name", "org.gnome.Evince",
- NULL);
-}
-
static void
ev_application_startup (GApplication *gapplication)
{
- const GActionEntry app_menu_actions[] = {
- { "help", app_help_cb, NULL, NULL, NULL },
- { "about", app_about_cb, NULL, NULL, NULL }
- };
-
const gchar *action_accels[] = {
"win.open", "<Ctrl>O", NULL,
"win.open-copy", "<Ctrl>N", NULL,
@@ -1047,6 +983,8 @@ ev_application_startup (GApplication *gapplication)
"win.reload", "<Ctrl>R", NULL,
"win.add-annotation", "s", NULL,
"win.highlight-annotation", "<Ctrl>H", NULL,
+ "win.help", "F1", NULL,
+ "win.about", NULL, NULL,
NULL
};
@@ -1057,10 +995,6 @@ ev_application_startup (GApplication *gapplication)
G_APPLICATION_CLASS (ev_application_parent_class)->startup (gapplication);
- g_action_map_add_action_entries (G_ACTION_MAP (application),
- app_menu_actions, G_N_ELEMENTS (app_menu_actions),
- application);
-
for (it = action_accels; it[0]; it += g_strv_length ((gchar **)it) + 1)
gtk_application_set_accels_for_action (GTK_APPLICATION (application), it[0], &it[1]);
}
@@ -1256,31 +1190,3 @@ ev_application_get_dot_dir (EvApplication *application,
return application->dot_dir;
}
-
-/**
- * ev_application_show_help:
- * @application: the #EvApplication
- * @screen: (allow-none): a #GdkScreen, or %NULL to use the default screen
- * @topic: (allow-none): the help topic, or %NULL to show the index
- *
- * Launches the help viewer on @screen to show the evince help.
- * If @topic is %NULL, shows the help index; otherwise the topic.
- */
-void
-ev_application_show_help (EvApplication *application,
- GdkScreen *screen,
- const char *topic)
-{
- char *escaped_topic, *uri;
-
- if (topic != NULL) {
- escaped_topic = g_uri_escape_string (topic, NULL, TRUE);
- uri = g_strdup_printf ("help:evince/%s", escaped_topic);
- g_free (escaped_topic);
- } else {
- uri = g_strdup ("help:evince");
- }
-
- gtk_show_uri (screen, uri, gtk_get_current_event_time (), NULL);
- g_free (uri);
-}
diff --git a/shell/ev-application.h b/shell/ev-application.h
index 7eb6a5b9..00a7a18b 100644
--- a/shell/ev-application.h
+++ b/shell/ev-application.h
@@ -70,9 +70,6 @@ GObject *ev_application_get_media_keys (EvApplication *application);
const gchar *ev_application_get_dot_dir (EvApplication *application,
gboolean create);
-void ev_application_show_help (EvApplication *application,
- GdkScreen *screen,
- const char *topic);
void ev_application_new_window (EvApplication *application,
GdkScreen *screen,
guint32 timestamp);
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 8faa4ed3..a1263541 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -3847,6 +3847,93 @@ ev_window_cmd_file_close_window (GSimpleAction *action,
gtk_widget_destroy (GTK_WIDGET (ev_window));
}
+/**
+ * ev_window_show_help:
+ * @window: the #EvWindow
+ * @screen: (allow-none): a #GdkScreen, or %NULL to use the default screen
+ * @topic: (allow-none): the help topic, or %NULL to show the index
+ *
+ * Launches the help viewer on @screen to show the evince help.
+ * If @topic is %NULL, shows the help index; otherwise the topic.
+ */
+static void
+ev_window_show_help (EvWindow *window,
+ GdkScreen *screen,
+ const char *topic)
+{
+ char *escaped_topic, *uri;
+
+ if (topic != NULL) {
+ escaped_topic = g_uri_escape_string (topic, NULL, TRUE);
+ uri = g_strdup_printf ("help:evince/%s", escaped_topic);
+ g_free (escaped_topic);
+ } else {
+ uri = g_strdup ("help:evince");
+ }
+
+ gtk_show_uri (screen, uri, gtk_get_current_event_time (), NULL);
+ g_free (uri);
+}
+
+static void
+ev_window_cmd_help (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ EvWindow *ev_window = user_data;
+
+ ev_window_show_help (ev_window, NULL, NULL);
+}
+
+static void
+ev_window_cmd_about (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ EvWindow *ev_window = user_data;
+
+ const char *authors[] = {
+ "Martin Kretzschmar <m_kretzschmar gmx net>",
+ "Jonathan Blandford <jrb gnome org>",
+ "Marco Pesenti Gritti <marco gnome org>",
+ "Nickolay V. Shmyrev <nshmyrev yandex ru>",
+ "Bryan Clark <clarkbw gnome org>",
+ "Carlos Garcia Campos <carlosgc gnome org>",
+ "Wouter Bolsterlee <wbolster gnome org>",
+ "Christian Persch <chpe" "\100" "gnome.org>",
+ "Germán Poo-Caamaño <gpoo" "\100" "gnome.org>",
+ NULL
+ };
+ const char *documenters[] = {
+ "Nickolay V. Shmyrev <nshmyrev yandex ru>",
+ "Phil Bull <philbull gmail com>",
+ "Tiffany Antpolski <tiffany antopolski gmail com>",
+ NULL
+ };
+#ifdef ENABLE_NLS
+ const char **p;
+
+ for (p = authors; *p; ++p)
+ *p = _(*p);
+
+ for (p = documenters; *p; ++p)
+ *p = _(*p);
+#endif
+
+ gtk_show_about_dialog (GTK_WINDOW (ev_window),
+ "name", _("Evince"),
+ "version", VERSION,
+ "copyright", _("© 1996–2017 The Evince authors"),
+ "license-type", GTK_LICENSE_GPL_2_0,
+ "website", "https://wiki.gnome.org/Apps/Evince",
+ "comments", _("Document Viewer"),
+ "authors", authors,
+ "documenters", documenters,
+ "translator-credits", _("translator-credits"),
+ "logo-icon-name", "org.gnome.Evince",
+ NULL);
+}
+
static void
ev_window_cmd_focus_page_selector (GSimpleAction *action,
GVariant *parameter,
@@ -5963,6 +6050,8 @@ static const GActionEntry actions[] = {
{ "add-annotation", NULL, NULL, "false", ev_window_cmd_add_annotation },
{ "highlight-annotation", NULL, NULL, "false", ev_window_cmd_add_highlight_annotation },
{ "toggle-edit-annots", NULL, NULL, "false", ev_window_cmd_toggle_edit_annots },
+ { "about", ev_window_cmd_about },
+ { "help", ev_window_cmd_help },
/* Popups specific items */
{ "annotate-selected-text", ev_window_popup_cmd_annotate_selected_text },
{ "open-link", ev_window_popup_cmd_open_link },
diff --git a/shell/evince-menus.ui b/shell/evince-menus.ui
index e23174b7..9aee988c 100644
--- a/shell/evince-menus.ui
+++ b/shell/evince-menus.ui
@@ -18,24 +18,6 @@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-->
<interface>
- <menu id="app-menu">
- <section>
- <item>
- <attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute>
- <attribute name="action">win.show-help-overlay</attribute>
- </item>
- <item>
- <attribute name="label" translatable="yes">_Help</attribute>
- <attribute name="action">app.help</attribute>
- <attribute name="accel">F1</attribute>
- </item>
- <item>
- <attribute name="label" translatable="yes">_About</attribute>
- <attribute name="action">app.about</attribute>
- </item>
- </section>
- </menu>
-
<menu id="action-menu">
<section>
<attribute name="display-hint">horizontal-buttons</attribute>
@@ -120,6 +102,19 @@
<attribute name="label" translatable="yes">Save Current Settings as Defa_ult</attribute>
<attribute name="action">win.save-settings</attribute>
</item>
+ <item>
+ <attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute>
+ <attribute name="action">win.show-help-overlay</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="action">win.help</attribute>
+ <attribute name="accel">F1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.about</attribute>
+ </item>
</section>
</menu>
@@ -315,4 +310,4 @@
</item>
</section>
</menu>
-</interface>
\ No newline at end of file
+</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]