[apps/escher] Invocation::Action returns a bool

This commit is contained in:
Léa Saviot
2018-10-26 11:36:54 +02:00
committed by Émilie Feral
parent 91d6955ddf
commit bea78aa3b1
16 changed files with 35 additions and 11 deletions

View File

@@ -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),

View File

@@ -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),

View File

@@ -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),

View File

@@ -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;
});
}
}

View File

@@ -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;
});
}

View File

@@ -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))
{
}

View File

@@ -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);

View File

@@ -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)
{
}

View File

@@ -192,16 +192,17 @@ void StorageExpressionModelListController::editExpression(Ion::Events::Event eve
StorageExpressionModelListController * myController = static_cast<StorageExpressionModelListController *>(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<StorageExpressionModel> model = modelStore()->modelForRecord(record);
model->setContent(text);
return (model->setContent(text) == Ion::Storage::Record::ErrorStatus::None);
}
bool StorageExpressionModelListController::removeModelRow(Ion::Storage::Record record) {

View File

@@ -26,7 +26,7 @@ protected:
virtual void didChangeModelsList() {}
virtual void reinitExpression(ExpiringPointer<StorageExpressionModel> 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);

View File

@@ -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)
{

View File

@@ -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);

View File

@@ -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);

View File

@@ -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)

View File

@@ -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;

View File

@@ -1,11 +1,11 @@
#include <escher/invocation.h>
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);
}