diff --git a/apps/graph/graph/banner_view.h b/apps/graph/graph/banner_view.h index c096122eb..d53702c2a 100644 --- a/apps/graph/graph/banner_view.h +++ b/apps/graph/graph/banner_view.h @@ -6,7 +6,6 @@ namespace Graph { class BannerView : public Shared::XYBannerView { - friend class GraphController; public: BannerView( Responder * parentResponder, diff --git a/apps/graph/graph/graph_controller.cpp b/apps/graph/graph/graph_controller.cpp index fe0b6b2c8..74873a1c3 100644 --- a/apps/graph/graph/graph_controller.cpp +++ b/apps/graph/graph/graph_controller.cpp @@ -31,7 +31,6 @@ void GraphController::viewWillAppear() { m_view.drawTangent(false); m_view.setCursorView(&m_cursorView); FunctionGraphController::viewWillAppear(); - // Update the cursor color and the derivative display in the banner view selectFunctionWithCursor(indexFunctionSelectedByCursor()); } @@ -128,19 +127,17 @@ void GraphController::selectFunctionWithCursor(int functionIndex) { FunctionGraphController::selectFunctionWithCursor(functionIndex); ExpiringPointer f = functionStore()->modelForRecord(functionStore()->activeRecordAtIndex(functionIndex)); m_cursorView.setColor(f->color()); - int numberBannerViewSubviews = k_numberOfBannerViewSubviewsWithoutDerivate + (m_displayDerivativeInBanner && f->plotType() == CartesianFunction::PlotType::Cartesian); - if (m_bannerView.numberOfSubviews() != numberBannerViewSubviews) { - m_bannerView.setNumberOfSubviews(numberBannerViewSubviews); - reloadBannerView(); - } } void GraphController::reloadBannerView() { + Ion::Storage::Record record = functionStore()->activeRecordAtIndex(indexFunctionSelectedByCursor()); + bool displayDerivative = m_displayDerivativeInBanner && + functionStore()->modelForRecord(record)->plotType() == CartesianFunction::PlotType::Cartesian; + m_bannerView.setNumberOfSubviews(Shared::XYBannerView::k_numberOfSubviews + displayDerivative); FunctionGraphController::reloadBannerView(); - if (m_bannerView.numberOfSubviews() == k_numberOfBannerViewSubviewsWithoutDerivate) { + if (!displayDerivative) { return; } - Ion::Storage::Record record = functionStore()->activeRecordAtIndex(indexFunctionSelectedByCursor()); reloadDerivativeInBannerViewForCursorOnFunction(m_cursor, record); } diff --git a/apps/graph/graph/graph_controller.h b/apps/graph/graph/graph_controller.h index 21b4ca7ac..21fe08b0d 100644 --- a/apps/graph/graph/graph_controller.h +++ b/apps/graph/graph/graph_controller.h @@ -23,7 +23,6 @@ public: float interestingXHalfRange() const override; void interestingRanges(float * xm, float * xM, float * ym, float * yM) const override; private: - static constexpr int k_numberOfBannerViewSubviewsWithoutDerivate = Shared::XYBannerView::k_numberOfSubviews; int estimatedBannerNumberOfLines() const override { return 1 + m_displayDerivativeInBanner; } void selectFunctionWithCursor(int functionIndex) override; BannerView * bannerView() override { return &m_bannerView; }