[apps/calculation] Display the exact layout only when the exp is Store

This commit is contained in:
Léa Saviot
2018-10-23 16:32:52 +02:00
committed by Émilie Feral
parent a063b00fb7
commit d083d05609
3 changed files with 22 additions and 5 deletions

View File

@@ -53,11 +53,15 @@ KDCoordinate Calculation::height(Context * context) {
Layout inputLayout = createInputLayout();
KDCoordinate inputHeight = inputLayout.layoutSize().height();
Layout approximateLayout = createApproximateOutputLayout(context);
KDCoordinate approximateOutputHeight = approximateLayout.layoutSize().height();
Layout exactLayout = createExactOutputLayout();
if (shouldOnlyDisplayApproximateOutput(context)) {
KDCoordinate approximateOutputHeight = approximateLayout.layoutSize().height();
m_height = inputHeight+approximateOutputHeight;
} else if (shouldOnlyDisplayExactOutput()) {
KDCoordinate exactOutputHeight = exactLayout.layoutSize().height();
m_height = inputHeight+exactOutputHeight;
} else {
Layout exactLayout = createExactOutputLayout();
KDCoordinate approximateOutputHeight = approximateLayout.layoutSize().height();
KDCoordinate exactOutputHeight = exactLayout.layoutSize().height();
KDCoordinate outputHeight = max(exactLayout.baseline(), approximateLayout.baseline()) + max(exactOutputHeight-exactLayout.baseline(), approximateOutputHeight-approximateLayout.baseline());
m_height = inputHeight + outputHeight;
@@ -143,6 +147,10 @@ bool Calculation::shouldOnlyDisplayApproximateOutput(Context * context) {
return input().isApproximate(*context) || exactOutput().isApproximate(*context);
}
bool Calculation::shouldOnlyDisplayExactOutput() {
return strchr(m_inputText, Ion::Charset::Sto) != nullptr;
}
Calculation::EqualSign Calculation::exactAndApproximateDisplayedOutputsAreEqual(Poincare::Context * context) {
if (m_equalSign != EqualSign::Unknown) {
return m_equalSign;