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

@@ -6,7 +6,7 @@ use crate::engine::SeqCommand;
use crate::model::{FollowUp, PatternSpeed};
use crate::state::{
ConfirmAction, EditorTarget, EuclideanField, Modal, PatternField,
PatternPropsField, RenameTarget,
PatternPropsField, RenameTarget, ScriptField,
};
pub(super) fn handle_modal_input(ctx: &mut InputContext, key: KeyEvent) -> InputResult {
@@ -141,6 +141,44 @@ pub(super) fn handle_modal_input(ctx: &mut InputContext, key: KeyEvent) -> Input
KeyCode::Char(c) => input.push(c),
_ => {}
},
Modal::SetScript { field, input } => match key.code {
KeyCode::Enter => {
let field = *field;
match field {
ScriptField::Length => {
if let Ok(len) = input.parse::<usize>() {
ctx.dispatch(AppCommand::SetScriptLength(len));
let new_len = ctx.app.project_state.project.script_length;
ctx.dispatch(AppCommand::SetStatus(format!(
"Script length set to {new_len}"
)));
} else {
ctx.dispatch(AppCommand::SetStatus("Invalid length".to_string()));
}
}
ScriptField::Speed => {
if let Some(speed) = PatternSpeed::from_label(input) {
ctx.dispatch(AppCommand::SetScriptSpeed(speed));
ctx.dispatch(AppCommand::SetStatus(format!(
"Script speed set to {}",
speed.label()
)));
} else {
ctx.dispatch(AppCommand::SetStatus(
"Invalid speed (try 1/3, 2/5, 1x, 2x)".to_string(),
));
}
}
}
ctx.dispatch(AppCommand::CloseModal);
}
KeyCode::Esc => ctx.dispatch(AppCommand::CloseModal),
KeyCode::Backspace => {
input.pop();
}
KeyCode::Char(c) => input.push(c),
_ => {}
},
Modal::JumpToStep(input) => match key.code {
KeyCode::Enter => {
if let Ok(step) = input.parse::<usize>() {