mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[solver] Fix update of the button message between: 'Solve the equation'
and 'Solve the system'
This commit is contained in:
@@ -10,7 +10,7 @@ ListController::ListController(Responder * parentResponder, EquationStore * equa
|
||||
ExpressionModelListController(parentResponder, I18n::Message::AddEquation),
|
||||
ButtonRowDelegate(nullptr, footer),
|
||||
m_equationStore(equationStore),
|
||||
m_resolveButton(this, I18n::Message::ResolveEquation, Invocation([](void * context, void * sender) {
|
||||
m_resolveButton(this, equationStore->numberOfDefinedModels() > 1 ? I18n::Message::ResolveSystem : I18n::Message::ResolveEquation, Invocation([](void * context, void * sender) {
|
||||
ListController * list = (ListController *)context;
|
||||
list->resolveEquations();
|
||||
}, this), KDText::FontSize::Large, Palette::PurpleBright),
|
||||
@@ -182,7 +182,7 @@ void ListController::resolveEquations() {
|
||||
}
|
||||
|
||||
void ListController::reloadButtonMessage() {
|
||||
m_resolveButton.setMessage(m_equationStore->numberOfDefinedModels() > 1 ? I18n::Message::ResolveSystem : I18n::Message::ResolveEquation);
|
||||
footer()->setMessageOfButtonAtIndex(m_equationStore->numberOfDefinedModels() > 1 ? I18n::Message::ResolveSystem : I18n::Message::ResolveEquation, 0);
|
||||
}
|
||||
|
||||
void ListController::addEmptyModel() {
|
||||
@@ -191,6 +191,7 @@ void ListController::addEmptyModel() {
|
||||
|
||||
bool ListController::removeModelRow(ExpressionModel * model) {
|
||||
ExpressionModelListController::removeModelRow(model);
|
||||
reloadButtonMessage();
|
||||
reloadBrace();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ public:
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
int selectedButton();
|
||||
bool setSelectedButton(int selectedButton);
|
||||
void setMessageOfButtonAtIndex(I18n::Message message, int index);
|
||||
void viewWillAppear() override;
|
||||
void viewDidDisappear() override;
|
||||
ViewController::DisplayParameter displayParameter() override { return DisplayParameter::DoNotShowOwnTitle; }
|
||||
@@ -41,6 +42,7 @@ private:
|
||||
ContentView(ViewController * mainViewController, ButtonRowDelegate * delegate, Position position, Style style, Size size);
|
||||
int numberOfButtons() const;
|
||||
Button * buttonAtIndex(int index) const;
|
||||
void reload();
|
||||
int numberOfSubviews() const override;
|
||||
View * subviewAtIndex(int index) override;
|
||||
void layoutSubviews() override;
|
||||
|
||||
@@ -27,6 +27,10 @@ Button * ButtonRowController::ContentView::buttonAtIndex(int index) const {
|
||||
return m_delegate->buttonAtIndex(index, m_position);
|
||||
}
|
||||
|
||||
void ButtonRowController::ContentView::reload() {
|
||||
markRectAsDirty(bounds());
|
||||
}
|
||||
|
||||
int ButtonRowController::ContentView::numberOfSubviews() const {
|
||||
return numberOfButtons() + 1;
|
||||
}
|
||||
@@ -178,6 +182,14 @@ bool ButtonRowController::setSelectedButton(int selectedButton) {
|
||||
return m_contentView.setSelectedButton(selectedButton, application);
|
||||
}
|
||||
|
||||
void ButtonRowController::setMessageOfButtonAtIndex(I18n::Message message, int index) {
|
||||
if (m_contentView.numberOfButtons() > index) {
|
||||
m_contentView.buttonAtIndex(0)->setMessage(message);
|
||||
m_contentView.layoutSubviews();
|
||||
m_contentView.reload();
|
||||
}
|
||||
}
|
||||
|
||||
bool ButtonRowController::handleEvent(Ion::Events::Event event) {
|
||||
if (event == Ion::Events::Left) {
|
||||
if (m_contentView.selectedButton() == 0) {
|
||||
|
||||
Reference in New Issue
Block a user