[epiphany] Add keyboard shortcuts dialog
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] Add keyboard shortcuts dialog
- Date: Sat, 9 Jul 2016 18:19:42 +0000 (UTC)
commit 60f8c0f488c6ce2053f5827836e8072caaabad37
Author: Gabriel Ivascu <ivascu gabriel59 gmail com>
Date: Mon Jul 4 22:38:32 2016 +0300
Add keyboard shortcuts dialog
https://bugzilla.gnome.org/show_bug.cgi?id=757830
src/Makefile.am | 1 +
src/ephy-shell.c | 13 +
src/epiphany.gresource.xml | 1 +
src/resources/epiphany-application-menu.ui | 5 +
src/resources/shortcuts-dialog.ui | 355 ++++++++++++++++++++++++++++
src/window-commands.c | 26 ++
src/window-commands.h | 2 +
7 files changed, 403 insertions(+), 0 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 8136f13..1d81007 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -113,6 +113,7 @@ RESOURCE_FILES = \
resources/encoding-row.ui \
resources/epiphany-application-menu.ui \
resources/epiphany-bookmark-editor-ui.xml \
+ resources/shortcuts-dialog.ui \
resources/epiphany-ui.xml \
resources/epiphany.css \
resources/error.html \
diff --git a/src/ephy-shell.c b/src/ephy-shell.c
index e050180..c9f4f51 100644
--- a/src/ephy-shell.c
+++ b/src/ephy-shell.c
@@ -195,6 +195,18 @@ show_preferences (GSimpleAction *action,
}
static void
+show_shortcuts (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ GtkWindow *window;
+
+ window = gtk_application_get_active_window (GTK_APPLICATION (ephy_shell));
+
+ window_cmd_help_shortcuts (NULL, GTK_WIDGET (window));
+}
+
+static void
show_help (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
@@ -232,6 +244,7 @@ static GActionEntry app_entries[] = {
{ "bookmarks", show_bookmarks, NULL, NULL, NULL },
{ "history", show_history, NULL, NULL, NULL },
{ "preferences", show_preferences, NULL, NULL, NULL },
+ { "shortcuts", show_shortcuts, NULL, NULL, NULL },
{ "help", show_help, NULL, NULL, NULL },
{ "about", show_about, NULL, NULL, NULL },
{ "quit", quit_application, NULL, NULL, NULL },
diff --git a/src/epiphany.gresource.xml b/src/epiphany.gresource.xml
index ca2086e..10c3ac8 100644
--- a/src/epiphany.gresource.xml
+++ b/src/epiphany.gresource.xml
@@ -11,6 +11,7 @@
<file preprocess="xml-stripblanks" compressed="true">cookies-dialog.ui</file>
<file preprocess="xml-stripblanks" compressed="true">history-dialog.ui</file>
<file preprocess="xml-stripblanks" compressed="true">passwords-dialog.ui</file>
+ <file preprocess="xml-stripblanks" compressed="true">shortcuts-dialog.ui</file>
<file preprocess="xml-stripblanks">epiphany-application-menu.ui</file>
<file preprocess="xml-stripblanks">epiphany-ui.xml</file>
<file preprocess="xml-stripblanks">epiphany-bookmark-editor-ui.xml</file>
diff --git a/src/resources/epiphany-application-menu.ui b/src/resources/epiphany-application-menu.ui
index e554ce0..bb0da59 100644
--- a/src/resources/epiphany-application-menu.ui
+++ b/src/resources/epiphany-application-menu.ui
@@ -39,6 +39,11 @@
</section>
<section>
<item>
+ <attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute>
+ <attribute name="action">app.shortcuts</attribute>
+ <attribute name="accel"><Primary>F1</attribute>
+ </item>
+ <item>
<attribute name="label" translatable="yes">_Help</attribute>
<attribute name="action">app.help</attribute>
</item>
diff --git a/src/resources/shortcuts-dialog.ui b/src/resources/shortcuts-dialog.ui
new file mode 100644
index 0000000..d18e851
--- /dev/null
+++ b/src/resources/shortcuts-dialog.ui
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkShortcutsWindow" id="shortcuts-dialog">
+ <property name="modal">True</property>
+ <child>
+ <object class="GtkShortcutsSection">
+ <property name="visible">True</property>
+ <property name="section-name">shortcuts</property>
+ <property name="max-height">17</property>
+
+ <!-- General shortcuts -->
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">General</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">New window</property>
+ <property name="accelerator"><Primary>N</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">New incognito
window</property>
+ <property name="accelerator"><shift><Primary>N</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Open file</property>
+ <property name="accelerator"><Primary>O</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Save page</property>
+ <property name="accelerator"><Primary>S</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Save page as web
app</property>
+ <property name="accelerator"><shift><Primary>A</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Print page</property>
+ <property name="accelerator"><Primary>P</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Quit</property>
+ <property name="accelerator"><Primary>Q</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Help</property>
+ <property name="accelerator">F1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Shortcuts</property>
+ <property name="accelerator"><Primary>F1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <!-- Navigation shortcuts -->
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Navigation</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Reload current
page</property>
+ <property name="accelerator">F5 <Primary>R</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Stop loading current
page</property>
+ <property name="accelerator">Escape</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go back to the previous
page</property>
+ <property name="accelerator"><alt>Left</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go forward to the next
page</property>
+ <property name="accelerator"><alt>Right</property>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <!-- Tabs shortcuts -->
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Tabs</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">New tab</property>
+ <property name="accelerator"><Primary>T</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Duplicate current
tab</property>
+ <property name="accelerator"><shift><Primary>D</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Close current
tab</property>
+ <property name="accelerator"><Primary>W</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Reopen closed
tab</property>
+ <property name="accelerator"><shift><Primary>T</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go to the next
tab</property>
+ <property name="accelerator"><Primary>Page_Down</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go to the previous
tab</property>
+ <property name="accelerator"><Primary>Page_Up</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Move current tab to the
left</property>
+ <property name="accelerator"><shift><Primary>Page_Up</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Move current tab to the
right</property>
+ <property name="accelerator"><shift><Primary>Page_Down</property>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <!-- Miscellaneous shortcuts -->
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Miscellaneous</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">History</property>
+ <property name="accelerator"><Primary>H</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Preferences</property>
+ <property name="accelerator"><Primary>E</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Bookmarks</property>
+ <property name="accelerator"><Primary>B</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Bookmark current
page</property>
+ <property name="accelerator"><Primary>D</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Toggle caret
browsing</property>
+ <property name="accelerator">F7</property>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <!-- View shortcuts -->
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">View</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Zoom in</property>
+ <property name="accelerator"><Primary>plus</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Zoom out</property>
+ <property name="accelerator"><Primary>minus</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Reset zoom</property>
+ <property name="accelerator"><Primary>0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Fullscreen</property>
+ <property name="accelerator">F11</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">View page
source</property>
+ <property name="accelerator"><Primary>U</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Toggle
inspector</property>
+ <property name="accelerator"><shift><Primary>I</property>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <!-- Editing shortcuts -->
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Editing</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Cut</property>
+ <property name="accelerator"><Primary>X</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Copy</property>
+ <property name="accelerator"><Primary>C</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Paste</property>
+ <property name="accelerator"><Primary>V</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Undo</property>
+ <property name="accelerator"><Primary>Z</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Redo</property>
+ <property name="accelerator"><shift><Primary>Z</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Select all</property>
+ <property name="accelerator"><Primary>A</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Select page
URL</property>
+ <property name="accelerator"><Primary>L</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Search</property>
+ <property name="accelerator"><Primary>F</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Next search
result</property>
+ <property name="accelerator"><Primary>G</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Previous search
result</property>
+ <property name="accelerator"><shift><Primary>G</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/src/window-commands.c b/src/window-commands.c
index 3309e0b..8220dbf 100644
--- a/src/window-commands.c
+++ b/src/window-commands.c
@@ -1380,6 +1380,32 @@ window_cmd_view_toggle_inspector (GtkAction *action,
}
void
+window_cmd_help_shortcuts (GtkAction *action,
+ GtkWidget *window)
+{
+ static GtkWidget *shortcuts_window;
+
+ if (shortcuts_window == NULL) {
+ GtkBuilder *builder;
+
+ builder = gtk_builder_new_from_resource ("/org/gnome/epiphany/shortcuts-dialog.ui");
+ shortcuts_window = GTK_WIDGET (gtk_builder_get_object (builder, "shortcuts-dialog"));
+
+ g_signal_connect (shortcuts_window,
+ "destroy",
+ G_CALLBACK (gtk_widget_destroyed),
+ &shortcuts_window);
+
+ g_object_unref (builder);
+ }
+
+ if (gtk_window_get_transient_for (GTK_WINDOW (shortcuts_window)) != GTK_WINDOW (window))
+ gtk_window_set_transient_for (GTK_WINDOW (shortcuts_window), GTK_WINDOW (window));
+
+ gtk_window_present (GTK_WINDOW (shortcuts_window));
+}
+
+void
window_cmd_help_contents (GtkAction *action,
GtkWidget *window)
{
diff --git a/src/window-commands.h b/src/window-commands.h
index 922a84c..8991bb0 100644
--- a/src/window-commands.h
+++ b/src/window-commands.h
@@ -84,6 +84,8 @@ void window_cmd_help_contents (GtkAction *action,
GtkWidget *window);
void window_cmd_help_about (GtkAction *action,
GtkWidget *window);
+void window_cmd_help_shortcuts (GtkAction *action,
+ GtkWidget *window);
void window_cmd_tabs_next (GtkAction *action,
EphyWindow *window);
void window_cmd_tabs_previous (GtkAction *action,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]