summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-05 11:16:45 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-05 11:21:48 +0200
commit83611a966a77e5962adfcebe75f5aca49fc5971e (patch)
treee4e19ad728bb1f853ba08a9723d9c780e4b74a6c /src
parent79f3a4d7aa2fcbdc5df133ede88a367aa5870bd3 (diff)
Fix slice update for bars, too.
Also revert the incorrect change to surface slice update. Change-Id: If08d5848e5b216f4f6b82e39727eeb7facd463ca Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/data/qbar3dseries.cpp2
-rw-r--r--src/datavisualization/engine/bars3dcontroller.cpp26
-rw-r--r--src/datavisualization/engine/bars3dcontroller_p.h2
-rw-r--r--src/datavisualization/engine/surface3dcontroller.cpp4
-rw-r--r--src/datavisualization/utils/texturehelper.cpp4
5 files changed, 19 insertions, 19 deletions
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<Bars3DController *>(d_ptr->m_controller)->setSelectedBar(position, this);
+ static_cast<Bars3DController *>(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<QBar3DSeries *>(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 <QImage>
#include <QPainter>
-#include <QDebug>
-
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;