[code] Scripts can be automatically imported when the console is opened.

Editing, renaming, deleting or changing the auto-importation of a script
triggers the reloading of the console (the history is cleared, Python
restarted and the scripts re-imported).

Change-Id: If8b933cc077ecd36cab09214b5e7a181aa3ae030
This commit is contained in:
Léa Saviot
2017-10-25 16:10:50 +02:00
committed by Romain Goyet
parent 45aa526cd6
commit 35520fb3d4
14 changed files with 183 additions and 31 deletions

View File

@@ -12,7 +12,11 @@ MenuController::MenuController(Responder * parentResponder, ScriptStore * script
m_addNewScriptCell(I18n::Message::AddScript),
m_consoleButton(this, I18n::Message::Console, Invocation([](void * context, void * sender) {
MenuController * menu = (MenuController *)context;
menu->app()->displayModalViewController(menu->consoleController(), 0.5f, 0.5f);
if (menu->consoleController()->loadPythonEnvironment()) {
menu->app()->displayModalViewController(menu->consoleController(), 0.5f, 0.5f);
return;
}
//TODO: Pop up warning message: not enough space to load Python
}, this)),
m_selectableTableView(this, this, 0, 1, 0, 0, 0, 0, this, nullptr, false),
m_consoleController(parentResponder, m_scriptStore),
@@ -67,12 +71,18 @@ bool MenuController::handleEvent(Ion::Events::Event event) {
}
void MenuController::configureScript() {
m_scriptParameterController.setScript(m_selectableTableView.selectedRow());
setParameteredScript();
stackViewController()->push(&m_scriptParameterController);
}
void MenuController::setParameteredScript() {
m_scriptParameterController.setScript(m_selectableTableView.selectedRow());
}
void MenuController::addScript() {
m_scriptStore->addNewScript();
if (m_scriptStore->addNewScript()) {
renameScriptAtIndex(m_scriptStore->numberOfScripts()-1);
}
m_selectableTableView.reloadData();
}
@@ -91,6 +101,10 @@ void MenuController::deleteScriptAtIndex(int i) {
m_selectableTableView.reloadData();
}
void MenuController::reloadConsole() {
m_consoleController.unloadPythonEnvironment();
}
int MenuController::numberOfRows() {
return m_scriptStore->numberOfScripts() + 1;
//TODO do not add the addScript row if there can be no more scripts stored.
@@ -172,6 +186,7 @@ bool MenuController::textFieldDidFinishEditing(TextField * textField, const char
m_selectableTableView.selectCellAtLocation(m_selectableTableView.selectedColumn(), currentRow - 1);
}
m_selectableTableView.selectedCell()->setHighlighted(true);
reloadConsole();
app()->setFirstResponder(&m_selectableTableView);
return true;
} else {