From c4162fd98a2f4b1fbe9e741095f20efa1079759d Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Sun, 16 Feb 2025 17:12:47 +0100 Subject: [PATCH] recording tile: Expose tracks editor --- data/ui/recording_tile.blp | 3 ++- src/recording_tile.rs | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/data/ui/recording_tile.blp b/data/ui/recording_tile.blp index 6e76183..8acb307 100644 --- a/data/ui/recording_tile.blp +++ b/data/ui/recording_tile.blp @@ -66,5 +66,6 @@ template $MusicusRecordingTile: Gtk.FlowBoxChild { } menu edit_menu { - item (_("Edit recording"), "recording.edit") + item (_("Edit recording"), "recording.edit-recording") + item (_("Edit tracks"), "recording.edit-tracks") } diff --git a/src/recording_tile.rs b/src/recording_tile.rs index 64f2aaa..65e9c0a 100644 --- a/src/recording_tile.rs +++ b/src/recording_tile.rs @@ -8,6 +8,8 @@ use gtk::{gio, glib, prelude::*, subclass::prelude::*}; use std::cell::OnceCell; mod imp { + use crate::editor::tracks_editor::TracksEditor; + use super::*; #[derive(Debug, Default, gtk::CompositeTemplate)] @@ -45,7 +47,7 @@ mod imp { self.parent_constructed(); let obj = self.obj().to_owned(); - let edit_action = gio::ActionEntry::builder("edit") + let edit_recording_action = gio::ActionEntry::builder("edit-recording") .activate(move |_, _, _| { obj.imp() .navigation @@ -59,8 +61,19 @@ mod imp { }) .build(); + let obj = self.obj().to_owned(); + let edit_tracks_action = gio::ActionEntry::builder("edit-tracks") + .activate(move |_, _, _| { + obj.imp().navigation.get().unwrap().push(&TracksEditor::new( + obj.imp().navigation.get().unwrap(), + obj.imp().library.get().unwrap(), + Some(obj.imp().recording.get().unwrap().clone()), + )); + }) + .build(); + let actions = gio::SimpleActionGroup::new(); - actions.add_action_entries([edit_action]); + actions.add_action_entries([edit_recording_action, edit_tracks_action]); self.obj().insert_action_group("recording", Some(&actions)); } }