recording tile: Expose tracks editor

This commit is contained in:
Elias Projahn 2025-02-16 17:12:47 +01:00
parent 740ad0cf0b
commit c4162fd98a
2 changed files with 17 additions and 3 deletions

View file

@ -66,5 +66,6 @@ template $MusicusRecordingTile: Gtk.FlowBoxChild {
} }
menu edit_menu { menu edit_menu {
item (_("Edit recording"), "recording.edit") item (_("Edit recording"), "recording.edit-recording")
item (_("Edit tracks"), "recording.edit-tracks")
} }

View file

@ -8,6 +8,8 @@ use gtk::{gio, glib, prelude::*, subclass::prelude::*};
use std::cell::OnceCell; use std::cell::OnceCell;
mod imp { mod imp {
use crate::editor::tracks_editor::TracksEditor;
use super::*; use super::*;
#[derive(Debug, Default, gtk::CompositeTemplate)] #[derive(Debug, Default, gtk::CompositeTemplate)]
@ -45,7 +47,7 @@ mod imp {
self.parent_constructed(); self.parent_constructed();
let obj = self.obj().to_owned(); let obj = self.obj().to_owned();
let edit_action = gio::ActionEntry::builder("edit") let edit_recording_action = gio::ActionEntry::builder("edit-recording")
.activate(move |_, _, _| { .activate(move |_, _, _| {
obj.imp() obj.imp()
.navigation .navigation
@ -59,8 +61,19 @@ mod imp {
}) })
.build(); .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(); 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)); self.obj().insert_action_group("recording", Some(&actions));
} }
} }