[app/stats] Prevent histogram blinking

This commit is contained in:
Léa Saviot
2018-05-29 16:08:06 +02:00
parent e025cb30d5
commit 2c1d2b402b
3 changed files with 7 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ namespace Statistics {
class MultipleDataView : public View {
public:
static constexpr int k_defaultSelectedBar = 0;
MultipleDataView(Store * store) :
m_store(store),
m_displayBanner(false)

View File

@@ -43,7 +43,7 @@ bool MultipleDataViewController::handleEvent(Ion::Events::Event event) {
if (currentSelectedSubview < m_store->numberOfNonEmptySeries() - 1) {
multipleDataView()->deselectDataView(m_selectedSeries);
m_selectedSeries = multipleDataView()->seriesOfSubviewAtIndex(currentSelectedSubview+1);
*m_selectedBarIndex = 0;
*m_selectedBarIndex = MultipleDataView::k_defaultSelectedBar;
multipleDataView()->selectDataView(m_selectedSeries);
reloadBannerView();
app()->setFirstResponder(this);
@@ -56,7 +56,7 @@ bool MultipleDataViewController::handleEvent(Ion::Events::Event event) {
if (currentSelectedSubview > 0) {
multipleDataView()->deselectDataView(m_selectedSeries);
m_selectedSeries = multipleDataView()->seriesOfSubviewAtIndex(currentSelectedSubview-1);
*m_selectedBarIndex = 0;
*m_selectedBarIndex = MultipleDataView::k_defaultSelectedBar;
multipleDataView()->selectDataView(m_selectedSeries);
app()->setFirstResponder(this);
} else {

View File

@@ -48,6 +48,10 @@ void MultipleHistogramsView::layoutSubviews() {
void MultipleHistogramsView::changeDataViewSelection(int index, bool select) {
MultipleDataView::changeDataViewSelection(index, select);
dataViewAtIndex(index)->setDisplayLabels(select);
if (select == false) {
// Set the hightlight to default selected bar to prevent blinking
dataViewAtIndex(index)->setHighlight(m_store->startOfBarAtIndex(index, k_defaultSelectedBar), m_store->endOfBarAtIndex(index, k_defaultSelectedBar));
}
}
}