mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[calculation] Revert "HistoryViewCell: remove useless m_expandedCalculation"
When scrolling up and down, only 'setCalculation' is called by 'willDisplayCellForIndex' - and not 'cellDidSelectSubview'. So a new cell should be informed of the expanded state in 'setCalculation'.
This commit is contained in:
@@ -180,7 +180,7 @@ int HistoryController::reusableCellCount(int type) {
|
||||
|
||||
void HistoryController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
HistoryViewCell * myCell = (HistoryViewCell *)cell;
|
||||
myCell->setCalculation(calculationAtIndex(index).pointer());
|
||||
myCell->setCalculation(calculationAtIndex(index).pointer(), index == selectedRow() && selectedSubviewType() == SubviewType::Output);
|
||||
myCell->setEven(index%2 == 0);
|
||||
myCell->setHighlighted(myCell->isHighlighted());
|
||||
}
|
||||
|
||||
@@ -144,9 +144,9 @@ void HistoryViewCell::layoutSubviews(bool force) {
|
||||
force);
|
||||
}
|
||||
|
||||
void HistoryViewCell::setCalculation(Calculation * calculation) {
|
||||
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) {
|
||||
if (m_calculationExpanded == expanded && newCalculationCRC == m_calculationCRC32) {
|
||||
return;
|
||||
}
|
||||
Poincare::Context * context = App::app()->localContext();
|
||||
@@ -157,6 +157,7 @@ void HistoryViewCell::setCalculation(Calculation * calculation) {
|
||||
|
||||
// Memoization
|
||||
m_calculationCRC32 = newCalculationCRC;
|
||||
m_calculationExpanded = expanded;
|
||||
m_calculationDisplayOutput = calculation->displayOutput(context);
|
||||
m_calculationAdditionInformation = calculation->additionalInformationType(context);
|
||||
m_inputView.setLayout(calculation->createInputLayout());
|
||||
|
||||
@@ -39,7 +39,7 @@ public:
|
||||
}
|
||||
Poincare::Layout layout() const override;
|
||||
KDColor backgroundColor() const override;
|
||||
void setCalculation(Calculation * calculation);
|
||||
void setCalculation(Calculation * calculation, bool expanded);
|
||||
int numberOfSubviews() const override;
|
||||
View * subviewAtIndex(int index) override;
|
||||
void layoutSubviews(bool force = false) override;
|
||||
|
||||
Reference in New Issue
Block a user