From 6b5cea34a77c3fbfa7866f48e1ad9507a36d54fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Fri, 25 May 2018 11:41:44 +0200 Subject: [PATCH] [apps/stats] Display only one axis in box view --- apps/statistics/box_view.cpp | 11 ++++++++--- apps/statistics/box_view.h | 2 ++ apps/statistics/multiple_boxes_view.cpp | 11 ++++++++++- apps/statistics/multiple_boxes_view.h | 1 + 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/apps/statistics/box_view.cpp b/apps/statistics/box_view.cpp index 9eecc62bc..ec8da7cde 100644 --- a/apps/statistics/box_view.cpp +++ b/apps/statistics/box_view.cpp @@ -13,7 +13,8 @@ BoxView::BoxView(Store * store, int series, Shared::BannerView * bannerView, Qua m_labels{}, m_series(series), m_selectedQuantile(selectedQuantile), - m_selectedHistogramColor(color) + m_selectedHistogramColor(color), + m_displayAxis(true) { } @@ -43,8 +44,12 @@ void BoxView::reload() { void BoxView::drawRect(KDContext * ctx, KDRect rect) const { ctx->fillRect(rect, KDColorWhite); - drawAxes(ctx, rect, Axis::Horizontal); - drawLabels(ctx, rect, Axis::Horizontal, false); + if (m_displayAxis) { + drawAxes(ctx, rect, Axis::Horizontal); + drawLabels(ctx, rect, Axis::Horizontal, false); + } + + // TODO : recompute drawing position without axis float lowBound = 0.35f; float upBound = 0.65f; double minVal = m_store->minValue(m_series); diff --git a/apps/statistics/box_view.h b/apps/statistics/box_view.h index 8e5ab039d..a209b54be 100644 --- a/apps/statistics/box_view.h +++ b/apps/statistics/box_view.h @@ -23,6 +23,7 @@ public: Quantile selectedQuantile() const { return *m_selectedQuantile; } bool selectQuantile(int selectedQuantile); int series() const { return m_series; } + void setDisplayAxis(bool display) { m_displayAxis = display; } // CurveView void reload() override; @@ -37,6 +38,7 @@ private: int m_series; Quantile * m_selectedQuantile; KDColor m_selectedHistogramColor; + bool m_displayAxis; }; } diff --git a/apps/statistics/multiple_boxes_view.cpp b/apps/statistics/multiple_boxes_view.cpp index 2fe56e6a8..33ff18383 100644 --- a/apps/statistics/multiple_boxes_view.cpp +++ b/apps/statistics/multiple_boxes_view.cpp @@ -16,7 +16,7 @@ MultipleBoxesView::MultipleBoxesView(Store * store, BoxView::Quantile * selected for (int i = 0; i < Store::k_numberOfSeries; i++) { BoxView * boxView = dataViewAtIndex(i); boxView->setDisplayBannerView(false); - //histView->setDisplayLabels(false); //TODO + boxView->setDisplayAxis(false); } } @@ -31,4 +31,13 @@ int MultipleBoxesView::seriesOfSubviewAtIndex(int index) { return static_cast(subviewAtIndex(index))->series(); } +void MultipleBoxesView::layoutSubviews() { + MultipleDataView::layoutSubviews(); + int numberOfDataSubviews = numberOfSubviews() - 1; + assert(numberOfDataSubviews > 0); + for (int i = 0; i < numberOfDataSubviews; i++) { + static_cast(subviewAtIndex(i))->setDisplayAxis(i == numberOfDataSubviews - 1); + } +} + } diff --git a/apps/statistics/multiple_boxes_view.h b/apps/statistics/multiple_boxes_view.h index e6b85335b..bfcbd5aed 100644 --- a/apps/statistics/multiple_boxes_view.h +++ b/apps/statistics/multiple_boxes_view.h @@ -16,6 +16,7 @@ public: int seriesOfSubviewAtIndex(int index) override; const BoxBannerView * bannerView() const override { return &m_bannerView; } BoxView * dataViewAtIndex(int index) override; + void layoutSubviews() override; private: BoxView m_boxView1; BoxView m_boxView2;