From 962b4de74c143cc69ee532c66eba290aacaca54b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Wed, 8 Feb 2017 15:08:02 +0100 Subject: [PATCH] [apps/sequence] Improve sequence title cell Change-Id: I09091c5a2d4b3175494715f7b63b6d3fe94509bd --- apps/sequence/Makefile | 2 +- apps/sequence/list/list_controller.cpp | 16 +------- apps/sequence/list/list_controller.h | 2 +- .../{ => list}/sequence_title_cell.cpp | 37 ++++++++++--------- .../sequence/{ => list}/sequence_title_cell.h | 13 ++++--- 5 files changed, 31 insertions(+), 39 deletions(-) rename apps/sequence/{ => list}/sequence_title_cell.cpp (82%) rename apps/sequence/{ => list}/sequence_title_cell.h (71%) diff --git a/apps/sequence/Makefile b/apps/sequence/Makefile index c74ea1ad6..21ffd3e11 100644 --- a/apps/sequence/Makefile +++ b/apps/sequence/Makefile @@ -3,10 +3,10 @@ app_objs += $(addprefix apps/sequence/,\ list/list_controller.o\ list/type_parameter_controller.o\ list/sequence_expression_cell.o\ + list/sequence_title_cell.o\ values/values_controller.o\ sequence.o\ sequence_store.o\ - sequence_title_cell.o\ ) app_images += apps/sequence/sequence_icon.png diff --git a/apps/sequence/list/list_controller.cpp b/apps/sequence/list/list_controller.cpp index 652d4f827..04ab28f77 100644 --- a/apps/sequence/list/list_controller.cpp +++ b/apps/sequence/list/list_controller.cpp @@ -7,7 +7,7 @@ namespace Sequence { ListController::ListController(Responder * parentResponder, SequenceStore * sequenceStore, HeaderViewController * header) : Shared::ListController(parentResponder, sequenceStore, header), - m_functionTitleCells{SequenceTitleCell(&m_selectableTableView),SequenceTitleCell(&m_selectableTableView),SequenceTitleCell(&m_selectableTableView)}, + m_functionTitleCells{SequenceTitleCell(&m_selectableTableView, &m_parameterController),SequenceTitleCell(&m_selectableTableView, &m_parameterController),SequenceTitleCell(&m_selectableTableView, &m_parameterController)}, m_expressionCells{SequenceExpressionCell(&m_selectableTableView),SequenceExpressionCell(&m_selectableTableView),SequenceExpressionCell(&m_selectableTableView)}, m_parameterController(ListParameterController(this, sequenceStore)), m_typeParameterController(this, sequenceStore), @@ -102,19 +102,7 @@ TableViewCell * ListController::expressionCells(int index) { void ListController::willDisplayTitleCellAtIndex(TableViewCell * cell, int j) { SequenceTitleCell * myCell = (SequenceTitleCell *)cell; Sequence * sequence = ((SequenceStore *)m_functionStore)->functionAtIndex(j); - myCell->setNumberOfSubCells((int)sequence->type()+1); - char bufferName[5] = {*sequence->name(),'(',sequence->symbol(),')', 0}; - myCell->setDefinitionText(bufferName); - if ((int)sequence->type() > 0) { - char bufferName[7] = {*sequence->name(),'(',sequence->symbol(),'+','1',')', 0}; - myCell->setFirstInitialConditionText(bufferName); - } - if ((int)sequence->type() > 1) { - char bufferName[7] = {*sequence->name(),'(',sequence->symbol(),'+','2',')', 0}; - myCell->setSecondInitialConditionText(bufferName); - } - KDColor functionNameColor = sequence->isActive() ? sequence->color() : Palette::GreyDark; - myCell->setColor(functionNameColor); + myCell->setSequence(sequence); } void ListController::willDisplayExpressionCellAtIndex(TableViewCell * cell, int j) { diff --git a/apps/sequence/list/list_controller.h b/apps/sequence/list/list_controller.h index 350b26a23..e8f74f623 100644 --- a/apps/sequence/list/list_controller.h +++ b/apps/sequence/list/list_controller.h @@ -2,7 +2,7 @@ #define SEQUENCE_LIST_CONTROLLER_H #include -#include "../sequence_title_cell.h" +#include "sequence_title_cell.h" #include "../sequence_store.h" #include "sequence_expression_cell.h" #include "type_parameter_controller.h" diff --git a/apps/sequence/sequence_title_cell.cpp b/apps/sequence/list/sequence_title_cell.cpp similarity index 82% rename from apps/sequence/sequence_title_cell.cpp rename to apps/sequence/list/sequence_title_cell.cpp index e2eab7989..c89d2abc9 100644 --- a/apps/sequence/sequence_title_cell.cpp +++ b/apps/sequence/list/sequence_title_cell.cpp @@ -4,27 +4,35 @@ using namespace Shared; namespace Sequence { -SequenceTitleCell::SequenceTitleCell(Responder * parentResponder) : +SequenceTitleCell::SequenceTitleCell(Responder * parentResponder, Shared::ListParameterController * listParameterController) : FunctionTitleCell(FunctionTitleCell::Orientation::VerticalIndicator), Responder(parentResponder), m_numberOfSubCells(1), m_selectedSubCell(0), m_definitionView(KDText::FontSize::Large, 0.5f, 0.5f), m_firstInitialConditionView(KDText::FontSize::Large, 0.5f, 0.5f), - m_secondInitialConditionView(KDText::FontSize::Large, 0.5f, 0.5f) + m_secondInitialConditionView(KDText::FontSize::Large, 0.5f, 0.5f), + m_sequence(nullptr), + m_listParameterController(listParameterController) { } -void SequenceTitleCell::setDefinitionText(const char * title) { - m_definitionView.setText(title); -} - -void SequenceTitleCell::setFirstInitialConditionText(const char * textContent) { - m_firstInitialConditionView.setText(textContent); -} - -void SequenceTitleCell::setSecondInitialConditionText(const char * textContent) { - m_secondInitialConditionView.setText(textContent); +void SequenceTitleCell::setSequence(Sequence * sequence) { + m_sequence = sequence; + m_numberOfSubCells = (int)sequence->type()+1; + char bufferName[5] = {*sequence->name(),'(',sequence->symbol(),')', 0}; + m_definitionView.setText(bufferName); + if (m_numberOfSubCells > 0) { + char bufferName[7] = {*sequence->name(),'(',sequence->symbol(),'+','1',')', 0}; + m_firstInitialConditionView.setText(bufferName); + } + if (m_numberOfSubCells > 1) { + char bufferName[7] = {*sequence->name(),'(',sequence->symbol(),'+','2',')', 0}; + m_secondInitialConditionView.setText(bufferName); + } + KDColor nameColor = sequence->isActive() ? sequence->color() : Palette::GreyDark; + setColor(nameColor); + layoutSubviews(); } void SequenceTitleCell::setColor(KDColor color) { @@ -34,11 +42,6 @@ void SequenceTitleCell::setColor(KDColor color) { m_secondInitialConditionView.setTextColor(color); } -void SequenceTitleCell::setNumberOfSubCells(int numberOfSubcells) { - m_numberOfSubCells = numberOfSubcells; - layoutSubviews(); -} - int SequenceTitleCell::selectedSubCell() { return m_selectedSubCell; } diff --git a/apps/sequence/sequence_title_cell.h b/apps/sequence/list/sequence_title_cell.h similarity index 71% rename from apps/sequence/sequence_title_cell.h rename to apps/sequence/list/sequence_title_cell.h index e63459229..7adf2976b 100644 --- a/apps/sequence/sequence_title_cell.h +++ b/apps/sequence/list/sequence_title_cell.h @@ -1,18 +1,17 @@ #ifndef SEQUENCE_SEQUENCE_TITLE_CELL_H #define SEQUENCE_SEQUENCE_TITLE_CELL_H -#include "../shared/function_title_cell.h" +#include "../../shared/function_title_cell.h" +#include "../../shared/list_parameter_controller.h" +#include "../sequence.h" namespace Sequence { class SequenceTitleCell : public Shared::FunctionTitleCell, public Responder { public: - SequenceTitleCell(Responder * parentResponder = nullptr); - void setDefinitionText(const char * textContent); - void setFirstInitialConditionText(const char * textContent); - void setSecondInitialConditionText(const char * textContent); + SequenceTitleCell(Responder * parentResponder, Shared::ListParameterController * listParameterController); + void setSequence(Sequence * sequence); void setColor(KDColor color) override; - void setNumberOfSubCells(int numberOfSubcells); int selectedSubCell(); void selectSubCell(int index); void setHighlighted(bool highlight) override; @@ -29,6 +28,8 @@ private: EvenOddBufferTextCell m_definitionView; EvenOddBufferTextCell m_firstInitialConditionView; EvenOddBufferTextCell m_secondInitialConditionView; + Sequence * m_sequence; + Shared::ListParameterController * m_listParameterController; }; }