diff --git a/apps/settings/base.de.i18n b/apps/settings/base.de.i18n index e728ea17e..d16a57742 100644 --- a/apps/settings/base.de.i18n +++ b/apps/settings/base.de.i18n @@ -47,3 +47,4 @@ SymbolMultiplicationCross = "Kreuz" SymbolMultiplicationMiddleDot = "Mittelpunkt" SymbolMultiplicationStar = "Stern" SymbolMultiplicationAutoSymbol = "automatisch" +SymbolicEnabled = "Symbolic calc." diff --git a/apps/settings/base.en.i18n b/apps/settings/base.en.i18n index 0d62be4b8..95680b05a 100644 --- a/apps/settings/base.en.i18n +++ b/apps/settings/base.en.i18n @@ -47,3 +47,4 @@ SymbolMultiplicationCross = "Cross" SymbolMultiplicationMiddleDot = "Middle dot" SymbolMultiplicationStar = "Star" SymbolMultiplicationAutoSymbol = "Automatic" +SymbolicEnabled = "Symbolic calc." diff --git a/apps/settings/base.es.i18n b/apps/settings/base.es.i18n index f4615de36..08a43a88b 100644 --- a/apps/settings/base.es.i18n +++ b/apps/settings/base.es.i18n @@ -47,3 +47,4 @@ SymbolMultiplicationCross = "contrariar" SymbolMultiplicationMiddleDot = "punto medio" SymbolMultiplicationStar = "estrella" SymbolMultiplicationAutoSymbol = "automático" +SymbolicEnabled = "Symbolic calc." diff --git a/apps/settings/base.fr.i18n b/apps/settings/base.fr.i18n index bb3ad6a6e..40a9d1718 100644 --- a/apps/settings/base.fr.i18n +++ b/apps/settings/base.fr.i18n @@ -47,3 +47,4 @@ SymbolMultiplicationCross = "Croix" SymbolMultiplicationMiddleDot = "Point" SymbolMultiplicationStar = "Etoile" SymbolMultiplicationAutoSymbol = "Automatique" +SymbolicEnabled = "Symbolic calc." diff --git a/apps/settings/base.pt.i18n b/apps/settings/base.pt.i18n index f81da34d9..5b5e8f786 100644 --- a/apps/settings/base.pt.i18n +++ b/apps/settings/base.pt.i18n @@ -47,3 +47,4 @@ SymbolMultiplicationCross = "crómio" SymbolMultiplicationMiddleDot = "ponto médio" SymbolMultiplicationStar = "estrela" SymbolMultiplicationAutoSymbol = "automático" +SymbolicEnabled = "Symbolic calc." diff --git a/apps/settings/main_controller_prompt_none.cpp b/apps/settings/main_controller_prompt_none.cpp index a3a20e130..7ff074116 100644 --- a/apps/settings/main_controller_prompt_none.cpp +++ b/apps/settings/main_controller_prompt_none.cpp @@ -15,7 +15,7 @@ constexpr SettingsMessageTree s_symbolChildren[4] = {SettingsMessageTree(I18n::M //sub-menus constexpr SettingsMessageTree s_modelMathOptionsChildren[5] = {SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren, 3), SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 4), SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2), SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3), SettingsMessageTree(I18n::Message::SymbolMultiplication, s_symbolChildren, 4)}; -constexpr SettingsMessageTree s_modelExamChildren[2] = {SettingsMessageTree(I18n::Message::LEDColor, s_ledColorChildren, 4), SettingsMessageTree(I18n::Message::ActivateExamMode)}; +constexpr SettingsMessageTree s_modelExamChildren[3] = {SettingsMessageTree(I18n::Message::LEDColor, s_ledColorChildren, 4), SettingsMessageTree(I18n::Message::SymbolicEnabled), SettingsMessageTree(I18n::Message::ActivateExamMode)}; constexpr SettingsMessageTree s_accessibilityChildren[6] = {SettingsMessageTree(I18n::Message::AccessibilityInvertColors), SettingsMessageTree(I18n::Message::AccessibilityMagnify),SettingsMessageTree(I18n::Message::AccessibilityGamma),SettingsMessageTree(I18n::Message::AccessibilityGammaRed),SettingsMessageTree(I18n::Message::AccessibilityGammaGreen),SettingsMessageTree(I18n::Message::AccessibilityGammaBlue)}; #ifdef USERNAME constexpr SettingsMessageTree s_modelAboutChildren[7] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 5)}; @@ -27,7 +27,7 @@ constexpr SettingsMessageTree s_modelMenu[] = {SettingsMessageTree(I18n::Message::MathOptions, s_modelMathOptionsChildren, 5), SettingsMessageTree(I18n::Message::Brightness), SettingsMessageTree(I18n::Message::Language), - SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren, 2), + SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren, 3), SettingsMessageTree(I18n::Message::Accessibility, s_accessibilityChildren, 6), #ifdef USERNAME SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 7)}; diff --git a/apps/settings/sub_menu/exam_mode_controller.cpp b/apps/settings/sub_menu/exam_mode_controller.cpp index 78ba177db..b293081e0 100644 --- a/apps/settings/sub_menu/exam_mode_controller.cpp +++ b/apps/settings/sub_menu/exam_mode_controller.cpp @@ -15,7 +15,8 @@ ExamModeController::ExamModeController(Responder * parentResponder) : GenericSubController(parentResponder), m_preferencesController(this), m_examModeCell(I18n::Message::Default, KDFont::LargeFont), - m_ledCell(KDFont::LargeFont, KDFont::SmallFont) + m_ledCell(KDFont::LargeFont, KDFont::SmallFont), + m_symbolicCell(I18n::Message::SymbolicEnabled, KDFont::LargeFont) { } @@ -40,6 +41,12 @@ bool ExamModeController::handleEvent(Ion::Events::Event event) { stack->push(subController); return true; } + if (childLabel == I18n::Message::SymbolicEnabled) { + Preferences * preferences = Preferences::sharedPreferences(); + preferences->setExamSymbolic(!preferences->isExamSymbolic()); + m_selectableTableView.reloadData(); + return true; + } } return GenericSubController::handleEvent(event); } @@ -49,6 +56,9 @@ HighlightCell * ExamModeController::reusableCell(int index, int type) { if (type == 0) { return &m_ledCell; } + if (type == 1) { + return &m_symbolicCell; + } return &m_examModeCell; } @@ -58,6 +68,8 @@ int ExamModeController::reusableCellCount(int type) { return 1; case 1: return 1; + case 2: + return 1; default: assert(false); return 0; @@ -78,6 +90,11 @@ void ExamModeController::willDisplayCellForIndex(HighlightCell * cell, int index I18n::Message message = (I18n::Message) m_messageTreeModel->children(index)->children((int)preferences->colorOfLED())->label(); myTextCell->setSubtitle(message); } + if (thisLabel == I18n::Message::SymbolicEnabled) { + MessageTableCellWithSwitch * mySwitchCell = (MessageTableCellWithSwitch *)cell; + SwitchView * mySwitch = (SwitchView *)mySwitchCell->accessoryView(); + mySwitch->setState(preferences->isExamSymbolic()); + } } int ExamModeController::typeAtLocation(int i, int j) { @@ -86,6 +103,8 @@ int ExamModeController::typeAtLocation(int i, int j) { return 0; case 1: return 1; + case 2: + return 2; default: assert(false); return 0; diff --git a/apps/settings/sub_menu/exam_mode_controller.h b/apps/settings/sub_menu/exam_mode_controller.h index de9b9f9ef..f348414c4 100644 --- a/apps/settings/sub_menu/exam_mode_controller.h +++ b/apps/settings/sub_menu/exam_mode_controller.h @@ -19,6 +19,7 @@ private: MessageTableCell m_examModeCell; MessageTableCellWithChevronAndMessage m_ledCell; PreferencesController m_preferencesController; + MessageTableCellWithSwitch m_symbolicCell; }; } diff --git a/poincare/include/poincare/preferences.h b/poincare/include/poincare/preferences.h index 569718aed..323020bc0 100644 --- a/poincare/include/poincare/preferences.h +++ b/poincare/include/poincare/preferences.h @@ -64,6 +64,8 @@ public: void setColorOfLED(LEDColor color) { m_colorOfLED = color; } SymbolMultiplication symbolofMultiplication() const {return m_symbolMultiplication;} void setSymbolMultiplication(SymbolMultiplication symbolofMultiplication) {m_symbolMultiplication = symbolofMultiplication;} + bool isExamSymbolic() const {return m_examSymbolic;} + void setExamSymbolic(bool examSymbolic) {m_examSymbolic = examSymbolic;} private: AngleUnit m_angleUnit; PrintFloatMode m_displayMode; @@ -71,7 +73,8 @@ private: ComplexFormat m_complexFormat; uint8_t m_numberOfSignificantDigits; LEDColor m_colorOfLED; - SymbolMultiplication m_symbolMultiplication; + SymbolMultiplication m_symbolMultiplication; + bool m_examSymbolic; }; } diff --git a/poincare/src/preferences.cpp b/poincare/src/preferences.cpp index 724372f79..a644040b7 100644 --- a/poincare/src/preferences.cpp +++ b/poincare/src/preferences.cpp @@ -14,7 +14,8 @@ Preferences::Preferences() : m_complexFormat(Preferences::ComplexFormat::Real), m_numberOfSignificantDigits(PrintFloat::k_numberOfPrintedSignificantDigits), m_colorOfLED(Preferences::LEDColor::White), - m_symbolMultiplication(Preferences::SymbolMultiplication::Cross) + m_symbolMultiplication(Preferences::SymbolMultiplication::Cross), + m_examSymbolic(true) {} Preferences * Preferences::sharedPreferences() {