mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
Added option to duplicate scripts (closes 176)
This commit is contained in:
@@ -4,5 +4,6 @@ ScriptOptions = "Skriptoptionen"
|
||||
ExecuteScript = "Skript ausführen"
|
||||
AutoImportScript = "Automatischer Import in Konsole"
|
||||
DeleteScript = "Skript löschen"
|
||||
DuplicateScript = "Skript duplizieren"
|
||||
FunctionsAndVariables = "Funktionen und Variablen"
|
||||
AllowedCharactersaz09 = "Erlaubte Zeichen: a-z, 0-9, _"
|
||||
|
||||
@@ -4,5 +4,6 @@ ScriptOptions = "Script options"
|
||||
ExecuteScript = "Execute script"
|
||||
AutoImportScript = "Auto import in shell"
|
||||
DeleteScript = "Delete script"
|
||||
DuplicateScript = "Duplicate script"
|
||||
FunctionsAndVariables = "Functions and variables"
|
||||
AllowedCharactersaz09 = "Allowed characters: a-z, 0-9, _"
|
||||
|
||||
@@ -4,5 +4,6 @@ ScriptOptions = "Opciones del archivo"
|
||||
ExecuteScript = "Ejecutar el archivo"
|
||||
AutoImportScript = "Importación auto en intérprete"
|
||||
DeleteScript = "Eliminar el archivo"
|
||||
DuplicateScript = "Duplicar el guión"
|
||||
FunctionsAndVariables = "Funciones y variables"
|
||||
AllowedCharactersaz09 = "Caracteres permitidos : a-z, 0-9, _"
|
||||
|
||||
@@ -4,5 +4,6 @@ ScriptOptions = "Options de script"
|
||||
ExecuteScript = "Exécuter le script"
|
||||
AutoImportScript = "Importation auto dans la console"
|
||||
DeleteScript = "Supprimer le script"
|
||||
DuplicateScript = "Dupliquer le script"
|
||||
FunctionsAndVariables = "Fonctions et variables"
|
||||
AllowedCharactersaz09 = "Caractères autorisés : a-z, 0-9, _"
|
||||
|
||||
@@ -4,5 +4,6 @@ ScriptOptions = "Script beállítások"
|
||||
ExecuteScript = "Script indítása"
|
||||
AutoImportScript = "Script automata importálása"
|
||||
DeleteScript = "Script törlése"
|
||||
DuplicateScript = "Másolja a szkriptet"
|
||||
FunctionsAndVariables = "Függvények és változók"
|
||||
AllowedCharactersaz09 = "Engedélyezett karakterek: a-z, 0-9, _"
|
||||
|
||||
@@ -4,5 +4,6 @@ ScriptOptions = "Opções de script"
|
||||
ExecuteScript = "Executar o script"
|
||||
AutoImportScript = "Importação auto no interpretador"
|
||||
DeleteScript = "Eliminar o script"
|
||||
DuplicateScript = "Duplicar o script"
|
||||
FunctionsAndVariables = "Funções e variáveis"
|
||||
AllowedCharactersaz09 = "Caracteres permitidos : a-z, 0-9, _"
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "../apps_container.h"
|
||||
#include <assert.h>
|
||||
#include <escher/metric.h>
|
||||
#include <ion.h>
|
||||
#include <ion/events.h>
|
||||
#include <ion/unicode/utf8_decoder.h>
|
||||
|
||||
@@ -133,6 +134,18 @@ void MenuController::renameSelectedScript() {
|
||||
tf->setCursorLocation(tf->text() + strlen(previousText));
|
||||
}
|
||||
|
||||
void MenuController::duplicateScript(Script script) {
|
||||
assert(!script.isNull());
|
||||
|
||||
// Clone here
|
||||
char buffer[10];
|
||||
Script::DefaultName(buffer, 10);
|
||||
|
||||
Ion::Storage::sharedStorage()->createRecordWithExtension(buffer, Code::ScriptStore::k_scriptExtension, script.value().buffer, script.value().size);
|
||||
|
||||
updateAddScriptRowDisplay();
|
||||
}
|
||||
|
||||
void MenuController::deleteScript(Script script) {
|
||||
assert(!script.isNull());
|
||||
script.destroy();
|
||||
|
||||
@@ -19,6 +19,7 @@ public:
|
||||
StackViewController * stackViewController();
|
||||
void willExitResponderChain(Responder * nextFirstResponder) override;
|
||||
void renameSelectedScript();
|
||||
void duplicateScript(Script script);
|
||||
void deleteScript(Script script);
|
||||
void reloadConsole();
|
||||
void openConsoleWithScript(Script script);
|
||||
|
||||
@@ -10,6 +10,7 @@ ScriptParameterController::ScriptParameterController(Responder * parentResponder
|
||||
m_renameScript(I18n::Message::Rename),
|
||||
m_autoImportScript(I18n::Message::AutoImportScript),
|
||||
m_deleteScript(I18n::Message::DeleteScript),
|
||||
m_duplicateScript(I18n::Message::DuplicateScript),
|
||||
m_selectableTableView(this),
|
||||
m_script(Ion::Storage::Record()),
|
||||
m_menuController(menuController)
|
||||
@@ -52,6 +53,11 @@ bool ScriptParameterController::handleEvent(Ion::Events::Event event) {
|
||||
m_menuController->deleteScript(s);
|
||||
m_menuController->reloadConsole();
|
||||
return true;
|
||||
case 4:
|
||||
dismissScriptParameterController();
|
||||
m_menuController->duplicateScript(s);
|
||||
m_menuController->reloadConsole();
|
||||
return true;
|
||||
default:
|
||||
assert(false);
|
||||
return false;
|
||||
@@ -73,7 +79,7 @@ void ScriptParameterController::didBecomeFirstResponder() {
|
||||
HighlightCell * ScriptParameterController::reusableCell(int index) {
|
||||
assert(index >= 0);
|
||||
assert(index < k_totalNumberOfCell);
|
||||
HighlightCell * cells[] = {&m_executeScript, &m_renameScript, &m_autoImportScript, &m_deleteScript};
|
||||
HighlightCell * cells[] = {&m_executeScript, &m_renameScript, &m_autoImportScript, &m_deleteScript, &m_duplicateScript};
|
||||
return cells[index];
|
||||
}
|
||||
|
||||
|
||||
@@ -30,13 +30,14 @@ public:
|
||||
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
|
||||
|
||||
private:
|
||||
constexpr static int k_totalNumberOfCell = 4;
|
||||
constexpr static int k_totalNumberOfCell = 5;
|
||||
StackViewController * stackViewController();
|
||||
I18n::Message m_pageTitle;
|
||||
MessageTableCell m_executeScript;
|
||||
MessageTableCell m_renameScript;
|
||||
MessageTableCellWithSwitch m_autoImportScript;
|
||||
MessageTableCell m_deleteScript;
|
||||
MessageTableCell m_duplicateScript;
|
||||
SelectableTableView m_selectableTableView;
|
||||
Script m_script;
|
||||
MenuController * m_menuController;
|
||||
|
||||
Reference in New Issue
Block a user