mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps/code] Hide the sandbox between script importations
This commit is contained in:
committed by
EmilieNumworks
parent
4a8c0a6bd0
commit
a021af46fe
@@ -332,6 +332,13 @@ void ConsoleController::displaySandbox() {
|
||||
stackViewController()->push(&m_sandboxController);
|
||||
}
|
||||
|
||||
void ConsoleController::hideSandbox() {
|
||||
if (!sandboxIsDisplayed()) {
|
||||
return;
|
||||
}
|
||||
m_sandboxController.hide();
|
||||
}
|
||||
|
||||
void ConsoleController::resetSandbox() {
|
||||
if (!sandboxIsDisplayed()) {
|
||||
return;
|
||||
@@ -364,6 +371,12 @@ void ConsoleController::printText(const char * text, size_t length) {
|
||||
}
|
||||
|
||||
void ConsoleController::autoImportScript(Script script, bool force) {
|
||||
if (sandboxIsDisplayed()) {
|
||||
/* The sandbox might be displayed, for instance if we are auto-importing
|
||||
* several scripts that draw at importation. In this case, we want to remove
|
||||
* the sandbox. */
|
||||
hideSandbox();
|
||||
}
|
||||
if (script.importationStatus() || force) {
|
||||
// Step 1 - Create the command "from scriptName import *".
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ public:
|
||||
|
||||
// MicroPython::ExecutionEnvironment
|
||||
void displaySandbox() override;
|
||||
void hideSandbox() override;
|
||||
void resetSandbox() override;
|
||||
void printText(const char * text, size_t length) override;
|
||||
const char * inputText(const char * prompt) override;
|
||||
|
||||
@@ -20,6 +20,10 @@ void SandboxController::reset() {
|
||||
redrawWindow();
|
||||
}
|
||||
|
||||
void SandboxController::hide() {
|
||||
stackViewController()->pop();
|
||||
}
|
||||
|
||||
void SandboxController::viewWillAppear() {
|
||||
assert(m_executionEnvironment != nullptr);
|
||||
m_executionEnvironment->setSandboxIsDisplayed(true);
|
||||
|
||||
@@ -14,6 +14,7 @@ public:
|
||||
SandboxController(Responder * parentResponder, MicroPython::ExecutionEnvironment * executionEnvironment);
|
||||
StackViewController * stackViewController();
|
||||
void reset();
|
||||
void hide();
|
||||
|
||||
// ViewController
|
||||
View * view() override { return &m_solidColorView; }
|
||||
|
||||
@@ -19,6 +19,7 @@ public:
|
||||
void runCode(const char * );
|
||||
virtual const char * inputText(const char * prompt) { return nullptr; }
|
||||
virtual void displaySandbox() {}
|
||||
virtual void hideSandbox() {}
|
||||
virtual void resetSandbox() {}
|
||||
virtual void printText(const char * text, size_t length) {}
|
||||
void interrupt();
|
||||
|
||||
Reference in New Issue
Block a user