diff --git a/apps/shared/color_cell.cpp b/apps/shared/color_cell.cpp index c6ecc147b..261e5cb6b 100644 --- a/apps/shared/color_cell.cpp +++ b/apps/shared/color_cell.cpp @@ -1,5 +1,4 @@ #include "color_cell.h" -#include namespace Shared { @@ -30,10 +29,12 @@ void MessageTableCellWithColor::setColor(int i) { return label->setMessage(k_textForIndex[5]); // FIXME case 6: return label->setMessage(k_textForIndex[6]); // FIXME + case 7: + return label->setMessage(k_textForIndex[7]); // FIXME default: assert(false); } - //return label->setMessage(k_textForIndex[i]); // FIXME + // return label->setMessage(k_textForIndex[i]); // FIXME } MessageTableCellWithColor::ColorView::ColorView() : diff --git a/apps/shared/color_cell.h b/apps/shared/color_cell.h index be7bfb4d4..a614ae5c9 100644 --- a/apps/shared/color_cell.h +++ b/apps/shared/color_cell.h @@ -11,11 +11,13 @@ public: MessageTableCellWithColor(); View * accessoryView() const override; void setColor(int i); + int color() { return m_accessoryView.color(); } private: class ColorView : public TransparentView { public: ColorView(); void setColor(int i) { m_index = i; } + int color() { return m_index; } void drawRect(KDContext * ctx, KDRect rect) const override; KDSize minimalSizeForOptimalDisplay() const override; constexpr static KDCoordinate k_chevronHeight = 10; diff --git a/apps/shared/color_parameter_controller.cpp b/apps/shared/color_parameter_controller.cpp index 21d573a0e..bfdb1cb14 100644 --- a/apps/shared/color_parameter_controller.cpp +++ b/apps/shared/color_parameter_controller.cpp @@ -11,11 +11,7 @@ ColorParameterController::ColorParameterController(Responder * parentResponder, m_selectableTableView(this), m_record(), m_title(title) -{ - for(int i = 0; i < Palette::numberOfDataColors(); i++){ - m_cells[i].setColor(i); - } -} +{} void ColorParameterController::viewWillAppear() { ViewController::viewWillAppear(); @@ -50,6 +46,12 @@ HighlightCell * ColorParameterController::reusableCell(int index) { return &m_cells[index]; } +void ColorParameterController::willDisplayCellForIndex(HighlightCell * cell, int index) { + MessageTableCellWithColor * myCell = (MessageTableCellWithColor *)cell; + myCell->setColor(index); + cell->reloadCell(); +} + bool ColorParameterController::handleEnterOnRow(int rowIndex) { function()->setColor(Palette::DataColor[rowIndex]); return true; diff --git a/apps/shared/color_parameter_controller.h b/apps/shared/color_parameter_controller.h index b4cb3429c..416e94019 100644 --- a/apps/shared/color_parameter_controller.h +++ b/apps/shared/color_parameter_controller.h @@ -28,6 +28,7 @@ public: KDCoordinate cellHeight() override; HighlightCell * reusableCell(int index) override; int reusableCellCount() const override { return Palette::numberOfDataColors(); } // FIXME Display issue + void willDisplayCellForIndex(HighlightCell * cell, int index); private: bool handleEnterOnRow(int rowIndex); FunctionStore * functionStore();