From 513a4cf8520640dca8da01eaf340c6dd816d07f8 Mon Sep 17 00:00:00 2001 From: Ruben Dashyan Date: Wed, 20 Feb 2019 18:12:33 +0100 Subject: [PATCH] [apps] BannerView::numberOfSubviews Shared::BannerView::numberOfSubviews made pure virtual. Define constexpr attributes instead of magic numbers. Move numberOfSubviews to header file. --- apps/graph/graph/banner_view.cpp | 8 -------- apps/graph/graph/banner_view.h | 4 ++-- apps/regression/banner_view.cpp | 6 +----- apps/regression/banner_view.h | 6 +++--- apps/sequence/graph/banner_view.cpp | 4 ---- apps/sequence/graph/banner_view.h | 3 ++- apps/shared/banner_view.cpp | 4 ---- apps/shared/banner_view.h | 2 +- apps/statistics/box_banner_view.h | 3 ++- 9 files changed, 11 insertions(+), 29 deletions(-) diff --git a/apps/graph/graph/banner_view.cpp b/apps/graph/graph/banner_view.cpp index 0ce02d0b2..0a0f9b454 100644 --- a/apps/graph/graph/banner_view.cpp +++ b/apps/graph/graph/banner_view.cpp @@ -14,14 +14,6 @@ BannerView::BannerView() : { } -void BannerView::setNumberOfSubviews(int numberOfSubviews) { - m_numberOfSubviews = numberOfSubviews; -} - -int BannerView::numberOfSubviews() const { - return m_numberOfSubviews; -} - TextView * BannerView::textViewAtIndex(int i) const { const TextView * textViews[6] = {&m_abscissaView, &m_functionView, &m_derivativeView, &m_tangentEquationView, &m_aView, &m_bView}; return (TextView *)textViews[i]; diff --git a/apps/graph/graph/banner_view.h b/apps/graph/graph/banner_view.h index 165be7531..553f7416d 100644 --- a/apps/graph/graph/banner_view.h +++ b/apps/graph/graph/banner_view.h @@ -8,9 +8,9 @@ namespace Graph { class BannerView : public Shared::BannerView { public: BannerView(); - void setNumberOfSubviews(int numberOfSubviews); + void setNumberOfSubviews(int numberOfSubviews) { m_numberOfSubviews = numberOfSubviews; } private: - int numberOfSubviews() const override; + int numberOfSubviews() const override { return m_numberOfSubviews; } TextView * textViewAtIndex(int i) const override; MessageTextView * messageTextViewAtIndex(int i) const override; BufferTextView m_abscissaView; diff --git a/apps/regression/banner_view.cpp b/apps/regression/banner_view.cpp index 8861ff019..680b8bcd2 100644 --- a/apps/regression/banner_view.cpp +++ b/apps/regression/banner_view.cpp @@ -18,12 +18,8 @@ BannerView::BannerView() : { } -int BannerView::numberOfSubviews() const { - return k_numberOfTextViews; -} - TextView * BannerView::textViewAtIndex(int i) const { - const TextView * textViews[k_numberOfTextViews] = {&m_dotNameView, &m_xView, &m_yView, &m_regressionTypeView, &m_subText1, &m_subText2, &m_subText3, &m_subText4, &m_subText5}; + const TextView * textViews[k_numberOfSubviews] = {&m_dotNameView, &m_xView, &m_yView, &m_regressionTypeView, &m_subText1, &m_subText2, &m_subText3, &m_subText4, &m_subText5}; return (TextView *)textViews[i]; } diff --git a/apps/regression/banner_view.h b/apps/regression/banner_view.h index c0345e80f..7819138a4 100644 --- a/apps/regression/banner_view.h +++ b/apps/regression/banner_view.h @@ -9,14 +9,14 @@ namespace Regression { class BannerView : public Shared::BannerView { public: BannerView(); - int numberOfTextviews() const { return k_numberOfTextViews; } + int numberOfTextviews() const { return k_numberOfSubviews; } const KDFont * font() const { return k_font; } private: static constexpr const KDFont * k_font = KDFont::SmallFont; static constexpr KDColor k_textColor = KDColorBlack; static constexpr KDColor k_backgroundColor = Palette::GreyMiddle; - static constexpr int k_numberOfTextViews = 9; - int numberOfSubviews() const override; + static constexpr int k_numberOfSubviews = 9; + int numberOfSubviews() const override { return k_numberOfSubviews; } TextView * textViewAtIndex(int i) const override; MessageTextView * messageTextViewAtIndex(int i) const override; BufferTextView m_dotNameView; diff --git a/apps/sequence/graph/banner_view.cpp b/apps/sequence/graph/banner_view.cpp index 50e0f7f2f..cb5cedfb5 100644 --- a/apps/sequence/graph/banner_view.cpp +++ b/apps/sequence/graph/banner_view.cpp @@ -8,10 +8,6 @@ BannerView::BannerView() : { } -int BannerView::numberOfSubviews() const { - return 2; -} - TextView * BannerView::textViewAtIndex(int i) const { const TextView * views[2] = {&m_abscissaView, &m_sequenceView}; return (TextView *)views[i]; diff --git a/apps/sequence/graph/banner_view.h b/apps/sequence/graph/banner_view.h index 4d2727e7f..9e708c244 100644 --- a/apps/sequence/graph/banner_view.h +++ b/apps/sequence/graph/banner_view.h @@ -10,7 +10,8 @@ class BannerView : public Shared::BannerView { public: BannerView(); private: - int numberOfSubviews() const override; + static constexpr int k_numberOfSubviews = 2; + int numberOfSubviews() const override { return k_numberOfSubviews; } TextView * textViewAtIndex(int i) const override; BufferTextView m_abscissaView; BufferTextView m_sequenceView; diff --git a/apps/shared/banner_view.cpp b/apps/shared/banner_view.cpp index 22dad70fa..ac4fd9e9b 100644 --- a/apps/shared/banner_view.cpp +++ b/apps/shared/banner_view.cpp @@ -29,10 +29,6 @@ KDSize BannerView::minimalSizeForOptimalDisplay() const { return KDSize(0, HeightGivenNumberOfLines(numberOfLines())); } -int BannerView::numberOfSubviews() const { - return 0; -} - void BannerView::layoutSubviews() { /* We iterate on subviews, adding their width until we exceed the view bound. * The last subview that exceeds the bound is recorded as the first subview of diff --git a/apps/shared/banner_view.h b/apps/shared/banner_view.h index baa87725e..f1fd16d1d 100644 --- a/apps/shared/banner_view.h +++ b/apps/shared/banner_view.h @@ -12,7 +12,7 @@ public: void setMessageAtIndex(I18n::Message text, int index); KDSize minimalSizeForOptimalDisplay() const override; private: - int numberOfSubviews() const override; + int numberOfSubviews() const override = 0; View * subviewAtIndex(int index) override; void layoutSubviews() override; int numberOfLines() const; diff --git a/apps/statistics/box_banner_view.h b/apps/statistics/box_banner_view.h index a53060061..d2821c243 100644 --- a/apps/statistics/box_banner_view.h +++ b/apps/statistics/box_banner_view.h @@ -11,7 +11,8 @@ class BoxBannerView : public Shared::BannerView { public: BoxBannerView(); private: - int numberOfSubviews() const override { return 3; } + static constexpr int k_numberOfSubviews = 3; + int numberOfSubviews() const override { return k_numberOfSubviews; } TextView * textViewAtIndex(int i) const override; MessageTextView * messageTextViewAtIndex(int i) const override; BufferTextView m_seriesName;