Feat: add hidden mode and new documentation
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
use crate::commands::AppCommand;
|
||||
use crate::engine::{LinkState, SequencerSnapshot};
|
||||
use crate::model::bp_label;
|
||||
use crate::page::Page;
|
||||
use crate::services::{dict_nav, euclidean, help_nav, pattern_editor};
|
||||
use crate::state::{undo::UndoEntry, FlashKind, Modal, StagedPropChange};
|
||||
|
||||
@@ -215,23 +216,33 @@ impl App {
|
||||
|
||||
// Page navigation
|
||||
AppCommand::PageLeft => {
|
||||
self.auto_save_script_on_leave();
|
||||
self.page.left();
|
||||
self.auto_load_script_on_arrive();
|
||||
self.maybe_show_onboarding();
|
||||
}
|
||||
AppCommand::PageRight => {
|
||||
self.auto_save_script_on_leave();
|
||||
self.page.right();
|
||||
self.auto_load_script_on_arrive();
|
||||
self.maybe_show_onboarding();
|
||||
}
|
||||
AppCommand::PageUp => {
|
||||
self.auto_save_script_on_leave();
|
||||
self.page.up();
|
||||
self.auto_load_script_on_arrive();
|
||||
self.maybe_show_onboarding();
|
||||
}
|
||||
AppCommand::PageDown => {
|
||||
self.auto_save_script_on_leave();
|
||||
self.page.down();
|
||||
self.auto_load_script_on_arrive();
|
||||
self.maybe_show_onboarding();
|
||||
}
|
||||
AppCommand::GoToPage(page) => {
|
||||
self.auto_save_script_on_leave();
|
||||
self.page = page;
|
||||
self.auto_load_script_on_arrive();
|
||||
self.maybe_show_onboarding();
|
||||
}
|
||||
|
||||
@@ -464,6 +475,35 @@ impl App {
|
||||
AppCommand::SavePrelude => self.save_prelude(),
|
||||
AppCommand::EvaluatePrelude => self.evaluate_prelude(link),
|
||||
AppCommand::ClosePreludeEditor => self.close_prelude_editor(),
|
||||
|
||||
// Periodic script
|
||||
AppCommand::OpenScriptModal(field) => self.open_script_modal(field),
|
||||
AppCommand::SetScriptSpeed(speed) => {
|
||||
self.project_state.project.script_speed = speed;
|
||||
self.script_editor.dirty = true;
|
||||
}
|
||||
AppCommand::SetScriptLength(len) => {
|
||||
self.project_state.project.script_length = len.clamp(1, 256);
|
||||
self.script_editor.dirty = true;
|
||||
}
|
||||
AppCommand::ScriptSave => self.save_script_from_editor(),
|
||||
AppCommand::ScriptEvaluate => self.evaluate_script_page(link),
|
||||
AppCommand::ToggleScriptStack => {
|
||||
self.script_editor.show_stack = !self.script_editor.show_stack;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn auto_save_script_on_leave(&mut self) {
|
||||
if self.page == Page::Script {
|
||||
self.save_script_from_editor();
|
||||
self.script_editor.focused = false;
|
||||
}
|
||||
}
|
||||
|
||||
fn auto_load_script_on_arrive(&mut self) {
|
||||
if self.page == Page::Script {
|
||||
self.load_script_to_editor();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user