[apps/statistics] Remove duplicate banner views

This commit is contained in:
Léa Saviot
2018-05-22 17:48:07 +02:00
parent c84fd45b97
commit 4a89ff4ba5
3 changed files with 22 additions and 12 deletions

View File

@@ -10,7 +10,7 @@ using namespace Poincare;
namespace Shared {
CurveView::CurveView(CurveViewRange * curveViewRange, CurveViewCursor * curveViewCursor, BannerView * bannerView,
View * cursorView, View * okView) :
View * cursorView, View * okView, bool displayBanner) :
View(),
m_bannerView(bannerView),
m_curveViewCursor(curveViewCursor),
@@ -18,7 +18,8 @@ CurveView::CurveView(CurveViewRange * curveViewRange, CurveViewCursor * curveVie
m_cursorView(cursorView),
m_okView(okView),
m_mainViewSelected(false),
m_drawnRangeVersion(0)
m_drawnRangeVersion(0),
m_displayBanner(displayBanner)
{
}
@@ -27,7 +28,7 @@ void CurveView::reload() {
if (m_drawnRangeVersion != rangeVersion) {
// FIXME: This should also be called if the *curve* changed
m_drawnRangeVersion = rangeVersion;
KDCoordinate bannerHeight = m_bannerView != nullptr ? m_bannerView->bounds().height() : 0;
KDCoordinate bannerHeight = (m_bannerView != nullptr && m_displayBanner) ? m_bannerView->bounds().height() : 0;
markRectAsDirty(KDRect(0, 0, bounds().width(), bounds().height() - bannerHeight));
if (label(Axis::Horizontal, 0) != nullptr) {
computeLabels(Axis::Horizontal);
@@ -514,7 +515,7 @@ void CurveView::layoutSubviews() {
if (m_curveViewCursor != nullptr && m_cursorView != nullptr) {
m_cursorView->setFrame(cursorFrame());
}
if (m_bannerView != nullptr) {
if (m_bannerView != nullptr && m_displayBanner) {
m_bannerView->setFrame(bannerFrame());
}
if (m_okView != nullptr) {
@@ -530,7 +531,7 @@ KDRect CurveView::cursorFrame() {
KDCoordinate yCursorPixelPosition = std::round(floatToPixel(Axis::Vertical, m_curveViewCursor->y()));
cursorFrame = KDRect(xCursorPixelPosition - (cursorSize.width()-1)/2, yCursorPixelPosition - (cursorSize.height()-1)/2, cursorSize.width(), cursorSize.height());
if (cursorSize.height() == 0) {
KDCoordinate bannerHeight = m_bannerView != nullptr ? m_bannerView->minimalSizeForOptimalDisplay().height() : 0;
KDCoordinate bannerHeight = (m_bannerView != nullptr && m_displayBanner) ? m_bannerView->minimalSizeForOptimalDisplay().height() : 0;
cursorFrame = KDRect(xCursorPixelPosition - (cursorSize.width()-1)/2, 0, cursorSize.width(),bounds().height()-bannerHeight);
}
}
@@ -539,7 +540,7 @@ KDRect CurveView::cursorFrame() {
KDRect CurveView::bannerFrame() {
KDRect bannerFrame = KDRectZero;
if (m_bannerView && m_mainViewSelected) {
if (m_bannerView && m_displayBanner && m_mainViewSelected) {
KDCoordinate bannerHeight = m_bannerView->minimalSizeForOptimalDisplay().height();
bannerFrame = KDRect(0, bounds().height()- bannerHeight, bounds().width(), bannerHeight);
}
@@ -550,7 +551,7 @@ KDRect CurveView::okFrame() {
KDRect okFrame = KDRectZero;
if (m_okView && m_mainViewSelected) {
KDCoordinate bannerHeight = 0;
if (m_bannerView != nullptr) {
if (m_bannerView != nullptr && m_displayBanner) {
bannerHeight = m_bannerView->minimalSizeForOptimalDisplay().height();
}
KDSize okSize = m_okView->minimalSizeForOptimalDisplay();
@@ -560,7 +561,7 @@ KDRect CurveView::okFrame() {
}
int CurveView::numberOfSubviews() const {
return (m_bannerView != nullptr) + (m_cursorView != nullptr) + (m_okView != nullptr);
return (m_bannerView != nullptr && m_displayBanner) + (m_cursorView != nullptr) + (m_okView != nullptr);
};
View * CurveView::subviewAtIndex(int index) {
@@ -572,12 +573,12 @@ View * CurveView::subviewAtIndex(int index) {
if (m_okView != nullptr) {
return m_okView;
} else {
if (m_bannerView != nullptr) {
if (m_bannerView != nullptr && m_displayBanner) {
return m_bannerView;
}
}
}
if (index == 1 && m_bannerView != nullptr && m_okView != nullptr) {
if (index == 1 && m_bannerView != nullptr && m_displayBanner && m_okView != nullptr) {
return m_bannerView;
}
return m_cursorView;

View File

@@ -17,14 +17,19 @@ public:
Horizontal = 0,
Vertical = 1
};
CurveView(CurveViewRange * curveViewRange = nullptr, CurveViewCursor * curveViewCursor = nullptr,
BannerView * bannerView = nullptr, View * cursorView = nullptr, View * okView = nullptr);
CurveView(CurveViewRange * curveViewRange = nullptr,
CurveViewCursor * curveViewCursor = nullptr,
BannerView * bannerView = nullptr,
View * cursorView = nullptr,
View * okView = nullptr,
bool displayBanner = true);
virtual void reload();
// When the main view is selected, the banner view is visible
bool isMainViewSelected() const;
void selectMainView(bool mainViewSelected);
void setCursorView(View * cursorView);
void setBannerView(View * bannerView);
void setDisplayBannerView(bool display) { m_displayBanner = display; }
void setOkView(View * okView);
float resolution() const;
protected:
@@ -86,6 +91,7 @@ private:
View * m_okView;
bool m_mainViewSelected;
uint32_t m_drawnRangeVersion;
bool m_displayBanner;
};
}

View File

@@ -17,6 +17,9 @@ HistogramController::ContentView::ContentView(HistogramController * controller,
m_bannerView(),
m_store(store)
{
m_histogramView1.setDisplayBannerView(false);
m_histogramView2.setDisplayBannerView(false);
m_histogramView3.setDisplayBannerView(false);
}
HistogramView * HistogramController::ContentView::histogramViewAtIndex(int index) {