mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
wip: modularize dialog
This commit is contained in:
parent
baad8254a2
commit
3e9545fe26
17 changed files with 171 additions and 173 deletions
|
|
@ -18,7 +18,7 @@ pub struct App {
|
|||
/// Contains the currently edited musical arrangement
|
||||
pub project: Arrangement,
|
||||
/// Undo history
|
||||
pub history: Vec<AppCommand>,
|
||||
pub history: Vec<(AppCommand, Option<AppCommand>)>,
|
||||
// Dialog overlay
|
||||
pub dialog: Option<Dialog>,
|
||||
// Cache of formatted strings
|
||||
|
|
@ -179,9 +179,6 @@ impl App {
|
|||
fn focus_editor (&self) -> bool {
|
||||
self.project.editor.is_some()
|
||||
}
|
||||
fn is_editing (&self) -> bool {
|
||||
self.project.editor.is_some()
|
||||
}
|
||||
fn focus_message (&self) -> bool {
|
||||
matches!(self.dialog, Some(Dialog::Message(..)))
|
||||
}
|
||||
|
|
@ -192,16 +189,20 @@ impl App {
|
|||
self.browser().is_some()
|
||||
}
|
||||
fn focus_clip (&self) -> bool {
|
||||
!self.is_editing() && self.selection().is_clip()
|
||||
!self.focus_editor() && matches!(self.selection(),
|
||||
Selection::TrackClip{..})
|
||||
}
|
||||
fn focus_track (&self) -> bool {
|
||||
!self.is_editing() && self.selection().is_track()
|
||||
!self.focus_editor() && matches!(self.selection(),
|
||||
Selection::Track(..))
|
||||
}
|
||||
fn focus_scene (&self) -> bool {
|
||||
!self.is_editing() && self.selection().is_scene()
|
||||
!self.focus_editor() && matches!(self.selection(),
|
||||
Selection::Scene(..))
|
||||
}
|
||||
fn focus_mix (&self) -> bool {
|
||||
!self.is_editing() && self.selection().is_mix()
|
||||
!self.focus_editor() && matches!(self.selection(),
|
||||
Selection::Mix)
|
||||
}
|
||||
fn focus_pool_import (&self) -> bool {
|
||||
matches!(self.pool.mode, Some(PoolMode::Import(..)))
|
||||
|
|
@ -260,29 +261,32 @@ impl App {
|
|||
fn scene_count (&self) -> usize {
|
||||
self.scenes().len()
|
||||
}
|
||||
fn scene_selection (&self) -> Option<usize> {
|
||||
fn scene_selected (&self) -> Option<usize> {
|
||||
self.selection().scene()
|
||||
}
|
||||
fn track_count (&self) -> usize {
|
||||
self.tracks().len()
|
||||
}
|
||||
fn track_selection (&self) -> Option<usize> {
|
||||
fn track_selected (&self) -> Option<usize> {
|
||||
self.selection().track()
|
||||
}
|
||||
fn select_scene (&self) -> Selection {
|
||||
self.selection().select_scene(self.tracks().len())
|
||||
}
|
||||
fn select_scene_next (&self) -> Selection {
|
||||
self.selection().scene_next(self.scenes().len())
|
||||
self.selection().select_scene_next(self.scenes().len())
|
||||
}
|
||||
fn select_scene_prev (&self) -> Selection {
|
||||
self.selection().scene_prev()
|
||||
self.selection().select_scene_prev()
|
||||
}
|
||||
fn select_track_header (&self) -> Selection {
|
||||
self.selection().track_header(self.tracks().len())
|
||||
fn select_track (&self) -> Selection {
|
||||
self.selection().select_track(self.tracks().len())
|
||||
}
|
||||
fn select_track_next (&self) -> Selection {
|
||||
self.selection().track_next(self.tracks().len())
|
||||
self.selection().select_track_next(self.tracks().len())
|
||||
}
|
||||
fn select_track_prev (&self) -> Selection {
|
||||
self.selection().track_prev()
|
||||
self.selection().select_track_prev()
|
||||
}
|
||||
fn clip_selected (&self) -> Option<Arc<RwLock<MidiClip>>> {
|
||||
match self.selection() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue