Commit Graph

78 Commits

Author SHA1 Message Date
Léa Saviot
b27551ce4f [code] Fixed bug when importing scripts that draw on screen.
The drawing should happen after the ConsoleController is pushed on the
screen. This means that the importation of scripts should be done at the
ConsoleController's viewWillAppear.

Change-Id: I756ac9de30f339dc4f6aa8d3995abea0a46d03b5
2017-12-04 12:11:00 +01:00
Léa Saviot
dd1fe77832 [code] Fixed Execute Script bug.
When disabling a script auto-import parameter, it would not import
itself when executing it from its script parameters menu.

Change-Id: If58f6fe1be4792b551ad3b462f1f43e8b82e8148
2017-12-01 13:19:30 +01:00
Léa Saviot
e43bbd38f2 [escher] Fixed TextField bug.
The Statistics apps crashed when navigating the Data table.
 -> Check that the textfield is editing before calling
textFieldShouldFinishEditing.
 -> Changed textLength() to draftTextLength().

Change-Id: Id373a7cd50438303f470abc5bcee7a795c33926a
2017-12-01 13:19:30 +01:00
Léa Saviot
e6b4d07cb6 [code] Dynamic toolbox that displays script functions and variables.
Change-Id: Id1494580b3832540633d3aefaf04710d21e0a44c
2017-12-01 12:06:05 +01:00
Léa Saviot
37a2def2f1 [code] The maximal number of scripts is stored in the ScriptStore.
It was in the MenuController before.

Change-Id: I5f48465d92b53079dc358feec7a4b713875c7e2d
2017-12-01 12:06:05 +01:00
Léa Saviot
9d57d7f173 [code] Cleaned MenuController.
Change-Id: I499fcaf728a4f60557475b64e371a97e362b558d
2017-11-28 10:27:33 +01:00
Léa Saviot
2ce26f2625 [code] Fixed assertion bug in MenuController.
The assert should take into account the fact that there might not be any
script.

Change-Id: I68f0e5071ffd011fc5bb1dacc035d2127bdd8176
2017-11-28 10:27:12 +01:00
Léa Saviot
c543145aae [code] Optimized MenuController's script list scrolling speed.
To know if the AddScript row should be displayed, we need to compute the free
space size of the accordion, which is very slow. We thus memoized a bool
indicating if the AddScript row should be displayed.

Change-Id: Ia3891c0fc8df9b0b8bf2a9ad053be6dfc848c970
2017-11-17 14:05:23 +01:00
Léa Saviot
6baaa8547a [code] Execute a script from the script options.
A button in the options opens the console, with only the current script
imported.

Change-Id: Ia3053534d6fdb2bd1340ce3c42b7249510c97bbc
2017-11-17 14:05:23 +01:00
Léa Saviot
57633829a9 [code] Split the Menu Controller in two columns.
The scripts names are on the right and open the script edition.
The left cells open the script options.

Change-Id: I3fbab8c3861f3395c3206775c92cda3470963b26
2017-11-17 14:05:23 +01:00
Léa Saviot
4f74b6d849 [code] The addScript button disappears when needed.
When there is already the maximal number of scripts or when the
ScriptStore accordion buffer is full.

Change-Id: I0d43d42626da7f060a2309c66f1806b35a29bf38
2017-11-17 14:05:23 +01:00
Léa Saviot
a19377ad5e [code] Default numbered script names (e.g. script1.py)
When the script name is empty after renaming a script, a default new name is
given. We look for the first available scriptI.py name, with 0<I<100.

Change-Id: If17f1df95c552320c0412ce652e7ae7e0cfd9cbc
2017-11-17 11:59:50 +01:00
Léa Saviot
2456c7eeba [code] Improved console command editing.
When the user scrolls the history, the draft command is not erased.
When pasting a previous command, the text is inserted at the cursor
location.

Change-Id: I1cd9645de74f34fad4ed0898203e05bd3352456a
2017-11-17 11:59:50 +01:00
Léa Saviot
fbdf6379d8 [code] Script editor and Console are stacked.
Before, they appeared in modal views.

Change-Id: I42ea742370cd3cf0854965f67fc44b43db4cc309
2017-11-17 11:59:50 +01:00
Léa Saviot
fc603df886 [code] Activate AlphaLock mode when renaming a script.
Default Alphalock mode when finishing or aborting edition.

Change-Id: I6455d5e18957c822de34271c53b64be43a5099ea
2017-11-17 11:59:50 +01:00
Léa Saviot
6ee47d6168 [code] Prevent script name extension edition.
Change-Id: I4ac8d032fd88b853670afeebaecc8d6fd5ef981d
2017-11-17 11:59:50 +01:00
Léa Saviot
35520fb3d4 [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
2017-11-17 11:59:50 +01:00
Léa Saviot
45aa526cd6 [code] Fixed SelectableTableView selection problem.
If adding a script fails, the selectableTableView should select the "Add
script" line.

Change-Id: I373cdfa0afcc334e4bf306b1cee4bfb817417980
2017-11-17 11:59:50 +01:00
Léa Saviot
fbb5c70339 [code] Cleaned Script and ScriptStore classes, created accordion.h
A Script object now contains its AutoImport marker, its name and its
content. The ScripStore methods have better names and the optimization
is cleaner.

Change-Id: I1b21af2d23f1c9a34f984309512b0c01b2f1c320
2017-11-17 11:59:50 +01:00
Léa Saviot
a14cfd0aea [code] Script names are displayed and can be edited.
Change-Id: I5acc468920b66673e78da130bf90a74d0c062211
2017-11-17 11:59:50 +01:00
Léa Saviot
68f368fcde [code] The user can delete scripts.
Change-Id: I1b60a4c79a58efe5213add1b1c5d60cdfe85c1e6
2017-11-17 11:59:50 +01:00
Léa Saviot
5de4b5cd67 [code] Each script has a name, stored in the accordeon buffer.
A script can now be imported in the console.
Moved all the MicroPython functions to python/port files.

Change-Id: I0a23e8cb20005719b800e81470e1c574c702c3b7
2017-11-17 11:59:50 +01:00
Léa Saviot
f3200fe2e9 [code] Program store that uses an accordeon buffer to store the
programs. The user can now add scripts.
A contextual menu displays various options when clicking on a script,
such as editing.

Change-Id: I124a17f7584b0beedb897e8499ca0a1bb6c13cbe
2017-11-17 11:59:50 +01:00
Léa Saviot
adabf95b59 [code] The interface is a list with a button at the bottom to
start the console.

Change-Id: I4a4a432db2d4cdc72e9a0ad7aa5904c1ded3c0e1
2017-11-17 11:59:50 +01:00
Léa Saviot
c57f9cf8b1 [code] The Python console compiles and executes commands entered.
It stores and displays the result in the console store.
An empty line returned at the end of the execution is deleted.

Change-Id: Ic90e02e2d91d0a0033413da0588032d9450aefd0
2017-11-17 11:59:50 +01:00
Léa Saviot
493cef0d4d [code] Python console that stores and displays commands that are
entered.

Change-Id: I0343c38b60f4bbea6dfab173e2b5f46f66b83251
2017-11-17 11:59:50 +01:00
Émilie Feral
304bbf18b9 [apps/code] Split the editor in editor and executor
Change-Id: I862deeb4fd84e8fb77bf880095f80c1a2a4d8c5d
2017-08-17 16:21:22 +02:00
Émilie Feral
8b6dfdc3f9 [apps/code] Add a menu to edit and execute the program
Change-Id: I036e5a32fa6823b25af4ccd742967841579d7639
2017-08-17 16:21:21 +02:00