edit/crop: Add keyboard shortcuts

Closes #442
This commit is contained in:
Sophie Herold 2025-01-29 12:29:26 +01:00
parent 40e0f29003
commit 129d1cfc7a
3 changed files with 89 additions and 0 deletions

View file

@ -60,6 +60,8 @@ pub enum LpOrientation {
mod imp {
use gtk::gdk;
use super::*;
#[derive(Debug, Default, gtk::CompositeTemplate, glib::Properties)]
@ -105,6 +107,56 @@ mod imp {
klass.install_action("edit-crop.apply-crop", None, |obj, _, _| {
obj.imp().apply_crop()
});
klass.add_shortcut(
&gtk::Shortcut::builder()
.action(&gtk::NamedAction::new("edit-crop.mirror-horizontally"))
.trigger(&gtk::KeyvalTrigger::new(
gdk::Key::H,
gdk::ModifierType::NO_MODIFIER_MASK,
))
.build(),
);
klass.add_shortcut(
&gtk::Shortcut::builder()
.action(&gtk::NamedAction::new("edit-crop.mirror-vertically"))
.trigger(&gtk::KeyvalTrigger::new(
gdk::Key::V,
gdk::ModifierType::NO_MODIFIER_MASK,
))
.build(),
);
klass.add_shortcut(
&gtk::Shortcut::builder()
.action(&gtk::NamedAction::new("edit-crop.rotate-cw"))
.trigger(&gtk::KeyvalTrigger::new(
gdk::Key::R,
gdk::ModifierType::CONTROL_MASK,
))
.build(),
);
klass.add_shortcut(
&gtk::Shortcut::builder()
.action(&gtk::NamedAction::new("edit-crop.rotate-ccw"))
.trigger(&gtk::KeyvalTrigger::new(
gdk::Key::R,
gdk::ModifierType::CONTROL_MASK.union(gdk::ModifierType::SHIFT_MASK),
))
.build(),
);
klass.add_shortcut(
&gtk::Shortcut::builder()
.action(&gtk::NamedAction::new("edit-crop.apply-crop"))
.trigger(&gtk::KeyvalTrigger::new(
gdk::Key::Return,
gdk::ModifierType::CONTROL_MASK,
))
.build(),
);
}
fn instance_init(obj: &glib::subclass::InitializingObject<Self>) {

View file

@ -194,6 +194,8 @@ mod imp {
#[template_child]
selection_move: TemplateChild<gtk::GestureDrag>,
#[template_child]
shortcuts: TemplateChild<gtk::ShortcutController>,
#[template_child]
selection_overlay: TemplateChild<gtk::Overlay>,