Feat: add hidden mode and new documentation

This commit is contained in:
2026-02-26 12:31:56 +01:00
parent e1cf57918e
commit 70032acc75
95 changed files with 1055 additions and 286 deletions

View File

@@ -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();
}
}
}