dashboard: o/s shortcuts to open a script and save via a file dialog
Two new dashboard keys, mirroring the existing x=export: 'o' opens a file picker to run a .essim script (-> source <path>), 's' opens a file picker to write a system snapshot (-> save <path>, only when a system is loaded). Both use OpenFileDialog with a per-key persisted last directory; the global CatchEvent already yields to the file-dialog modal while it is open. Dashboard help hints updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -309,6 +309,8 @@ Component Tui::BuildDashboardScreen() {
|
||||
{"a", "analyze (verify + groups)"},
|
||||
{"h", "help screen"},
|
||||
{"x", "export"},
|
||||
{"o", "open/run a script"},
|
||||
{"s", "save system"},
|
||||
{"PgUp", "scroll up"},
|
||||
{"PgDn", "scroll down"},
|
||||
{"Home", "scroll top"},
|
||||
|
||||
@@ -101,6 +101,23 @@ void Tui::Run() {
|
||||
if (e == Event::Character("a")) { screen_idx = 5; return true; }
|
||||
if (e == Event::Character("h")) { screen_idx = 6; return true; }
|
||||
if (e == Event::Character("x")) { Dispatch("export"); return true; }
|
||||
if (e == Event::Character("o")) { // open / run a script
|
||||
OpenFileDialog("Open script — run a .essim file",
|
||||
"dashboard.source", "", {},
|
||||
[this](const std::string &path) {
|
||||
Dispatch("source " + path);
|
||||
});
|
||||
return true;
|
||||
}
|
||||
if (e == Event::Character("s")) { // save the system snapshot
|
||||
if (sys)
|
||||
OpenFileDialog("Save system snapshot",
|
||||
"dashboard.save", "system.essim", {},
|
||||
[this](const std::string &path) {
|
||||
Dispatch("save " + path);
|
||||
});
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
case 3: // explore
|
||||
|
||||
Reference in New Issue
Block a user