Commit Graph

279 Commits

Author SHA1 Message Date
Ruben Dashyan
08e8bf0eeb [escher] Implement ScrollView::minimalSizeForOptimalDisplay including margins
Remove from derived classes:
 - apps/calculation/scrollable_expression_view
 - apps/code/consol_line_cell
 - apps/shared/scrollable_exact_approximate_expressions_view
 - escher/layout_field
 - escher/table_view
 - escher/text_field
2019-02-18 16:49:58 +01:00
Ruben Dashyan
faae55eb51 [escher/scroll_view] Replace setShowsIndicators by setDecoratorType 2019-02-18 16:49:58 +01:00
Léa Saviot
a021af46fe [apps/code] Hide the sandbox between script importations 2019-02-06 11:45:03 +01:00
Léa Saviot
4a8c0a6bd0 [apps/code] Do not change the responders in autoImportScript if sandbox
This fixes the following scenario: create a script that draws at
importation (for instance, add "squares()" at the end of squares.py) and
execute this script. The sandbox is displayed but events are handled by
the underneath text field, thus leading to the display of the variable
box and other bugs.
2019-02-06 11:45:03 +01:00
Léa Saviot
0a5290d5a6 [apps/code] Fix MenuController::willExitResponderChain
It called textFieldDidAbortEditing, which called setFirstResponder,
which could clash with another setFirstResponder higher in the call
tree.

Scenario: build with an update popup, create a new script, edit its name
with an unvalid name and press the Power key while editing. When
powering on the device again, the first responder is not the popup even
though it is displayed, and pressing OK does not dismiss it.
2019-01-21 14:23:50 +01:00
Léa Saviot
1b78f03219 [apps/code] Comment the non support for upper cases in script names 2019-01-21 13:39:59 +01:00
Léa Saviot
f392ca8063 [apps/code] More details in NonCompliantName warning 2019-01-21 13:39:59 +01:00
Léa Saviot
1994e716bf [i18n] Change Message name 2019-01-21 13:39:59 +01:00
Léa Saviot
282feac8a1 [apps/code] Do not allow script names starting with a number. 2019-01-21 13:39:59 +01:00
Léa Saviot
fbb1fbd138 [apps/code] Handle nullptr prompt text in input 2019-01-10 11:42:05 +01:00
Léa Saviot
f7f77ef9f7 [apps/code] When OK or EXE on empty python input loop, stop the input 2019-01-10 11:42:05 +01:00
Léa Saviot
c4bd55ef08 [apps/code] Clean ConsoleController::printText 2019-01-10 11:42:05 +01:00
Léa Saviot
177373c5af [apps/code] Handle carriage returns in the input text 2019-01-10 11:42:05 +01:00
Léa Saviot
2d4d92090c [apps/code] Inline code in console_store 2019-01-10 11:42:05 +01:00
Léa Saviot
17e7d36009 [apps/code] If EPSILON_GETOPT, auto import scripts 2019-01-09 16:13:46 +01:00
Léa Saviot
1c306658ce [apps/code] Fix Python environment loading order 2019-01-09 16:13:46 +01:00
Léa Saviot
4f4ae4e0f7 Merge branch 'master' into python_turtle 2019-01-08 14:32:43 +01:00
Léa Saviot
58f94f5e5f [apps/code] Check that app can be exited before switching to DFU
This fixes the following crash: create a script which contains only
"input()". Execute it, then while in the input, plug in the calculator.
When un-plugging it, the device crashes.
2019-01-07 13:36:01 +01:00
Léa Saviot
1782326ed8 [apps/code] Clean ConsoleController code 2019-01-07 13:36:01 +01:00
Léa Saviot
33072eb9b1 [apps/code] Add some comments 2019-01-07 13:36:01 +01:00
Léa Saviot
8830821d0e [apps/code/python] Inline and indent some code 2019-01-07 13:36:01 +01:00
Léa Saviot
9b07f1936e [apps/code] Squares script template: start by resetting the turtle 2019-01-03 15:28:55 +01:00
Léa Saviot
384fa04798 [apps/code] Change the default scripts: squares instead of factorial 2018-12-27 17:21:10 +01:00
Léa Saviot
03f300a754 [python/turtle] Add showturtle and hideturtle to the toolbox 2018-12-27 17:09:45 +01:00
Léa Saviot
df2b9c4d81 [escher/apps] Get children count via template in ToolboxMessageTree::Node 2018-12-21 13:29:32 +01:00
Léa Saviot
4b306791c0 [python/turtle] Turtle::m_drawn is false if sandbox not displayed
This way, Turtle::draw() and erase() are more symetrical and no not
perform themselves if the turtle is already drawn / erased.
2018-12-18 12:05:46 +01:00
Léa Saviot
ed19d19070 Merge branch 'master' into python_turtle 2018-12-17 15:49:46 +01:00
Léa Saviot
101370c507 [escher] Change ToolboxMessageTree constructors
To simplify ToolboxMessageTree cosntruction
2018-12-17 15:27:38 +01:00
Léa Saviot
62de89ceba [apps/code] Fix 'blue', 'red', ... python command insertion
The 'blue' command would be stripped and become ''.
2018-12-17 14:25:31 +01:00
Léa Saviot
b3c11f2425 [apps/code] Put turtle module higher in Python toolbox 2018-12-17 13:58:13 +01:00
Léa Saviot
b058b023db [apps/code] Add turtle functions in the toolbox catalog 2018-12-17 13:58:13 +01:00
Léa Saviot
8a3aa1ab08 [apps/code] Add turtle functions in th python toolbox 2018-12-17 11:57:40 +01:00
Léa Saviot
609740b0bd [apps/code] Order catalog.universal.i18n 2018-12-17 10:31:20 +01:00
Léa Saviot
ce1cdaacc3 [apps/code] Fix console reloading that did not occur often enough
Scenario:
Write a script that prints "abc"
Open the console -> prints "abc"
Modify the script to print "ab"
Go back to the console -> "ab" not printed !
2018-12-12 11:15:50 +01:00
Léa Saviot
ddf361c1b1 [apps] Sandbox handles/absorbs only keyboard events (except Home, OnOff)
The sandbox prevented USB enumeration by absorbing the event.
2018-12-11 09:34:12 +01:00
Léa Saviot
cc3beb6014 [python/turtle] Turtle::reset() method 2018-12-06 17:26:43 +01:00
Léa Saviot
b0f2131dec [apps/code] Fix variableBox crash
Respect the k_maxScriptNodesCount limit
2018-11-28 17:28:22 +01:00
Léa Saviot
2a089fe643 [apps] Share NameTooLong message 2018-11-27 12:09:36 +01:00
Léa Saviot
f3ab938481 [apps] Share and fix NameTaken message 2018-11-27 12:09:36 +01:00
Émilie Feral
55be86ef50 [escher] TableView::cellAtLocation should return nullptr if the cell is
invisible and therefore no view displays it.

Fix bug: add 4 functions, in the values table one cell is wrong as soon
as you edit an x value
2018-11-26 11:24:30 +01:00
Émilie Feral
916493a4d2 [apps] Reset (exam mode) delete all records at once 2018-11-23 12:04:10 +01:00
Émilie Feral
d59c836abd [code] PythonToolbox: add 'eval' to the catalog 2018-11-23 12:04:09 +01:00
Émilie Feral
978766f2e4 [code] Use strlcpy instead of memcpy to avoid invalid read 2018-11-23 12:04:09 +01:00
Léa Saviot
a0e716c1ad [apps/eschr] Rename textFieldDidHandleEvent parameter textSizeDidChange 2018-11-23 12:04:06 +01:00
Léa Saviot
d686199111 [code] Delete script when aborting edition with no default name 2018-11-23 12:04:05 +01:00
Léa Saviot
e74e15eaf7 [apps/code] Handle too many Script default names used
When adding to many scripts without naming them, one can overflow the
number of default generated script names, in which case we force the
user to enter a name.
2018-11-23 12:04:05 +01:00
Léa Saviot
0f9d1db851 [apps/code] Fix break that should be a return 2018-11-23 12:04:05 +01:00
Léa Saviot
58c022a9a9 [apps/code] Allow any number of scripts 2018-11-23 12:04:05 +01:00
Léa Saviot
fd533834ef [apps/code] Default script name is in class Script, not menu controller 2018-11-23 12:04:04 +01:00
Léa Saviot
bea78aa3b1 [apps/escher] Invocation::Action returns a bool 2018-11-23 12:04:04 +01:00