diff --git a/apps/curve_view_with_banner.cpp b/apps/curve_view_with_banner.cpp index 4b7e0417a..91fd04608 100644 --- a/apps/curve_view_with_banner.cpp +++ b/apps/curve_view_with_banner.cpp @@ -16,7 +16,7 @@ bool CurveViewWithBanner::isMainViewSelected() { void CurveViewWithBanner::selectMainView(bool mainViewSelected) { if (m_mainViewSelected != mainViewSelected) { m_mainViewSelected = mainViewSelected; - reloadMainView(); + reloadSelection(); layoutSubviews(); } } diff --git a/apps/curve_view_with_banner.h b/apps/curve_view_with_banner.h index 4cbaa65f4..d0e8f6a4d 100644 --- a/apps/curve_view_with_banner.h +++ b/apps/curve_view_with_banner.h @@ -8,7 +8,7 @@ class CurveViewWithBanner : public CurveView { public: CurveViewWithBanner(CurveViewWindow * curveViewWindow = nullptr, float topMarginFactor = 0.0f, float rightMarginFactor = 0.0f, float bottomMarginFactor = 0.0f, float leftMarginFactor = 0.0f); - virtual void reloadMainView() = 0; + virtual void reloadSelection() = 0; bool isMainViewSelected(); void selectMainView(bool mainViewSelected); protected: diff --git a/apps/statistics/box_controller.cpp b/apps/statistics/box_controller.cpp index 2b3be4eb0..0c052cd60 100644 --- a/apps/statistics/box_controller.cpp +++ b/apps/statistics/box_controller.cpp @@ -33,7 +33,7 @@ bool BoxController::handleEvent(Ion::Events::Event event) { void BoxController::didBecomeFirstResponder() { m_view.selectMainView(true); - m_view.reload(-1); + m_view.reload(); } bool BoxController::isEmpty() { diff --git a/apps/statistics/box_view.cpp b/apps/statistics/box_view.cpp index 9ae006376..9d106eadb 100644 --- a/apps/statistics/box_view.cpp +++ b/apps/statistics/box_view.cpp @@ -13,22 +13,19 @@ BoxView::BoxView(Data * data) : { } -void BoxView::reloadMainView() { - reload(m_selectedQuantile); +void BoxView::reloadSelection() { + float calculations[5] = {m_data->minValue(), m_data->firstQuartile(), m_data->median(), m_data->thirdQuartile(), m_data->maxValue()}; + float pixelUpperBound = floatToPixel(Axis::Vertical, 0.2f)+1; + float pixelLowerBound = floatToPixel(Axis::Vertical, 0.8)-1; + float selectedValueInPixels = floatToPixel(Axis::Horizontal, calculations[m_selectedQuantile]); + KDRect dirtyZone(KDRect(selectedValueInPixels-1, pixelLowerBound, 2, pixelUpperBound - pixelLowerBound)); + markRectAsDirty(dirtyZone); + m_bannerView.reload(); } -void BoxView::reload(int selectedQuantile) { - if (selectedQuantile < 0) { - markRectAsDirty(bounds()); - computeLabels(Axis::Horizontal); - } else { - float calculations[5] = {m_data->minValue(), m_data->firstQuartile(), m_data->median(), m_data->thirdQuartile(), m_data->maxValue()}; - float pixelUpperBound = floatToPixel(Axis::Vertical, 0.2f)+1; - float pixelLowerBound = floatToPixel(Axis::Vertical, 0.8)-1; - float selectedValueInPixels = floatToPixel(Axis::Horizontal, calculations[selectedQuantile]); - KDRect dirtyZone(KDRect(selectedValueInPixels-1, pixelLowerBound, 2, pixelUpperBound - pixelLowerBound)); - markRectAsDirty(dirtyZone); - } +void BoxView::reload() { + markRectAsDirty(bounds()); + computeLabels(Axis::Horizontal); m_bannerView.reload(); } @@ -41,9 +38,9 @@ bool BoxView::selectQuantile(int selectedQuantile) { return false; } if (m_selectedQuantile != selectedQuantile) { - reload(m_selectedQuantile); + reloadSelection(); m_selectedQuantile = selectedQuantile; - reload(m_selectedQuantile); + reloadSelection(); } return true; } diff --git a/apps/statistics/box_view.h b/apps/statistics/box_view.h index b02bde6ef..89072c72a 100644 --- a/apps/statistics/box_view.h +++ b/apps/statistics/box_view.h @@ -13,8 +13,8 @@ namespace Statistics { class BoxView : public CurveViewWithBanner { public: BoxView(Data * m_data); - void reloadMainView() override; - void reload(int selectedQuantile); + void reloadSelection() override; + void reload(); int selectedQuantile(); bool selectQuantile(int selectedQuantile); void drawRect(KDContext * ctx, KDRect rect) const override; diff --git a/apps/statistics/histogram_controller.cpp b/apps/statistics/histogram_controller.cpp index 2d6ee86b1..6b9acb775 100644 --- a/apps/statistics/histogram_controller.cpp +++ b/apps/statistics/histogram_controller.cpp @@ -40,7 +40,7 @@ bool HistogramController::handleEvent(Ion::Events::Event event) { if (!m_view.isMainViewSelected()) { headerViewController()->setSelectedButton(-1); m_view.selectMainView(true); - m_view.reload(m_data->selectedBar()); + m_view.reloadSelection(); return true; } return false; @@ -57,11 +57,11 @@ bool HistogramController::handleEvent(Ion::Events::Event event) { } if (m_view.isMainViewSelected() && (event == Ion::Events::Left || event == Ion::Events::Right)) { int direction = event == Ion::Events::Left ? -1 : 1; - m_view.reload(m_data->selectedBar()); + m_view.reloadSelection(); if (m_data->selectNextBarToward(direction)) { - m_view.reload(NAN); + m_view.reload(); } else { - m_view.reload(m_data->selectedBar()); + m_view.reloadSelection(); } return true; } @@ -71,7 +71,7 @@ bool HistogramController::handleEvent(Ion::Events::Event event) { void HistogramController::didBecomeFirstResponder() { headerViewController()->setSelectedButton(-1); m_view.selectMainView(true); - m_view.reload(NAN); + m_view.reload(); } int HistogramController::numberOfButtons() const { diff --git a/apps/statistics/histogram_view.cpp b/apps/statistics/histogram_view.cpp index 4d44d2b22..879fa9c84 100644 --- a/apps/statistics/histogram_view.cpp +++ b/apps/statistics/histogram_view.cpp @@ -11,23 +11,20 @@ HistogramView::HistogramView(Data * data) : { } -void HistogramView::reloadMainView() { - reload(m_data->selectedBar()); +void HistogramView::reloadSelection() { + float pixelLowerBound = floatToPixel(Axis::Horizontal, m_data->selectedBar() - m_data->barWidth())-1; + float pixelUpperBound = floatToPixel(Axis::Horizontal, m_data->selectedBar() + m_data->barWidth())+1; + float selectedValueInPixels = floatToPixel(Axis::Vertical, (float)m_data->heightForBarAtValue(m_data->selectedBar())/(float)m_data->totalSize())-1; + float horizontalAxisInPixels = floatToPixel(Axis::Vertical, 0.0f)+1; + KDRect dirtyZone(KDRect(pixelLowerBound, selectedValueInPixels, pixelUpperBound-pixelLowerBound, + horizontalAxisInPixels - selectedValueInPixels)); + markRectAsDirty(dirtyZone); + m_bannerView.reload(); } -void HistogramView::reload(float dirtyZoneCenter) { - if (isnan(dirtyZoneCenter)) { - markRectAsDirty(bounds()); - computeLabels(Axis::Horizontal); - } else { - float pixelLowerBound = floatToPixel(Axis::Horizontal, dirtyZoneCenter - m_data->barWidth())-1; - float pixelUpperBound = floatToPixel(Axis::Horizontal, dirtyZoneCenter + m_data->barWidth())+1; - float selectedValueInPixels = floatToPixel(Axis::Vertical, (float)m_data->heightForBarAtValue(dirtyZoneCenter)/(float)m_data->totalSize())-1; - float horizontalAxisInPixels = floatToPixel(Axis::Vertical, 0.0f)+1; - KDRect dirtyZone(KDRect(pixelLowerBound, selectedValueInPixels, pixelUpperBound-pixelLowerBound, - horizontalAxisInPixels - selectedValueInPixels)); - markRectAsDirty(dirtyZone); - } +void HistogramView::reload() { + markRectAsDirty(bounds()); + computeLabels(Axis::Horizontal); m_bannerView.reload(); } diff --git a/apps/statistics/histogram_view.h b/apps/statistics/histogram_view.h index 935c4322d..ef11961f0 100644 --- a/apps/statistics/histogram_view.h +++ b/apps/statistics/histogram_view.h @@ -12,8 +12,8 @@ namespace Statistics { class HistogramView : public CurveViewWithBanner { public: HistogramView(Data * m_data); - void reloadMainView() override; - void reload(float dirtyZoneCenter); + void reloadSelection() override; + void reload(); void drawRect(KDContext * ctx, KDRect rect) const override; private: constexpr static KDCoordinate k_bannerHeight = 30;