diff --git a/apps/code/menu_controller.cpp b/apps/code/menu_controller.cpp index 9a8afe1ed..be6460e9a 100644 --- a/apps/code/menu_controller.cpp +++ b/apps/code/menu_controller.cpp @@ -17,7 +17,7 @@ MenuController::MenuController(Responder * parentResponder, App * pythonDelegate MenuController * menu = (MenuController *)context; menu->consoleController()->setAutoImport(true); menu->stackViewController()->push(menu->consoleController()); - return; + return true; }, this), KDFont::LargeFont), m_selectableTableView(this, this, this, this), m_scriptParameterController(nullptr, I18n::Message::ScriptOptions, this), diff --git a/apps/exam_pop_up_controller.cpp b/apps/exam_pop_up_controller.cpp index 364f95899..915fcf547 100644 --- a/apps/exam_pop_up_controller.cpp +++ b/apps/exam_pop_up_controller.cpp @@ -50,6 +50,7 @@ ExamPopUpController::ContentView::ContentView(Responder * parentResponder) : ExamPopUpController * controller = (ExamPopUpController *)context; Container * container = (Container *)controller->app()->container(); container->activeApp()->dismissModalViewController(); + return true; }, parentResponder), KDFont::SmallFont), m_okButton(parentResponder, I18n::Message::Ok, Invocation([](void * context, void * sender) { ExamPopUpController * controller = (ExamPopUpController *)context; @@ -65,6 +66,7 @@ ExamPopUpController::ContentView::ContentView(Responder * parentResponder) : } container->refreshPreferences(); container->activeApp()->dismissModalViewController(); + return true; }, parentResponder), KDFont::SmallFont), m_warningTextView(KDFont::SmallFont, I18n::Message::Warning, 0.5, 0.5, KDColorWhite, KDColorBlack), m_messageTextView1(KDFont::SmallFont, I18n::Message::Default, 0.5, 0.5, KDColorWhite, KDColorBlack), diff --git a/apps/hardware_test/pop_up_controller.cpp b/apps/hardware_test/pop_up_controller.cpp index c0cb42ce2..92905900c 100644 --- a/apps/hardware_test/pop_up_controller.cpp +++ b/apps/hardware_test/pop_up_controller.cpp @@ -36,11 +36,13 @@ PopUpController::ContentView::ContentView(Responder * parentResponder) : m_cancelButton(this, I18n::Message::Cancel, Invocation([](void * context, void * sender) { PopUpController::ContentView * view = (PopUpController::ContentView *)context; view->app()->dismissModalViewController(); + return true; }, this), KDFont::SmallFont), m_okButton(this, I18n::Message::Ok, Invocation([](void * context, void * sender) { PopUpController::ContentView * view = (PopUpController::ContentView *)context; AppsContainer * appsContainer = (AppsContainer *)view->app()->container(); appsContainer->switchTo(appsContainer->hardwareTestAppSnapshot()); + return true; }, this), KDFont::SmallFont), m_warningTextView(KDFont::SmallFont, I18n::Message::Warning, 0.5, 0.5, KDColorWhite, KDColorBlack), m_messageTextView1(KDFont::SmallFont, I18n::Message::HardwareTestLaunch1, 0.5, 0.5, KDColorWhite, KDColorBlack), diff --git a/apps/sequence/list/list_controller.cpp b/apps/sequence/list/list_controller.cpp index 947d03838..83e3c88b9 100644 --- a/apps/sequence/list/list_controller.cpp +++ b/apps/sequence/list/list_controller.cpp @@ -131,8 +131,10 @@ void ListController::editExpression(Sequence * sequence, int sequenceDefinition, InputViewController * myInputViewController = (InputViewController *)sender; const char * textBody = myInputViewController->textBody(); mySequence->setContent(textBody); + return true; //TODO should return result of mySequence->setContent }, [](void * context, void * sender){ + return true; }); break; case 1: @@ -142,8 +144,10 @@ void ListController::editExpression(Sequence * sequence, int sequenceDefinition, InputViewController * myInputViewController = (InputViewController *)sender; const char * textBody = myInputViewController->textBody(); mySequence->setFirstInitialConditionContent(textBody); + return true; //TODO should return result of mySequence->setFirstInitialConditionContent }, [](void * context, void * sender){ + return true; }); break; default: @@ -153,8 +157,10 @@ void ListController::editExpression(Sequence * sequence, int sequenceDefinition, InputViewController * myInputViewController = (InputViewController *)sender; const char * textBody = myInputViewController->textBody(); mySequence->setSecondInitialConditionContent(textBody); + return true; //TODO should return the result of mySequence->setSecondInitialConditionContent }, [](void * context, void * sender){ + return true; }); } } diff --git a/apps/shared/expression_model_list_controller.cpp b/apps/shared/expression_model_list_controller.cpp index 62a17b7b1..327a5ac3b 100644 --- a/apps/shared/expression_model_list_controller.cpp +++ b/apps/shared/expression_model_list_controller.cpp @@ -98,8 +98,10 @@ void ExpressionModelListController::editExpression(ExpressionModel * model, Ion: InputViewController * myInputViewController = (InputViewController *)sender; const char * textBody = myInputViewController->textBody(); myModel->setContent(textBody); + return true; // TODO we should return a result from myModel->setContent, but we will remove ExpressionModelListController soon anyway }, [](void * context, void * sender){ + return true; }); } diff --git a/apps/shared/float_parameter_controller.cpp b/apps/shared/float_parameter_controller.cpp index dfc33a6f4..5c8392ace 100644 --- a/apps/shared/float_parameter_controller.cpp +++ b/apps/shared/float_parameter_controller.cpp @@ -16,6 +16,7 @@ FloatParameterController::FloatParameterController(Responder * parentResponder) m_okButton(&m_selectableTableView, I18n::Message::Ok, Invocation([](void * context, void * sender) { FloatParameterController * parameterController = (FloatParameterController *) context; parameterController->buttonAction(); + return true; }, this)) { } diff --git a/apps/shared/function_list_controller.cpp b/apps/shared/function_list_controller.cpp index caefbe841..cc295e35d 100644 --- a/apps/shared/function_list_controller.cpp +++ b/apps/shared/function_list_controller.cpp @@ -13,11 +13,13 @@ FunctionListController::FunctionListController(Responder * parentResponder, Func FunctionListController * list = (FunctionListController *)context; TabViewController * tabController = list->tabController(); tabController->setActiveTab(1); + return true; }, this), KDFont::SmallFont, Palette::PurpleBright), m_valuesButton(this, I18n::Message::DisplayValues, Invocation([](void * context, void * sender) { FunctionListController * list = (FunctionListController *)context; TabViewController * tabController = list->tabController(); tabController->setActiveTab(2); + return true; }, this), KDFont::SmallFont, Palette::PurpleBright) { m_selectableTableView.setMargins(0); diff --git a/apps/shared/interactive_curve_view_controller.cpp b/apps/shared/interactive_curve_view_controller.cpp index 6bf52e420..d5a2e8083 100644 --- a/apps/shared/interactive_curve_view_controller.cpp +++ b/apps/shared/interactive_curve_view_controller.cpp @@ -18,16 +18,19 @@ InteractiveCurveViewController::InteractiveCurveViewController(Responder * paren InteractiveCurveViewController * graphController = (InteractiveCurveViewController *) context; StackViewController * stack = graphController->stackController(); stack->push(graphController->rangeParameterController()); + return true; }, this), KDFont::SmallFont), m_zoomButton(this, I18n::Message::Zoom, Invocation([](void * context, void * sender) { InteractiveCurveViewController * graphController = (InteractiveCurveViewController *) context; StackViewController * stack = graphController->stackController(); stack->push(graphController->zoomParameterController()); + return true; }, this), KDFont::SmallFont), m_defaultInitialisationButton(this, I18n::Message::Initialization, Invocation([](void * context, void * sender) { InteractiveCurveViewController * graphController = (InteractiveCurveViewController *) context; StackViewController * stack = graphController->stackController(); stack->push(graphController->initialisationParameterController()); + return true; }, this), KDFont::SmallFont) { } diff --git a/apps/shared/storage_expression_model_list_controller.cpp b/apps/shared/storage_expression_model_list_controller.cpp index bda47692c..9366f0f58 100644 --- a/apps/shared/storage_expression_model_list_controller.cpp +++ b/apps/shared/storage_expression_model_list_controller.cpp @@ -192,16 +192,17 @@ void StorageExpressionModelListController::editExpression(Ion::Events::Event eve StorageExpressionModelListController * myController = static_cast(context); InputViewController * myInputViewController = (InputViewController *)sender; const char * textBody = myInputViewController->textBody(); - myController->editSelectedRecordWithText(textBody); + return myController->editSelectedRecordWithText(textBody); }, [](void * context, void * sender){ + return true; }); } -void StorageExpressionModelListController::editSelectedRecordWithText(const char * text) { +bool StorageExpressionModelListController::editSelectedRecordWithText(const char * text) { Ion::Storage::Record record = modelStore()->recordAtIndex(modelIndexForRow(selectedRow())); ExpiringPointer model = modelStore()->modelForRecord(record); - model->setContent(text); + return (model->setContent(text) == Ion::Storage::Record::ErrorStatus::None); } bool StorageExpressionModelListController::removeModelRow(Ion::Storage::Record record) { diff --git a/apps/shared/storage_expression_model_list_controller.h b/apps/shared/storage_expression_model_list_controller.h index 43282e015..7b2353eae 100644 --- a/apps/shared/storage_expression_model_list_controller.h +++ b/apps/shared/storage_expression_model_list_controller.h @@ -26,7 +26,7 @@ protected: virtual void didChangeModelsList() {} virtual void reinitExpression(ExpiringPointer model); virtual void editExpression(Ion::Events::Event event); - virtual void editSelectedRecordWithText(const char * text); + virtual bool editSelectedRecordWithText(const char * text); virtual bool removeModelRow(Ion::Storage::Record record); virtual int modelIndexForRow(int j) { return j; } virtual bool isAddEmptyRow(int j); diff --git a/apps/shared/storage_function_list_controller.cpp b/apps/shared/storage_function_list_controller.cpp index 1628b1000..a555a4c76 100644 --- a/apps/shared/storage_function_list_controller.cpp +++ b/apps/shared/storage_function_list_controller.cpp @@ -14,11 +14,13 @@ StorageFunctionListController::StorageFunctionListController(Responder * parentR StorageFunctionListController * list = (StorageFunctionListController *)context; TabViewController * tabController = list->tabController(); tabController->setActiveTab(1); + return true; }, this), KDFont::SmallFont, Palette::PurpleBright), m_valuesButton(this, I18n::Message::DisplayValues, Invocation([](void * context, void * sender) { StorageFunctionListController * list = (StorageFunctionListController *)context; TabViewController * tabController = list->tabController(); tabController->setActiveTab(2); + return true; }, this), KDFont::SmallFont, Palette::PurpleBright), m_titlesColumnWidth(k_minTitleColumnWidth) { diff --git a/apps/shared/storage_values_controller.cpp b/apps/shared/storage_values_controller.cpp index 99f4606dc..4a7558ee7 100644 --- a/apps/shared/storage_values_controller.cpp +++ b/apps/shared/storage_values_controller.cpp @@ -23,6 +23,7 @@ StorageValuesController::StorageValuesController(Responder * parentResponder, In StorageValuesController * valuesController = (StorageValuesController *) context; StackViewController * stack = ((StackViewController *)valuesController->stackController()); stack->push(valuesController->intervalParameterController()); + return true; }, this), k_font) { m_selectableTableView.setVerticalCellOverlap(0); diff --git a/apps/shared/values_controller.cpp b/apps/shared/values_controller.cpp index ce3fd76a4..5a57c738a 100644 --- a/apps/shared/values_controller.cpp +++ b/apps/shared/values_controller.cpp @@ -23,6 +23,7 @@ ValuesController::ValuesController(Responder * parentResponder, InputEventHandle ValuesController * valuesController = (ValuesController *) context; StackViewController * stack = ((StackViewController *)valuesController->stackController()); stack->push(valuesController->intervalParameterController()); + return true; }, this), KDFont::SmallFont) { m_selectableTableView.setVerticalCellOverlap(0); diff --git a/apps/solver/list_controller.cpp b/apps/solver/list_controller.cpp index 191551ebf..28d6b0d22 100644 --- a/apps/solver/list_controller.cpp +++ b/apps/solver/list_controller.cpp @@ -15,6 +15,7 @@ ListController::ListController(Responder * parentResponder, EquationStore * equa m_resolveButton(this, equationStore->numberOfDefinedModels() > 1 ? I18n::Message::ResolveSystem : I18n::Message::ResolveEquation, Invocation([](void * context, void * sender) { ListController * list = (ListController *)context; list->resolveEquations(); + return true; }, this), KDFont::LargeFont, Palette::PurpleBright), m_modelsParameterController(this, equationStore, this), m_modelsStackController(nullptr, &m_modelsParameterController, KDColorWhite, Palette::PurpleDark, Palette::PurpleDark) diff --git a/escher/include/escher/invocation.h b/escher/include/escher/invocation.h index 7e7c2fd65..e82cbb128 100644 --- a/escher/include/escher/invocation.h +++ b/escher/include/escher/invocation.h @@ -3,9 +3,9 @@ class Invocation { public: - typedef void (*Action)(void * context, void * sender); + typedef bool (*Action)(void * context, void * sender); Invocation(Action a, void * c); - void perform(void * sender); + bool perform(void * sender); private: Action m_action; void * m_context; diff --git a/escher/src/invocation.cpp b/escher/src/invocation.cpp index 8b7140796..80ab77c10 100644 --- a/escher/src/invocation.cpp +++ b/escher/src/invocation.cpp @@ -1,11 +1,11 @@ #include Invocation::Invocation(Action a, void * c) : - m_action(a), - m_context(c) + m_action(a), + m_context(c) { } -void Invocation::perform(void * sender) { - (*m_action)(m_context, sender); +bool Invocation::perform(void * sender) { + return (*m_action)(m_context, sender); }