Add keyboard shortcuts window

This commit is contained in:
Rafostar
2021-05-03 19:02:37 +02:00
parent 4f69183b85
commit b419ed7922
3 changed files with 149 additions and 5 deletions

View File

@@ -1,10 +1,13 @@
const { Gtk } = imports.gi;
const Dialogs = imports.src.dialogs;
const Misc = imports.src.misc;
var actions = {
open_local: ['<Ctrl>O'],
export_playlist: ['<Ctrl>E'],
open_uri: ['<Ctrl>U'],
prefs: null,
shortcuts: ['F1', '<Ctrl>question'],
about: null,
progress_forward: ['Right'],
progress_backward: ['Left'],
@@ -40,6 +43,16 @@ function handleAction(action, window)
case 'prefs':
new Dialogs.PrefsDialog(window);
break;
case 'shortcuts':
if(!window.get_help_overlay()) {
const clapperPath = Misc.getClapperPath();
const helpBuilder = Gtk.Builder.new_from_file(
`${clapperPath}/ui/help-overlay.ui`
);
window.set_help_overlay(helpBuilder.get_object('help_overlay'));
}
clapperWidget.activate_action('win.show-help-overlay', null);
break;
case 'about':
new Dialogs.AboutDialog(window);
break;

View File

@@ -16,14 +16,12 @@
<attribute name="label" translatable="yes">Preferences</attribute>
<attribute name="action">app.prefs</attribute>
</item>
</section>
<section>
<!--
<item>
<attribute name="label" translatable="yes">Keyboard Shortcuts</attribute>
<attribute name="label" translatable="yes">Shortcuts</attribute>
<attribute name="action">app.shortcuts</attribute>
</item>
-->
</section>
<section>
<item>
<attribute name="label" translatable="yes">About Clapper</attribute>
<attribute name="action">app.about</attribute>

133
ui/help-overlay.ui Normal file
View File

@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkShortcutsWindow" id="help_overlay">
<property name="modal">True</property>
<child>
<object class="GtkShortcutsSection">
<property name="section-name">app</property>
<child>
<object class="GtkShortcutsGroup">
<property name="title" translatable="yes">General</property>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Show shortcuts</property>
<property name="accelerator">F1 &lt;Ctrl&gt;question</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Toggle fullscreen</property>
<property name="accelerator">F11 f</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Reveal controls (fullscreen only)</property>
<property name="accelerator">Return</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Quit</property>
<property name="accelerator">&lt;Ctrl&gt;Q Q</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkShortcutsGroup">
<property name="title" translatable="yes">Media</property>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Open Local</property>
<property name="accelerator">&lt;Ctrl&gt;O</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Open URI</property>
<property name="accelerator">&lt;Ctrl&gt;U</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkShortcutsGroup">
<property name="title" translatable="yes">Playlist</property>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Next item</property>
<property name="accelerator">&lt;Ctrl&gt;Right</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Previous item</property>
<property name="accelerator">&lt;Ctrl&gt;Left</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Change repeat mode</property>
<property name="accelerator">&lt;Ctrl&gt;R</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Export to file</property>
<property name="accelerator">&lt;Ctrl&gt;E</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkShortcutsGroup">
<property name="title" translatable="yes">Playback</property>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Toggle play</property>
<property name="accelerator">space</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Volume up</property>
<property name="accelerator">Up</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Volume down</property>
<property name="accelerator">Down</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Seek forward</property>
<property name="accelerator">Right</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Seek backward</property>
<property name="accelerator">Left</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Next chapter</property>
<property name="accelerator">&lt;Shift&gt;Right</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes">Previous chapter</property>
<property name="accelerator">&lt;Shift&gt;Left</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>