Skip to content

Commit a71a399

Browse files
committed
Add keyboard shortcuts dialog
1 parent 757e9ff commit a71a399

8 files changed

Lines changed: 112 additions & 84 deletions

File tree

File renamed without changes.

data/distroshelf.gresource.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<gresources>
33
<gresource prefix="/com/ranfdev/DistroShelf">
4-
<file preprocess="xml-stripblanks">gtk/help-overlay.ui</file>
4+
<file preprocess="xml-stripblanks" alias="shortcuts-dialog.ui">gtk/shortcuts-dialog.ui</file>
55
<file compressed="true" preprocess="xml-stripblanks" alias="metainfo.xml">com.ranfdev.DistroShelf.metainfo.xml</file>
66
</gresource>
77
<gresource prefix="/com/ranfdev/DistroShelf/icons/scalable/actions/">

data/gtk/help-overlay.ui

Lines changed: 0 additions & 29 deletions
This file was deleted.

data/gtk/shortcuts-dialog.ui

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<interface>
3+
<object class="AdwShortcutsDialog" id="shortcuts_dialog">
4+
<child>
5+
<object class="AdwShortcutsSection">
6+
<property name="title" translatable="yes" context="shortcut window">General</property>
7+
<child>
8+
<object class="AdwShortcutsItem">
9+
<property name="title" translatable="yes" context="shortcut window">Keyboard Shortcuts</property>
10+
<property name="action-name">app.shortcuts</property>
11+
</object>
12+
</child>
13+
<child>
14+
<object class="AdwShortcutsItem">
15+
<property name="title" translatable="yes" context="shortcut window">Settings</property>
16+
<property name="action-name">win.preferences</property>
17+
</object>
18+
</child>
19+
<child>
20+
<object class="AdwShortcutsItem">
21+
<property name="title" translatable="yes" context="shortcut window">Command Log</property>
22+
<property name="action-name">win.command-log</property>
23+
</object>
24+
</child>
25+
<child>
26+
<object class="AdwShortcutsItem">
27+
<property name="title" translatable="yes" context="shortcut window">Quit</property>
28+
<property name="action-name">app.quit</property>
29+
</object>
30+
</child>
31+
</object>
32+
</child>
33+
<child>
34+
<object class="AdwShortcutsSection">
35+
<property name="title" translatable="yes" context="shortcut window">Containers</property>
36+
<child>
37+
<object class="AdwShortcutsItem">
38+
<property name="title" translatable="yes" context="shortcut window">Refresh</property>
39+
<property name="action-name">win.refresh</property>
40+
</object>
41+
</child>
42+
<child>
43+
<object class="AdwShortcutsItem">
44+
<property name="title" translatable="yes" context="shortcut window">Upgrade Container</property>
45+
<property name="action-name">win.upgrade-container</property>
46+
</object>
47+
</child>
48+
<child>
49+
<object class="AdwShortcutsItem">
50+
<property name="title" translatable="yes" context="shortcut window">Upgrade All</property>
51+
<property name="action-name">win.upgrade-all</property>
52+
</object>
53+
</child>
54+
<child>
55+
<object class="AdwShortcutsItem">
56+
<property name="title" translatable="yes" context="shortcut window">Clone Container</property>
57+
<property name="action-name">win.clone-container</property>
58+
</object>
59+
</child>
60+
<child>
61+
<object class="AdwShortcutsItem">
62+
<property name="title" translatable="yes" context="shortcut window">Stop Container</property>
63+
<property name="action-name">win.stop-container</property>
64+
</object>
65+
</child>
66+
<child>
67+
<object class="AdwShortcutsItem">
68+
<property name="title" translatable="yes" context="shortcut window">Delete Container</property>
69+
<property name="action-name">win.delete-container</property>
70+
</object>
71+
</child>
72+
<child>
73+
<object class="AdwShortcutsItem">
74+
<property name="title" translatable="yes" context="shortcut window">Open Terminal</property>
75+
<property name="action-name">win.open-terminal</property>
76+
</object>
77+
</child>
78+
<child>
79+
<object class="AdwShortcutsItem">
80+
<property name="title" translatable="yes" context="shortcut window">Install Package</property>
81+
<property name="action-name">win.install-package</property>
82+
</object>
83+
</child>
84+
<child>
85+
<object class="AdwShortcutsItem">
86+
<property name="title" translatable="yes" context="shortcut window">View Exportable Apps</property>
87+
<property name="action-name">win.view-exportable-apps</property>
88+
</object>
89+
</child>
90+
</object>
91+
</child>
92+
</object>
93+
</interface>

po/POTFILES.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
data/com.ranfdev.DistroShelf.desktop.in
44
data/com.ranfdev.DistroShelf.gschema.xml
55
data/com.ranfdev.DistroShelf.metainfo.xml.in
6-
data/gtk/help-overlay.ui
6+
data/gtk/shortcuts-dialog.ui
77
src/dialogs/command_log_dialog.rs
88
src/dialogs/create_distrobox_dialog.rs
99
src/dialogs/exportable_apps_dialog.rs

src/application.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,18 @@ mod imp {
8282
let obj = self.obj();
8383
obj.setup_gactions();
8484
obj.set_accels_for_action("app.quit", &["<primary>q"]);
85+
obj.set_accels_for_action("app.shortcuts", &["<primary>question"]);
86+
obj.set_accels_for_action("win.refresh", &["F5"]);
87+
obj.set_accels_for_action("win.upgrade-container", &["<primary>u"]);
88+
obj.set_accels_for_action("win.upgrade-all", &["<primary><shift>u"]);
89+
obj.set_accels_for_action("win.install-package", &["<primary>i"]);
90+
obj.set_accels_for_action("win.preferences", &["<primary>comma"]);
91+
obj.set_accels_for_action("win.command-log", &["<primary>l"]);
92+
obj.set_accels_for_action("win.open-terminal", &["<primary>period"]);
93+
obj.set_accels_for_action("win.clone-container", &["<primary>d"]);
94+
obj.set_accels_for_action("win.view-exportable-apps", &["<primary>e"]);
95+
obj.set_accels_for_action("win.delete-container", &["<primary>Delete"]);
96+
obj.set_accels_for_action("win.stop-container", &["<primary>s"]);
8597
}
8698
}
8799

src/widgets/window.rs

Lines changed: 1 addition & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use adw::subclass::prelude::*;
3131
use glib::{Properties, derived_properties};
3232
use gtk::gio::ActionEntry;
3333
use gtk::glib::clone;
34-
use gtk::{gdk, gio, glib};
34+
use gtk::{gio, glib};
3535
use std::cell::RefCell;
3636
use tracing::info;
3737

@@ -88,58 +88,6 @@ mod imp {
8888

8989
fn class_init(klass: &mut Self::Class) {
9090
klass.bind_template();
91-
klass.add_binding_action(gdk::Key::F5, gdk::ModifierType::empty(), "win.refresh");
92-
// klass.add_binding_action(gdk::Key::N, gdk::ModifierType::CONTROL_MASK, "win.create-distrobox");
93-
klass.add_binding_action(
94-
gdk::Key::U,
95-
gdk::ModifierType::CONTROL_MASK,
96-
"win.upgrade-container",
97-
);
98-
klass.add_binding_action(
99-
gdk::Key::U,
100-
gdk::ModifierType::CONTROL_MASK | gdk::ModifierType::SHIFT_MASK,
101-
"win.upgrade-all",
102-
);
103-
klass.add_binding_action(
104-
gdk::Key::I,
105-
gdk::ModifierType::CONTROL_MASK,
106-
"win.install-package",
107-
);
108-
klass.add_binding_action(
109-
gdk::Key::comma,
110-
gdk::ModifierType::CONTROL_MASK,
111-
"win.preferences",
112-
);
113-
klass.add_binding_action(
114-
gdk::Key::L,
115-
gdk::ModifierType::CONTROL_MASK,
116-
"win.command-log",
117-
);
118-
klass.add_binding_action(
119-
gdk::Key::T,
120-
gdk::ModifierType::CONTROL_MASK,
121-
"win.open-terminal",
122-
);
123-
klass.add_binding_action(
124-
gdk::Key::D,
125-
gdk::ModifierType::CONTROL_MASK,
126-
"win.clone-container",
127-
);
128-
klass.add_binding_action(
129-
gdk::Key::E,
130-
gdk::ModifierType::CONTROL_MASK,
131-
"win.view-exportable-apps",
132-
);
133-
klass.add_binding_action(
134-
gdk::Key::Delete,
135-
gdk::ModifierType::CONTROL_MASK,
136-
"win.delete-container",
137-
);
138-
klass.add_binding_action(
139-
gdk::Key::S,
140-
gdk::ModifierType::CONTROL_MASK,
141-
"win.stop-container",
142-
);
14391
}
14492

14593
fn instance_init(obj: &glib::subclass::InitializingObject<Self>) {

src/widgets/window.ui

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,10 @@
232232
<attribute name="label" translatable="yes">_Settings</attribute>
233233
<attribute name="action">win.preferences</attribute>
234234
</item>
235+
<item>
236+
<attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute>
237+
<attribute name="action">app.shortcuts</attribute>
238+
</item>
235239
<item>
236240
<attribute name="label" translatable="yes">_About</attribute>
237241
<attribute name="action">app.about</attribute>

0 commit comments

Comments
 (0)