From ef8cd53cec87d9cb7be84d30f07d5b3e411dc566 Mon Sep 17 00:00:00 2001 From: M4x1m3 Date: Sun, 15 Dec 2019 09:26:07 +0100 Subject: [PATCH] [apps/title bar] Added indicator for symbolic calculation in exam mode. --- apps/shared.de.i18n | 1 + apps/shared.en.i18n | 1 + apps/shared.es.i18n | 1 + apps/shared.fr.i18n | 1 + apps/shared.pt.i18n | 1 + apps/title_bar_view.cpp | 11 ++++++++++- 6 files changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/shared.de.i18n b/apps/shared.de.i18n index 6309dac2a..386c32c9a 100644 --- a/apps/shared.de.i18n +++ b/apps/shared.de.i18n @@ -61,6 +61,7 @@ StorageMemoryFull1 = "Der Speicher ist voll. Löschen Sie" StorageMemoryFull2 = "von Daten und versuchen Sie es erneut." StoreExpressionNotAllowed = "'store' ist verboten" SyntaxError = "Syntaxfehler" +Sym = "sym" TEnd = "T Endwert" ThetaEnd = "θ Endwert" ThetaStart = "θ Startwert" diff --git a/apps/shared.en.i18n b/apps/shared.en.i18n index 952b615b8..abefd01cf 100644 --- a/apps/shared.en.i18n +++ b/apps/shared.en.i18n @@ -61,6 +61,7 @@ Step = "Step" StorageMemoryFull1 = "The memory is full." StorageMemoryFull2 = "Erase data and try again." SyntaxError = "Syntax error" +Sym = "sym" TEnd = "T end" ThetaEnd = "θ end" ThetaStart = "θ start" diff --git a/apps/shared.es.i18n b/apps/shared.es.i18n index 53570691e..fb670a6a9 100644 --- a/apps/shared.es.i18n +++ b/apps/shared.es.i18n @@ -61,6 +61,7 @@ StorageMemoryFull1 = "La memoria está llena." StorageMemoryFull2 = "Borre datos e intente de nuevo." StoreExpressionNotAllowed = "'store' no está permitido" SyntaxError = "Error sintáctico" +Sym = "sim" TEnd = "T fin" ThetaEnd = "θ fin" ThetaStart = "θ inicio" diff --git a/apps/shared.fr.i18n b/apps/shared.fr.i18n index 15e2d760c..30c3c7f1c 100644 --- a/apps/shared.fr.i18n +++ b/apps/shared.fr.i18n @@ -61,6 +61,7 @@ StorageMemoryFull1 = "La mémoire est pleine." StorageMemoryFull2 = "Effacez des données et réessayez." StoreExpressionNotAllowed = "'store' n'est pas autorisé" SyntaxError = "Attention à la syntaxe" +Sym = "sym" TEnd = "T fin" ThetaEnd = "θ fin" ThetaStart = "θ début" diff --git a/apps/shared.pt.i18n b/apps/shared.pt.i18n index 9d624d78d..be721eb4e 100644 --- a/apps/shared.pt.i18n +++ b/apps/shared.pt.i18n @@ -61,6 +61,7 @@ StorageMemoryFull1 = "A memoria esta cheia." StorageMemoryFull2 = "Apage dados e tente novamente." StoreExpressionNotAllowed = "'store' não está permitido" SyntaxError = "Erro de sintaxe" +Sym = "sim" TEnd = "T fim" ThetaEnd = "θ fim" ThetaStart = "θ inicio" diff --git a/apps/title_bar_view.cpp b/apps/title_bar_view.cpp index d1f2ce4de..8e64ba19e 100644 --- a/apps/title_bar_view.cpp +++ b/apps/title_bar_view.cpp @@ -85,6 +85,14 @@ void TitleBarView::refreshPreferences() { char buffer[bufferSize]; int numberOfChar = 0; Preferences * preferences = Preferences::sharedPreferences(); + if (GlobalPreferences::sharedGlobalPreferences()->examMode() && Preferences::sharedPreferences()->isExamSymbolic()) { + // Display "cas" if in exam mode with symbolic computation enabled + numberOfChar += strlcpy(buffer+numberOfChar, I18n::translate(I18n::Message::Sym), bufferSize - numberOfChar); + assert(numberOfChar < bufferSize-1); + assert(UTF8Decoder::CharSizeOfCodePoint('/') == 1); + buffer[numberOfChar++] = '/'; + } + assert(numberOfChar <= bufferSize); { // Display Sci/ or Eng/ if the print float mode is not decimal const Preferences::PrintFloatMode printFloatMode = preferences->displayMode(); @@ -93,7 +101,7 @@ void TitleBarView::refreshPreferences() { assert(printFloatMode == Preferences::PrintFloatMode::Scientific || printFloatMode == Preferences::PrintFloatMode::Engineering); I18n::Message printMessage = printFloatMode == Preferences::PrintFloatMode::Scientific ? I18n::Message::Sci : I18n::Message::Eng; - numberOfChar += strlcpy(buffer, I18n::translate(printMessage), bufferSize); + numberOfChar += strlcpy(buffer+numberOfChar, I18n::translate(printMessage), bufferSize - numberOfChar); assert(numberOfChar < bufferSize-1); assert(UTF8Decoder::CharSizeOfCodePoint('/') == 1); buffer[numberOfChar++] = '/'; @@ -108,6 +116,7 @@ void TitleBarView::refreshPreferences() { (angleUnit == Preferences::AngleUnit::Radian ? I18n::Message::Rad : I18n::Message::Gon); numberOfChar += strlcpy(buffer+numberOfChar, I18n::translate(angleMessage), bufferSize - numberOfChar); } + m_preferenceView.setText(buffer); // Layout the exam mode icon if needed layoutSubviews();