mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
Merge branch 'CompactResult' of https://github.com/0b101/Omega-1 into 0b101-CompactResult
This commit is contained in:
@@ -135,6 +135,10 @@ KDCoordinate Calculation::height(Context * context, bool expanded, bool allExpre
|
||||
// Get input height
|
||||
Layout inputLayout = createInputLayout();
|
||||
KDCoordinate inputHeight = inputLayout.layoutSize().height();
|
||||
KDCoordinate inputWidth = inputLayout.layoutSize().width();
|
||||
float singleMargin = 2 * Metric::CommonSmallMargin;
|
||||
float doubleMargin = 2 * Metric::CommonSmallMargin;
|
||||
bool singleLine = false;
|
||||
KDCoordinate inputBaseline = inputLayout.baseline();
|
||||
|
||||
// Get exact output height if needed
|
||||
@@ -156,11 +160,22 @@ KDCoordinate Calculation::height(Context * context, bool expanded, bool allExpre
|
||||
|
||||
if (displayOutput(context) == DisplayOutput::ExactOnly) {
|
||||
KDCoordinate exactOutputHeight = exactLayout.layoutSize().height();
|
||||
if (allExpressionsInline) {
|
||||
KDCoordinate exactOutputBaseline = exactLayout.baseline();
|
||||
result = maxCoordinate(inputBaseline, exactOutputBaseline) + maxCoordinate(inputHeight - inputBaseline, exactOutputHeight-exactOutputBaseline);
|
||||
KDCoordinate exactOutputWidth = exactLayout.layoutSize().width();
|
||||
singleLine = exactOutputWidth + inputWidth < maxWidth - 40;
|
||||
if (singleLine && Poincare::Preferences::sharedPreferences()->resultDisplay() == Poincare::Preferences::ResultDisplay::Compact) {
|
||||
if (allExpressionsInline) {
|
||||
KDCoordinate exactOutputBaseline = exactLayout.baseline();
|
||||
result = (inputHeight >= exactOutputHeight) ? maxCoordinate(inputBaseline, exactOutputBaseline) + singleMargin : maxCoordinate(inputHeight - inputBaseline, exactOutputHeight-exactOutputBaseline) + singleMargin;
|
||||
} else {
|
||||
result = (inputHeight >= exactOutputHeight) ? inputHeight + singleMargin : exactOutputHeight + singleMargin;
|
||||
}
|
||||
} else {
|
||||
result = inputHeight+exactOutputHeight;
|
||||
if (allExpressionsInline) {
|
||||
KDCoordinate exactOutputBaseline = exactLayout.baseline();
|
||||
result = maxCoordinate(inputBaseline, exactOutputBaseline) + maxCoordinate(inputHeight - inputBaseline, exactOutputHeight-exactOutputBaseline)+doubleMargin;
|
||||
} else {
|
||||
result = inputHeight+exactOutputHeight+doubleMargin+doubleMargin;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
bool couldNotCreateApproximateLayout = false;
|
||||
@@ -182,23 +197,47 @@ KDCoordinate Calculation::height(Context * context, bool expanded, bool allExpre
|
||||
}
|
||||
|
||||
KDCoordinate approximateOutputHeight = approximateLayout.layoutSize().height();
|
||||
KDCoordinate approximateOutputWidth = approximateLayout.layoutSize().width();
|
||||
singleLine = approximateOutputWidth + inputWidth < maxWidth - 40;
|
||||
if (displayOutput(context) == DisplayOutput::ApproximateOnly || (!expanded && displayOutput(context) == DisplayOutput::ExactAndApproximateToggle)) {
|
||||
if (allExpressionsInline) {
|
||||
KDCoordinate approximateOutputBaseline = approximateLayout.baseline();
|
||||
result = maxCoordinate(inputBaseline, approximateOutputBaseline) + maxCoordinate(inputHeight - inputBaseline, approximateOutputHeight-approximateOutputBaseline);
|
||||
if (singleLine && Poincare::Preferences::sharedPreferences()->resultDisplay() == Poincare::Preferences::ResultDisplay::Compact) {
|
||||
if (allExpressionsInline) {
|
||||
KDCoordinate approximateOutputBaseline = approximateLayout.baseline();
|
||||
result = (inputHeight >= approximateOutputHeight) ? maxCoordinate(inputBaseline, approximateOutputBaseline) + singleMargin : maxCoordinate(inputHeight - inputBaseline, approximateOutputHeight-approximateOutputBaseline) + singleMargin;
|
||||
} else {
|
||||
result = (inputHeight >= approximateOutputHeight) ? inputHeight + singleMargin : approximateOutputHeight + singleMargin;
|
||||
}
|
||||
} else {
|
||||
result = inputHeight+approximateOutputHeight;
|
||||
if (allExpressionsInline) {
|
||||
KDCoordinate approximateOutputBaseline = approximateLayout.baseline();
|
||||
result = maxCoordinate(inputBaseline, approximateOutputBaseline) + maxCoordinate(inputHeight - inputBaseline, approximateOutputHeight-approximateOutputBaseline) + doubleMargin + singleMargin;
|
||||
} else {
|
||||
result = inputHeight+approximateOutputHeight+doubleMargin+singleMargin;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
assert(displayOutput(context) == DisplayOutput::ExactAndApproximate || (displayOutput(context) == DisplayOutput::ExactAndApproximateToggle && expanded));
|
||||
KDCoordinate exactOutputHeight = exactLayout.layoutSize().height();
|
||||
KDCoordinate exactOutputBaseline = exactLayout.baseline();
|
||||
KDCoordinate exactOutputWidth = exactLayout.layoutSize().width();
|
||||
KDCoordinate approximateOutputWidth = approximateLayout.layoutSize().width();
|
||||
KDCoordinate outputWidth = exactOutputWidth + approximateOutputWidth;
|
||||
singleLine = outputWidth + inputWidth < maxWidth - 70;
|
||||
KDCoordinate approximateOutputBaseline = approximateLayout.baseline();
|
||||
if (allExpressionsInline) {
|
||||
result = maxCoordinate(inputBaseline, maxCoordinate(exactOutputBaseline, approximateOutputBaseline)) + maxCoordinate(inputHeight - inputBaseline, maxCoordinate(exactOutputHeight - exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline));
|
||||
} else {
|
||||
if (singleLine && Poincare::Preferences::sharedPreferences()->resultDisplay() == Poincare::Preferences::ResultDisplay::Compact) {
|
||||
KDCoordinate outputHeight = maxCoordinate(exactOutputBaseline, approximateOutputBaseline) + maxCoordinate(exactOutputHeight-exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline);
|
||||
result = inputHeight + outputHeight;
|
||||
if (allExpressionsInline) {
|
||||
result = (inputHeight >= outputHeight) ? maxCoordinate(inputBaseline, maxCoordinate(exactOutputBaseline, approximateOutputBaseline)) + singleMargin : maxCoordinate(inputHeight - inputBaseline, maxCoordinate(exactOutputHeight - exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline)) + singleMargin;
|
||||
} else {
|
||||
result = (inputHeight >= outputHeight) ? inputHeight + singleMargin : outputHeight + singleMargin;
|
||||
}
|
||||
} else {
|
||||
if (allExpressionsInline) {
|
||||
result = maxCoordinate(inputBaseline, maxCoordinate(exactOutputBaseline, approximateOutputBaseline)) + maxCoordinate(inputHeight - inputBaseline, maxCoordinate(exactOutputHeight - exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline));
|
||||
} else {
|
||||
KDCoordinate outputHeight = maxCoordinate(exactOutputBaseline, approximateOutputBaseline) + maxCoordinate(exactOutputHeight-exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline) + doubleMargin;
|
||||
result = inputHeight + outputHeight + doubleMargin;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,6 +95,7 @@ public:
|
||||
// Additional Information
|
||||
AdditionalInformationType additionalInformationType(Poincare::Context * context);
|
||||
private:
|
||||
static constexpr int maxWidth = 314;
|
||||
static constexpr int k_numberOfExpressions = 4;
|
||||
static constexpr KDCoordinate k_heightComputationFailureHeight = 50;
|
||||
static constexpr const char * k_maximalIntegerWithAdditionalInformation = "10000000000000000";
|
||||
|
||||
@@ -200,7 +200,7 @@ KDCoordinate HistoryController::rowHeight(int j) {
|
||||
return 0;
|
||||
}
|
||||
Shared::ExpiringPointer<Calculation> calculation = calculationAtIndex(j);
|
||||
return calculation->height(App::app()->localContext(), j == selectedRow() && selectedSubviewType() == SubviewType::Output) + 4 * Metric::CommonSmallMargin;
|
||||
return calculation->height(App::app()->localContext(), j == selectedRow() && selectedSubviewType() == SubviewType::Output);
|
||||
}
|
||||
|
||||
int HistoryController::typeAtLocation(int i, int j) {
|
||||
|
||||
@@ -37,7 +37,7 @@ private:
|
||||
CalculationSelectableTableView * selectableTableView();
|
||||
bool calculationAtIndexToggles(int index);
|
||||
void historyViewCellDidChangeSelection(HistoryViewCell ** cell, HistoryViewCell ** previousCell, int previousSelectedCellX, int previousSelectedCellY, SubviewType type, SubviewType previousType) override;
|
||||
constexpr static int k_maxNumberOfDisplayedRows = 5;
|
||||
constexpr static int k_maxNumberOfDisplayedRows = 8;
|
||||
CalculationSelectableTableView m_selectableTableView;
|
||||
HistoryViewCell m_calculationHistory[k_maxNumberOfDisplayedRows];
|
||||
CalculationStore * m_calculationStore;
|
||||
|
||||
@@ -185,14 +185,21 @@ void HistoryViewCell::layoutSubviews(bool force) {
|
||||
inputSize.height()),
|
||||
force);
|
||||
KDSize outputSize = m_scrollableOutputView.minimalSizeForOptimalDisplay();
|
||||
int outputY = (oneLine() && Poincare::Preferences::sharedPreferences()->resultDisplay() == Poincare::Preferences::ResultDisplay::Compact) ? maxCoordinate(0, inputSize.height() - outputSize.height()) / 2 : inputSize.height();
|
||||
m_scrollableOutputView.setFrame(KDRect(
|
||||
maxCoordinate(0, maxFrameWidth - outputSize.width()),
|
||||
inputSize.height(),
|
||||
outputY,
|
||||
minCoordinate(maxFrameWidth, outputSize.width()),
|
||||
outputSize.height()),
|
||||
oneLine() ? outputSize.height() : (bounds().height() - inputSize.height())),
|
||||
force);
|
||||
}
|
||||
|
||||
bool HistoryViewCell::oneLine() {
|
||||
KDSize inputSize = m_inputView.minimalSizeForOptimalDisplay();
|
||||
KDSize outputSize = m_scrollableOutputView.minimalSizeForOptimalDisplay();
|
||||
return outputSize.width() + inputSize.width() < bounds().width() - 6;
|
||||
}
|
||||
|
||||
void HistoryViewCell::setCalculation(Calculation * calculation, bool expanded) {
|
||||
uint32_t newCalculationCRC = Ion::crc32Byte((const uint8_t *)calculation, ((char *)calculation->next()) - ((char *) calculation));
|
||||
if (newCalculationCRC == m_calculationCRC32 && m_calculationExpanded == expanded) {
|
||||
|
||||
@@ -51,6 +51,7 @@ public:
|
||||
Shared::ScrollableTwoExpressionsView * outputView();
|
||||
Calculation::AdditionalInformationType additionalInformationType() const { return m_calculationAdditionInformation; }
|
||||
private:
|
||||
bool oneLine();
|
||||
constexpr static KDCoordinate k_resultWidth = 80;
|
||||
void reloadScroll();
|
||||
void reloadOutputSelection(HistoryViewCellDataSource::SubviewType previousType);
|
||||
|
||||
@@ -38,6 +38,9 @@ SoftwareVersion = "Epsilon version"
|
||||
CustomSoftwareVersion = "Omega version"
|
||||
Username = "Name"
|
||||
MicroPythonVersion = "µPythonversion"
|
||||
ResultDisplay = "Result display"
|
||||
DefaultResult = "Default "
|
||||
CompactResult = "Compact "
|
||||
FontSizes = "Python Schriftgröße"
|
||||
LargeFont = "Große "
|
||||
SmallFont = "Kleine "
|
||||
|
||||
@@ -38,6 +38,9 @@ SoftwareVersion = "Epsilon version"
|
||||
CustomSoftwareVersion = "Omega version"
|
||||
Username = "Name"
|
||||
MicroPythonVersion = "µPython version"
|
||||
ResultDisplay = "Result display"
|
||||
DefaultResult = "Default "
|
||||
CompactResult = "Compact "
|
||||
FontSizes = "Python font size"
|
||||
LargeFont = "Large "
|
||||
SmallFont = "Small "
|
||||
|
||||
@@ -38,6 +38,9 @@ SoftwareVersion = "Versión de Epsilon"
|
||||
CustomSoftwareVersion = "Versión de Omega"
|
||||
Username = "Apellido"
|
||||
MicroPythonVersion = "Version de µPython"
|
||||
ResultDisplay = "Result display"
|
||||
DefaultResult = "Default "
|
||||
CompactResult = "Compact "
|
||||
FontSizes = "Tipografía Python"
|
||||
LargeFont = "Grande "
|
||||
SmallFont = "Pequeño "
|
||||
|
||||
@@ -38,6 +38,9 @@ SoftwareVersion = "Version d'Epsilon"
|
||||
CustomSoftwareVersion = "Version d'Omega"
|
||||
Username = "Nom"
|
||||
MicroPythonVersion = "Version de µPython"
|
||||
ResultDisplay = "Result display"
|
||||
DefaultResult = "Default "
|
||||
CompactResult = "Compact "
|
||||
FontSizes = "Police Python"
|
||||
LargeFont = "Grand "
|
||||
SmallFont = "Petit "
|
||||
|
||||
@@ -38,6 +38,9 @@ SoftwareVersion = "version d'Epsilon"
|
||||
CustomSoftwareVersion = "Omega verzió"
|
||||
Username = "Felhasználónév"
|
||||
MicroPythonVersion = "µPython verzió"
|
||||
ResultDisplay = "Result display"
|
||||
DefaultResult = "Default "
|
||||
CompactResult = "Compact "
|
||||
FontSizes = "Python betü méret"
|
||||
LargeFont = "Large "
|
||||
SmallFont = "Small "
|
||||
|
||||
@@ -38,6 +38,9 @@ SoftwareVersion = "Versão do Epsilon"
|
||||
CustomSoftwareVersion = "Versão do Omega"
|
||||
Username = "Nome"
|
||||
MicroPythonVersion = "Versao do µPython"
|
||||
ResultDisplay = "Result display"
|
||||
DefaultResult = "Default "
|
||||
CompactResult = "Compact "
|
||||
FontSizes = "Tipografia Python"
|
||||
LargeFont = "Grande "
|
||||
SmallFont = "Pequeno "
|
||||
|
||||
@@ -14,6 +14,7 @@ constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[4] = {SettingsMess
|
||||
constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)};
|
||||
constexpr SettingsMessageTree s_symbolChildren[4] = {SettingsMessageTree(I18n::Message::SymbolMultiplicationCross),SettingsMessageTree(I18n::Message::SymbolMultiplicationMiddleDot),SettingsMessageTree(I18n::Message::SymbolMultiplicationStar),SettingsMessageTree(I18n::Message::SymbolMultiplicationAutoSymbol)};
|
||||
constexpr SettingsMessageTree s_modelMathOptionsChildren[5] = {SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren), SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren), SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren), SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren), SettingsMessageTree(I18n::Message::SymbolMultiplication, s_symbolChildren)};
|
||||
constexpr SettingsMessageTree s_modelResultDisplayChildren[2] = {SettingsMessageTree(I18n::Message::DefaultResult), SettingsMessageTree(I18n::Message::CompactResult)};
|
||||
constexpr SettingsMessageTree s_modelFontChildren[2] = {SettingsMessageTree(I18n::Message::LargeFont), SettingsMessageTree(I18n::Message::SmallFont)};
|
||||
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)};
|
||||
constexpr SettingsMessageTree s_contributorsChildren[17] = {SettingsMessageTree(I18n::Message::Developers), SettingsMessageTree(I18n::Message::QuentinGuidee), SettingsMessageTree(I18n::Message::DannySimmons), SettingsMessageTree(I18n::Message::JoachimLeFournis), SettingsMessageTree(I18n::Message::JeanBaptisteBoric), SettingsMessageTree(I18n::Message::MaximeFriess), SettingsMessageTree(I18n::Message::David), SettingsMessageTree(I18n::Message::DamienNicolet), SettingsMessageTree(I18n::Message::EvannDreumont), SettingsMessageTree(I18n::Message::SzaboLevente), SettingsMessageTree(I18n::Message::VenceslasDuet), SettingsMessageTree(I18n::Message::BetaTesters), SettingsMessageTree(I18n::Message::CyprienMejat), SettingsMessageTree(I18n::Message::TimeoArnouts), SettingsMessageTree(I18n::Message::LouisC), SettingsMessageTree(I18n::Message::LucaRusso), SettingsMessageTree(I18n::Message::LelahelHideux)};
|
||||
|
||||
@@ -19,6 +19,7 @@ extern const SettingsMessageTree s_modelFloatDisplayModeChildren[4];
|
||||
extern const SettingsMessageTree s_modelComplexFormatChildren[3];
|
||||
extern const SettingsMessageTree s_symbolChildren[4];
|
||||
extern const SettingsMessageTree s_modelMathOptionsChildren[5];
|
||||
extern const SettingsMessageTree s_modelResultDisplayChildren[2];
|
||||
extern const SettingsMessageTree s_modelFontChildren[2];
|
||||
extern const SettingsMessageTree s_accessibilityChildren[6];
|
||||
extern const SettingsMessageTree s_contributorsChildren[17];
|
||||
@@ -49,7 +50,8 @@ private:
|
||||
constexpr static int k_indexOfBrightnessCell = k_indexOfMathOptionsChildren + 1;
|
||||
constexpr static int k_indexOfLanguageCell = k_indexOfBrightnessCell + 1;
|
||||
constexpr static int k_indexOfExamModeCell = k_indexOfLanguageCell + 1;
|
||||
constexpr static int k_indexOfFontCell = k_indexOfExamModeCell + 1;
|
||||
constexpr static int k_indexOfResultDisplayCell = k_indexOfExamModeCell + 1;
|
||||
constexpr static int k_indexOfFontCell = k_indexOfResultDisplayCell + 1;
|
||||
/* Pop-up cell and About cell are located at the same index because pop-up
|
||||
* cell is optional. We must always correct k_indexOfAboutCell with
|
||||
* hasPrompt() (TODO: make hasPrompt() constexpr and correct
|
||||
@@ -61,7 +63,7 @@ private:
|
||||
StackViewController * stackController() const;
|
||||
I18n::Message promptMessage() const;
|
||||
bool hasPrompt() const { return promptMessage() != I18n::Message::Default; }
|
||||
constexpr static int k_numberOfSimpleChevronCells = 8;
|
||||
constexpr static int k_numberOfSimpleChevronCells = 9;
|
||||
MessageTableCellWithChevronAndMessage m_cells[k_numberOfSimpleChevronCells];
|
||||
MessageTableCellWithGaugeWithSeparator m_brightnessCell;
|
||||
MessageTableCellWithSwitch m_popUpCell;
|
||||
|
||||
@@ -7,6 +7,7 @@ namespace Settings {
|
||||
constexpr SettingsMessageTree s_modelMenu[] =
|
||||
{SettingsMessageTree(I18n::Message::MathOptions, s_modelMathOptionsChildren),
|
||||
SettingsMessageTree(I18n::Message::Brightness),
|
||||
SettingsMessageTree(I18n::Message::ResultDisplay, s_modelResultDisplayChildren),
|
||||
SettingsMessageTree(I18n::Message::FontSizes, s_modelFontChildren),
|
||||
SettingsMessageTree(I18n::Message::Language),
|
||||
SettingsMessageTree(I18n::Message::ExamMode, ExamModeConfiguration::s_modelExamChildren),
|
||||
|
||||
@@ -9,6 +9,7 @@ constexpr SettingsMessageTree s_modelMenu[] =
|
||||
SettingsMessageTree(I18n::Message::Brightness),
|
||||
SettingsMessageTree(I18n::Message::Language),
|
||||
SettingsMessageTree(I18n::Message::ExamMode, ExamModeConfiguration::s_modelExamChildren),
|
||||
SettingsMessageTree(I18n::Message::ResultDisplay, s_modelResultDisplayChildren),
|
||||
SettingsMessageTree(I18n::Message::FontSizes, s_modelFontChildren),
|
||||
SettingsMessageTree(I18n::Message::Accessibility, s_accessibilityChildren),
|
||||
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren)};
|
||||
|
||||
@@ -7,6 +7,7 @@ namespace Settings {
|
||||
constexpr SettingsMessageTree s_modelMenu[] =
|
||||
{SettingsMessageTree(I18n::Message::MathOptions, s_modelMathOptionsChildren),
|
||||
SettingsMessageTree(I18n::Message::Brightness),
|
||||
SettingsMessageTree(I18n::Message::ResultDisplay, s_modelResultDisplayChildren),
|
||||
SettingsMessageTree(I18n::Message::FontSizes, s_modelFontChildren),
|
||||
SettingsMessageTree(I18n::Message::Language),
|
||||
SettingsMessageTree(I18n::Message::ExamMode, ExamModeConfiguration::s_modelExamChildren),
|
||||
|
||||
@@ -183,6 +183,18 @@ Layout PreferencesController::layoutForPreferences(I18n::Message message) {
|
||||
case I18n::Message::SymbolMultiplicationAutoSymbol:
|
||||
return CodePointLayout::Builder(' ', k_layoutFont);
|
||||
|
||||
// Result display
|
||||
case I18n::Message::DefaultResult:
|
||||
{
|
||||
const char * text = " ";
|
||||
return LayoutHelper::String(text, strlen(text), k_layoutFont);
|
||||
}
|
||||
case I18n::Message::CompactResult:
|
||||
{
|
||||
const char * text = "Beta";
|
||||
return LayoutHelper::String(text, strlen(text), k_layoutFont);
|
||||
}
|
||||
|
||||
// Font size
|
||||
case I18n::Message::LargeFont:
|
||||
case I18n::Message::SmallFont:
|
||||
@@ -233,6 +245,8 @@ void PreferencesController::setPreferenceWithValueIndex(I18n::Message message, i
|
||||
GlobalPreferences::sharedGlobalPreferences()->setTempExamMode((GlobalPreferences::ExamMode)((uint8_t)valueIndex + 1));
|
||||
} else if (message == I18n::Message::SymbolMultiplication) {
|
||||
preferences->setSymbolMultiplication((Preferences::SymbolMultiplication)valueIndex);
|
||||
} else if (message == I18n::Message::ResultDisplay) {
|
||||
preferences->setResultDisplay((Preferences::ResultDisplay)valueIndex);
|
||||
} else if (message == I18n::Message::FontSizes) {
|
||||
GlobalPreferences::sharedGlobalPreferences()->setFont(valueIndex == 0 ? KDFont::LargeFont : KDFont::SmallFont);
|
||||
}
|
||||
@@ -259,6 +273,9 @@ int PreferencesController::valueIndexForPreference(I18n::Message message) const
|
||||
if (message == I18n::Message::SymbolMultiplication) {
|
||||
return (int)preferences->symbolofMultiplication();
|
||||
}
|
||||
if (message == I18n::Message::ResultDisplay) {
|
||||
return (int)preferences->resultDisplay();
|
||||
}
|
||||
if (message == I18n::Message::FontSizes) {
|
||||
return GlobalPreferences::sharedGlobalPreferences()->font() == KDFont::LargeFont ? 0 : 1;
|
||||
}
|
||||
|
||||
@@ -52,6 +52,10 @@ public:
|
||||
Star = 2,
|
||||
Auto = 3
|
||||
};
|
||||
enum class ResultDisplay : uint8_t {
|
||||
Default = 0,
|
||||
Compact = 1
|
||||
};
|
||||
enum class PythonFont : uint8_t {
|
||||
Large = 0,
|
||||
Small = 1
|
||||
@@ -72,6 +76,8 @@ public:
|
||||
void setColorOfLED(LEDColor color) { m_colorOfLED = color; }
|
||||
SymbolMultiplication symbolofMultiplication() const { return m_symbolMultiplication; }
|
||||
void setSymbolMultiplication(SymbolMultiplication symbolofMultiplication) { m_symbolMultiplication = symbolofMultiplication; }
|
||||
ResultDisplay resultDisplay() const { return m_resultDisplay; }
|
||||
void setResultDisplay(ResultDisplay resultDisplay) { m_resultDisplay = resultDisplay; }
|
||||
PythonFont pythonFont() const { return m_pythonFont; }
|
||||
void setPythonFont(PythonFont pythonFont) { m_pythonFont = pythonFont; }
|
||||
const KDFont * KDPythonFont() const { return (m_pythonFont == PythonFont::Small) ? KDFont::SmallFont : KDFont::LargeFont; }
|
||||
@@ -83,6 +89,7 @@ private:
|
||||
uint8_t m_numberOfSignificantDigits;
|
||||
LEDColor m_colorOfLED;
|
||||
SymbolMultiplication m_symbolMultiplication;
|
||||
ResultDisplay m_resultDisplay;
|
||||
PythonFont m_pythonFont;
|
||||
};
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ Preferences::Preferences() :
|
||||
m_numberOfSignificantDigits(PrintFloat::k_numberOfPrintedSignificantDigits),
|
||||
m_colorOfLED(Preferences::LEDColor::Red),
|
||||
m_symbolMultiplication(Preferences::SymbolMultiplication::Auto),
|
||||
m_resultDisplay(Preferences::ResultDisplay::Default),
|
||||
m_pythonFont(Preferences::PythonFont::Large)
|
||||
{}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user