diff --git a/apps/calculation/calculation.cpp b/apps/calculation/calculation.cpp index 240e9b60e..952e4a640 100644 --- a/apps/calculation/calculation.cpp +++ b/apps/calculation/calculation.cpp @@ -53,7 +53,7 @@ KDCoordinate Calculation::height(Context * context) { if (shouldOnlyDisplayApproximateOutput(context)) { m_height = inputHeight+approximateOutputHeight; } else { - Layout exactLayout = createExactOutputLayout(context); + Layout exactLayout = createExactOutputLayout(); KDCoordinate exactOutputHeight = exactLayout.layoutSize().height(); KDCoordinate outputHeight = max(exactLayout.baseline(), approximateLayout.baseline()) + max(exactOutputHeight-exactLayout.baseline(), approximateOutputHeight-approximateLayout.baseline()); m_height = inputHeight + outputHeight; @@ -102,7 +102,7 @@ void Calculation::tidy() { m_equalSign = EqualSign::Unknown; } -Expression Calculation::exactOutput(Context * context) { +Expression Calculation::exactOutput() { /* Because the angle unit might have changed, we do not simplify again. We * thereby avoid turning cos(Pi/4) into sqrt(2)/2 and displaying * 'sqrt(2)/2 = 0.999906' (which is totally wrong) instead of @@ -114,8 +114,8 @@ Expression Calculation::exactOutput(Context * context) { return exactOutput; } -Layout Calculation::createExactOutputLayout(Context * context) { - return PoincareHelpers::CreateLayout(exactOutput(context)); +Layout Calculation::createExactOutputLayout() { + return PoincareHelpers::CreateLayout(exactOutput()); } Expression Calculation::approximateOutput(Context * context) { @@ -136,7 +136,7 @@ bool Calculation::shouldOnlyDisplayApproximateOutput(Context * context) { if (strcmp(m_exactOutputText, "undef") == 0) { return true; } - return input().isApproximate(*context) || exactOutput(context).isApproximate(*context); + return input().isApproximate(*context) || exactOutput().isApproximate(*context); } Calculation::EqualSign Calculation::exactAndApproximateDisplayedOutputsAreEqual(Poincare::Context * context) { @@ -145,7 +145,7 @@ Calculation::EqualSign Calculation::exactAndApproximateDisplayedOutputsAreEqual( } char buffer[k_printedExpressionSize]; Preferences * preferences = Preferences::sharedPreferences(); - m_equalSign = exactOutput(context).isEqualToItsApproximationLayout(approximateOutput(context), buffer, k_printedExpressionSize, preferences->angleUnit(), preferences->displayMode(), preferences->numberOfSignificantDigits(), *context) ? EqualSign::Equal : EqualSign::Approximation; + m_equalSign = exactOutput().isEqualToItsApproximationLayout(approximateOutput(context), buffer, k_printedExpressionSize, preferences->angleUnit(), preferences->displayMode(), preferences->numberOfSignificantDigits(), *context) ? EqualSign::Equal : EqualSign::Approximation; return m_equalSign; } diff --git a/apps/calculation/calculation.h b/apps/calculation/calculation.h index b69f3e86b..1cd0a5225 100644 --- a/apps/calculation/calculation.h +++ b/apps/calculation/calculation.h @@ -28,8 +28,8 @@ public: Poincare::Expression input(); Poincare::Layout createInputLayout(); Poincare::Expression approximateOutput(Poincare::Context * context); - Poincare::Expression exactOutput(Poincare::Context * context); - Poincare::Layout createExactOutputLayout(Poincare::Context * context); + Poincare::Expression exactOutput(); + Poincare::Layout createExactOutputLayout(); Poincare::Layout createApproximateOutputLayout(Poincare::Context * context); bool isEmpty(); void tidy(); diff --git a/apps/calculation/calculation_store.cpp b/apps/calculation/calculation_store.cpp index 99195afaf..57a7d9498 100644 --- a/apps/calculation/calculation_store.cpp +++ b/apps/calculation/calculation_store.cpp @@ -101,13 +101,13 @@ Expression CalculationStore::ansExpression(Context * context) { * To avoid turning 'ans->A' in '2->A->A' (or 2->A=A) which cannot be parsed), * ans is replaced by the approximation output in when any Store or Equal * expression appears.*/ - bool exactOuptutInvolvesStoreEqual = lastCalculation->exactOutput(context).recursivelyMatches([](const Expression e, Context & context) { - return e.type() == ExpressionNode::Type::Store || e.type() == ExpressionNode::Type::Equal; - }, *context); + bool exactOuptutInvolvesStoreEqual = lastCalculation->exactOutput().recursivelyMatches([](const Expression e, Context & context) { + return e.type() == ExpressionNode::Type::Store || e.type() == ExpressionNode::Type::Equal; + }, *context); if (lastCalculation->input().isApproximate(*context) || exactOuptutInvolvesStoreEqual) { return lastCalculation->approximateOutput(context); } - return lastCalculation->exactOutput(context); + return lastCalculation->exactOutput(); } } diff --git a/apps/calculation/history_view_cell.cpp b/apps/calculation/history_view_cell.cpp index 2040ca0b9..545cd7d30 100644 --- a/apps/calculation/history_view_cell.cpp +++ b/apps/calculation/history_view_cell.cpp @@ -109,7 +109,7 @@ void HistoryViewCell::setCalculation(Calculation * calculation) { m_exactOutputLayout = Poincare::Layout(); } if (!calculation->shouldOnlyDisplayApproximateOutput(calculationApp->localContext())) { - m_exactOutputLayout = calculation->createExactOutputLayout(calculationApp->localContext()); + m_exactOutputLayout = calculation->createExactOutputLayout(); } m_approximateOutputLayout = calculation->createApproximateOutputLayout(calculationApp->localContext()); m_scrollableOutputView.setLayouts(m_approximateOutputLayout, m_exactOutputLayout);