mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[apps/shared] Handle identical layout in MinimalSizeForOptimalDisplay
Change-Id: I99a523e9e88ea9c3064e4367d96b01edb0020df9
This commit is contained in:
committed by
LeaNumworks
parent
edafa0e155
commit
0b683b6994
@@ -299,6 +299,7 @@ void HistoryViewCell::setCalculation(Calculation * calculation, bool expanded, b
|
||||
m_calculationDisplayOutput = calculation->displayOutput(context);
|
||||
|
||||
// We must set which subviews are displayed before setLayouts to mark the right rectangle as dirty
|
||||
m_scrollableOutputView.setDisplayableCenter(m_calculationDisplayOutput == Calculation::DisplayOutput::ExactAndApproximate || m_calculationDisplayOutput == Calculation::DisplayOutput::ExactAndApproximateToggle);
|
||||
m_scrollableOutputView.setDisplayCenter(m_calculationDisplayOutput == Calculation::DisplayOutput::ExactAndApproximate || m_calculationExpanded);
|
||||
m_scrollableOutputView.setLayouts(Poincare::Layout(), exactOutputLayout, approximateOutputLayout);
|
||||
I18n::Message equalMessage = calculation->exactAndApproximateDisplayedOutputsAreEqual(context) == Calculation::EqualSign::Equal ? I18n::Message::Equal : I18n::Message::AlmostEqual;
|
||||
|
||||
@@ -172,7 +172,7 @@ KDSize AbstractScrollableMultipleExpressionsView::ContentCell::privateMinimalSiz
|
||||
}
|
||||
|
||||
KDSize centerSize = KDSizeZero;
|
||||
if (displayCenter() || (forceFullDisplay && !m_centeredExpressionView.layout().isUninitialized())) {
|
||||
if (displayCenter() || (forceFullDisplay && displayableCenter())) {
|
||||
centerSize = m_centeredExpressionView.minimalSizeForOptimalDisplay();
|
||||
width += centerSize.width() + 2 * AbstractScrollableMultipleExpressionsView::k_horizontalMargin + m_approximateSign.minimalSizeForOptimalDisplay().width();
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ public:
|
||||
}
|
||||
bool displayCenter() const { return constContentCell()->displayCenter(); }
|
||||
void setDisplayCenter(bool display);
|
||||
void setDisplayableCenter(bool displayable) { contentCell()->setDisplayableCenter(displayable); }
|
||||
void reloadScroll();
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
Poincare::Layout layout() const { return constContentCell()->layout(); }
|
||||
@@ -63,7 +64,9 @@ protected:
|
||||
}
|
||||
void setSelectedSubviewPosition(SubviewPosition subviewPosition);
|
||||
bool displayCenter() const { return m_displayCenter && !m_centeredExpressionView.layout().isUninitialized(); }
|
||||
bool displayableCenter() const { return m_displayableCenter && !m_centeredExpressionView.layout().isUninitialized(); }
|
||||
void setDisplayCenter(bool display);
|
||||
void setDisplayableCenter(bool displayable) {m_displayableCenter = displayable;}
|
||||
void layoutSubviews(bool force = false) override;
|
||||
int numberOfSubviews() const override;
|
||||
virtual Poincare::Layout layout() const override;
|
||||
@@ -79,6 +82,7 @@ protected:
|
||||
ExpressionView m_centeredExpressionView;
|
||||
SubviewPosition m_selectedSubviewPosition;
|
||||
bool m_displayCenter;
|
||||
bool m_displayableCenter;
|
||||
};
|
||||
virtual ContentCell * contentCell() = 0;
|
||||
virtual const ContentCell * constContentCell() const = 0;
|
||||
|
||||
Reference in New Issue
Block a user