From 71bfcbf5d76b1cf7bf9ad7c172c5dc2d090eced8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Mon, 4 Dec 2017 16:32:12 +0100 Subject: [PATCH] [code] Cleaned the prevention of ".py" edition. Now the MenuController changes the cursor location if needed once the Textfield has handled the event. Change-Id: I1ad3202402623dfa9a683866fef90ca33ddd6be0 --- apps/code/menu_controller.cpp | 20 ++++++++------------ apps/code/menu_controller.h | 3 ++- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/apps/code/menu_controller.cpp b/apps/code/menu_controller.cpp index f1cb542c1..e6b561258 100644 --- a/apps/code/menu_controller.cpp +++ b/apps/code/menu_controller.cpp @@ -272,18 +272,6 @@ bool MenuController::textFieldShouldFinishEditing(TextField * textField, Ion::Ev } bool MenuController::textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) { - if (event == Ion::Events::Right && textField->isEditing()) { - int scriptExtensionLength = strlen(ScriptStore::k_scriptExtension); - if (textField->cursorLocation() > textField->draftTextLength() - scriptExtensionLength - 1) { - return true; - } - } - if (event.hasText() && textField->isEditing()) { - size_t eventTextLength = strlen(event.text()); - if (textField->draftTextLength() + eventTextLength >= TextField::maxBufferSize()) { - return true; - } - } if (event == Ion::Events::Left && textField->isEditing() && textField->cursorLocation() == 0) { return true; } @@ -334,6 +322,14 @@ bool MenuController::textFieldDidAbortEditing(TextField * textField, const char return true; } +bool MenuController::textFieldDidHandleEvent(TextField * textField, Ion::Events::Event event, bool returnValue) { + int scriptExtensionLength = strlen(ScriptStore::k_scriptExtension); + if (textField->isEditing() && textField->cursorLocation() > textField->draftTextLength() - scriptExtensionLength) { + textField->setCursorLocation(textField->draftTextLength() - scriptExtensionLength); + } + return returnValue; +} + void MenuController::addScript() { if (m_scriptStore->addNewScript()) { updateAddScriptRowDisplay(); diff --git a/apps/code/menu_controller.h b/apps/code/menu_controller.h index ee44c94b2..4199693aa 100644 --- a/apps/code/menu_controller.h +++ b/apps/code/menu_controller.h @@ -53,7 +53,8 @@ public: bool textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) override; bool textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) override; bool textFieldDidAbortEditing(TextField * textField, const char * text) override; - Toolbox * toolboxForTextField(TextField * textFied) override { return nullptr; } + bool textFieldDidHandleEvent(TextField * textField, Ion::Events::Event event, bool returnValue) override; + Toolbox * toolboxForTextField(TextField * textField) override { return nullptr; } /* ButtonRowDelegate */ int numberOfButtons(ButtonRowController::Position position) const override { return 1; }