From 83611a966a77e5962adfcebe75f5aca49fc5971e Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 5 Feb 2014 11:16:45 +0200 Subject: Fix slice update for bars, too. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also revert the incorrect change to surface slice update. Change-Id: If08d5848e5b216f4f6b82e39727eeb7facd463ca Reviewed-by: Tomi Korpipää --- src/datavisualization/data/qbar3dseries.cpp | 2 +- src/datavisualization/engine/bars3dcontroller.cpp | 26 +++++++++++----------- src/datavisualization/engine/bars3dcontroller_p.h | 2 +- .../engine/surface3dcontroller.cpp | 4 ++++ src/datavisualization/utils/texturehelper.cpp | 4 ---- 5 files changed, 19 insertions(+), 19 deletions(-) (limited to 'src/datavisualization') diff --git a/src/datavisualization/data/qbar3dseries.cpp b/src/datavisualization/data/qbar3dseries.cpp index 25ff505f..0616d4e4 100644 --- a/src/datavisualization/data/qbar3dseries.cpp +++ b/src/datavisualization/data/qbar3dseries.cpp @@ -198,7 +198,7 @@ void QBar3DSeries::setSelectedBar(const QPoint &position) { // Don't do this in private to avoid loops, as that is used for callback from controller. if (d_ptr->m_controller) - static_cast(d_ptr->m_controller)->setSelectedBar(position, this); + static_cast(d_ptr->m_controller)->setSelectedBar(position, this, true); else dptr()->setSelectedBar(position); } diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp index 5bd37ccf..c49a6bb0 100644 --- a/src/datavisualization/engine/bars3dcontroller.cpp +++ b/src/datavisualization/engine/bars3dcontroller.cpp @@ -109,7 +109,7 @@ void Bars3DController::handleArrayReset() m_isDataDirty = true; } // Clear selection unless still valid - setSelectedBar(m_selectedBar, m_selectedBarSeries); + setSelectedBar(m_selectedBar, m_selectedBarSeries, false); emitNeedRender(); } @@ -152,7 +152,7 @@ void Bars3DController::handleRowsRemoved(int startIndex, int count) else selectedRow -= count; // Move selected row down by amount of rows removed - setSelectedBar(QPoint(selectedRow, m_selectedBar.y()), m_selectedBarSeries); + setSelectedBar(QPoint(selectedRow, m_selectedBar.y()), m_selectedBarSeries, false); } } @@ -174,7 +174,7 @@ void Bars3DController::handleRowsInserted(int startIndex, int count) int selectedRow = m_selectedBar.x(); if (startIndex <= selectedRow) { selectedRow += count; - setSelectedBar(QPoint(selectedRow, m_selectedBar.y()), m_selectedBarSeries); + setSelectedBar(QPoint(selectedRow, m_selectedBar.y()), m_selectedBarSeries, false); } } @@ -240,9 +240,9 @@ void Bars3DController::handleSeriesVisibilityChangedBySender(QObject *sender) adjustAxisRanges(); - // Visibility changes may require disabling/enabling slicing, + // Visibility changes may require disabling slicing, // so just reset selection to ensure everything is still valid. - setSelectedBar(m_selectedBar, m_selectedBarSeries); + setSelectedBar(m_selectedBar, m_selectedBarSeries, false); } void Bars3DController::handlePendingClick() @@ -251,7 +251,7 @@ void Bars3DController::handlePendingClick() QPoint position = m_renderer->clickedPosition(); QBar3DSeries *series = static_cast(m_renderer->clickedSeries()); - setSelectedBar(position, series); + setSelectedBar(position, series, true); m_renderer->resetClickedStatus(); } @@ -309,7 +309,7 @@ void Bars3DController::removeSeries(QAbstract3DSeries *series) Abstract3DController::removeSeries(series); if (m_selectedBarSeries == series) - setSelectedBar(invalidSelectionPosition(), 0); + setSelectedBar(invalidSelectionPosition(), 0, false); if (wasVisible) adjustAxisRanges(); @@ -348,7 +348,7 @@ void Bars3DController::insertSeries(int index, QAbstract3DSeries *series) } if (barSeries->selectedBar() != invalidSelectionPosition()) - setSelectedBar(barSeries->selectedBar(), barSeries); + setSelectedBar(barSeries->selectedBar(), barSeries, false); if (!oldSize) emit primarySeriesChanged(m_primarySeries); @@ -381,7 +381,7 @@ void Bars3DController::handleAxisRangeChangedBySender(QObject *sender) Abstract3DController::handleAxisRangeChangedBySender(sender); // Update selected bar - may be moved offscreen - setSelectedBar(m_selectedBar, m_selectedBarSeries); + setSelectedBar(m_selectedBar, m_selectedBarSeries, false); } void Bars3DController::setMultiSeriesScaling(bool uniform) @@ -436,7 +436,7 @@ void Bars3DController::setSelectionMode(QAbstract3DGraph::SelectionFlags mode) if (mode != oldMode) { // Refresh selection upon mode change to ensure slicing is correctly updated // according to series the visibility. - setSelectedBar(m_selectedBar, m_selectedBarSeries); + setSelectedBar(m_selectedBar, m_selectedBarSeries, true); // Special case: Always deactivate slicing when changing away from slice // automanagement, as this can't be handled in setSelectedBar. @@ -448,7 +448,7 @@ void Bars3DController::setSelectionMode(QAbstract3DGraph::SelectionFlags mode) } } -void Bars3DController::setSelectedBar(const QPoint &position, QBar3DSeries *series) +void Bars3DController::setSelectedBar(const QPoint &position, QBar3DSeries *series, bool enterSlice) { // If the selection targets non-existent bar, clear selection instead. QPoint pos = position; @@ -465,7 +465,7 @@ void Bars3DController::setSelectedBar(const QPoint &position, QBar3DSeries *seri || pos.y() < m_axisX->min() || pos.y() > m_axisX->max() || !series->isVisible()) { scene()->setSlicingActive(false); - } else { + } else if (enterSlice) { scene()->setSlicingActive(true); } emitNeedRender(); @@ -491,7 +491,7 @@ void Bars3DController::setSelectedBar(const QPoint &position, QBar3DSeries *seri void Bars3DController::clearSelection() { - setSelectedBar(invalidSelectionPosition(), 0); + setSelectedBar(invalidSelectionPosition(), 0, false); } void Bars3DController::adjustAxisRanges() diff --git a/src/datavisualization/engine/bars3dcontroller_p.h b/src/datavisualization/engine/bars3dcontroller_p.h index e704aea1..d41af02d 100644 --- a/src/datavisualization/engine/bars3dcontroller_p.h +++ b/src/datavisualization/engine/bars3dcontroller_p.h @@ -95,7 +95,7 @@ public: bool isBarSpecRelative(); void setSelectionMode(QAbstract3DGraph::SelectionFlags mode); - void setSelectedBar(const QPoint &position, QBar3DSeries *series); + void setSelectedBar(const QPoint &position, QBar3DSeries *series, bool enterSlice); virtual void clearSelection(); virtual void handleAxisAutoAdjustRangeChangedInOrientation(QAbstract3DAxis::AxisOrientation orientation, bool autoAdjust); diff --git a/src/datavisualization/engine/surface3dcontroller.cpp b/src/datavisualization/engine/surface3dcontroller.cpp index 5aeecb20..664c4a71 100644 --- a/src/datavisualization/engine/surface3dcontroller.cpp +++ b/src/datavisualization/engine/surface3dcontroller.cpp @@ -111,6 +111,10 @@ void Surface3DController::handleSeriesVisibilityChangedBySender(QObject *sender) Abstract3DController::handleSeriesVisibilityChangedBySender(sender); adjustValueAxisRange(); + + // Visibility changes may require disabling slicing, + // so just reset selection to ensure everything is still valid. + setSelectedPoint(m_selectedPoint, m_selectedSeries, false); } void Surface3DController::handlePendingClick() diff --git a/src/datavisualization/utils/texturehelper.cpp b/src/datavisualization/utils/texturehelper.cpp index b5079f1b..91d70946 100644 --- a/src/datavisualization/utils/texturehelper.cpp +++ b/src/datavisualization/utils/texturehelper.cpp @@ -22,8 +22,6 @@ #include #include -#include - QT_BEGIN_NAMESPACE_DATAVISUALIZATION TextureHelper::TextureHelper() @@ -45,7 +43,6 @@ GLuint TextureHelper::create2DTexture(const QImage &image, bool useTrilinearFilt #if defined(Q_OS_ANDROID) || defined(Q_OS_IOS) GLuint temp; - //qDebug() << "old size" << image.size(); GLuint imageWidth = Utils::getNearestPowerOfTwo(image.width(), temp); GLuint imageHeight = Utils::getNearestPowerOfTwo(image.height(), temp); if (smoothScale) { @@ -54,7 +51,6 @@ GLuint TextureHelper::create2DTexture(const QImage &image, bool useTrilinearFilt } else { texImage = image.scaled(imageWidth, imageHeight, Qt::IgnoreAspectRatio); } - //qDebug() << "new size" << texImage.size(); #endif GLuint textureId; -- cgit v1.2.3