This commit is contained in:
2026-01-25 21:44:08 +01:00
parent 73470ded79
commit 2d609f6b7a
7 changed files with 52 additions and 41 deletions

View File

@@ -5,7 +5,6 @@ use std::path::PathBuf;
use std::sync::{Arc, Mutex};
use crossbeam_channel::Sender;
use ratatui::style::Color;
use crate::commands::AppCommand;
use crate::engine::{
@@ -16,8 +15,8 @@ use crate::page::Page;
use crate::services::pattern_editor;
use crate::settings::Settings;
use crate::state::{
AudioSettings, EditorContext, Focus, LiveKeyState, Metrics, Modal, PanelState, PatternField,
PatternsNav, PlaybackState, ProjectState, UiState,
AudioSettings, EditorContext, FlashKind, Focus, LiveKeyState, Metrics, Modal, PanelState,
PatternField, PatternsNav, PlaybackState, ProjectState, UiState,
};
use crate::views::{dict_view, help_view};
@@ -320,7 +319,7 @@ impl App {
Some(cmds.join("\n"))
};
}
self.ui.flash("Script compiled", 150, Color::White);
self.ui.flash("Script compiled", 150, FlashKind::Info);
}
Err(e) => {
if let Some(step) = self
@@ -331,7 +330,7 @@ impl App {
{
step.command = None;
}
self.ui.flash(&format!("Script error: {e}"), 300, Color::Red);
self.ui.flash(&format!("Script error: {e}"), 300, FlashKind::Error);
}
}
}
@@ -540,7 +539,7 @@ impl App {
{
self.load_step_to_editor();
}
self.ui.flash("Step deleted", 150, Color::Green);
self.ui.flash("Step deleted", 150, FlashKind::Success);
}
pub fn reset_pattern(&mut self, bank: usize, pattern: usize) {
@@ -549,7 +548,7 @@ impl App {
if self.editor_ctx.bank == bank && self.editor_ctx.pattern == pattern {
self.load_step_to_editor();
}
self.ui.flash("Pattern reset", 150, Color::Green);
self.ui.flash("Pattern reset", 150, FlashKind::Success);
}
pub fn reset_bank(&mut self, bank: usize) {
@@ -560,13 +559,13 @@ impl App {
if self.editor_ctx.bank == bank {
self.load_step_to_editor();
}
self.ui.flash("Bank reset", 150, Color::Green);
self.ui.flash("Bank reset", 150, FlashKind::Success);
}
pub fn copy_pattern(&mut self, bank: usize, pattern: usize) {
let pat = self.project_state.project.banks[bank].patterns[pattern].clone();
self.copied_pattern = Some(pat);
self.ui.flash("Pattern copied", 150, Color::Green);
self.ui.flash("Pattern copied", 150, FlashKind::Success);
}
pub fn paste_pattern(&mut self, bank: usize, pattern: usize) {
@@ -582,14 +581,14 @@ impl App {
if self.editor_ctx.bank == bank && self.editor_ctx.pattern == pattern {
self.load_step_to_editor();
}
self.ui.flash("Pattern pasted", 150, Color::Green);
self.ui.flash("Pattern pasted", 150, FlashKind::Success);
}
}
pub fn copy_bank(&mut self, bank: usize) {
let b = self.project_state.project.banks[bank].clone();
self.copied_bank = Some(b);
self.ui.flash("Bank copied", 150, Color::Green);
self.ui.flash("Bank copied", 150, FlashKind::Success);
}
pub fn paste_bank(&mut self, bank: usize) {
@@ -607,7 +606,7 @@ impl App {
if self.editor_ctx.bank == bank {
self.load_step_to_editor();
}
self.ui.flash("Bank pasted", 150, Color::Green);
self.ui.flash("Bank pasted", 150, FlashKind::Success);
}
}
@@ -676,7 +675,7 @@ impl App {
self.project_state.mark_dirty(bank, pattern);
self.load_step_to_editor();
self.ui
.flash(&format!("Linked to step {:02}", copied.step + 1), 150, Color::Green);
.flash(&format!("Linked to step {:02}", copied.step + 1), 150, FlashKind::Success);
}
pub fn harden_step(&mut self) {
@@ -709,7 +708,7 @@ impl App {
}
self.project_state.mark_dirty(bank, pattern);
self.load_step_to_editor();
self.ui.flash("Step hardened", 150, Color::Green);
self.ui.flash("Step hardened", 150, FlashKind::Success);
}
pub fn open_pattern_modal(&mut self, field: PatternField) {
@@ -842,8 +841,8 @@ impl App {
AppCommand::Flash {
message,
duration_ms,
color,
} => self.ui.flash(&message, duration_ms, color),
kind,
} => self.ui.flash(&message, duration_ms, kind),
AppCommand::OpenModal(modal) => {
if matches!(modal, Modal::Editor) {
// If current step is a shallow copy, navigate to source step