summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-06-02 10:47:29 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-06-02 13:29:53 +0300
commite001973214143698f57fbacd9442ac4d9f1b32c9 (patch)
treec5e9e12b3251e74e5055d99d86f09fa6291e0a08 /src
parent7f505c5b6c1a613ffad90fb4d90ff81071cb6236 (diff)
Misc fixes found while valgrinding.
Change-Id: If744721eff62f07f20bff95ca815ca80ca50fee1 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/data/barrenderitem.cpp1
-rw-r--r--src/datavisualization/engine/bars3drenderer.cpp12
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp16
3 files changed, 18 insertions, 11 deletions
diff --git a/src/datavisualization/data/barrenderitem.cpp b/src/datavisualization/data/barrenderitem.cpp
index 2d9d3daa..9ceadbcd 100644
--- a/src/datavisualization/data/barrenderitem.cpp
+++ b/src/datavisualization/data/barrenderitem.cpp
@@ -66,6 +66,7 @@ void BarRenderSliceItem::setItem(const BarRenderItem &renderItem)
m_position = renderItem.position();
m_height = renderItem.height();
m_sliceLabel = QString();
+ delete m_sliceLabelItem;
m_sliceLabelItem = 0;
}
diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp
index afa249c7..14523929 100644
--- a/src/datavisualization/engine/bars3drenderer.cpp
+++ b/src/datavisualization/engine/bars3drenderer.cpp
@@ -282,9 +282,9 @@ void Bars3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesList)
m_haveGradientSeries = false;
for (int i = 0; i < seriesCount; i++) {
QBar3DSeries *barSeries = static_cast<QBar3DSeries *>(seriesList[i]);
+ BarSeriesRenderCache *cache =
+ static_cast<BarSeriesRenderCache *>(m_renderCacheList.value(barSeries));
if (barSeries->isVisible()) {
- BarSeriesRenderCache *cache =
- static_cast<BarSeriesRenderCache *>(m_renderCacheList.value(barSeries));
if (noSelection
&& barSeries->selectedBar() != QBar3DSeries::invalidSelectionPosition()) {
if (selectionLabel() != cache->itemLabel())
@@ -296,7 +296,10 @@ void Bars3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesList)
m_haveUniformColorSeries = true;
else
m_haveGradientSeries = true;
+ } else {
+ cache->setVisualIndex(-1);
}
+
}
if (noSelection) {
if (!selectionLabel().isEmpty())
@@ -1830,10 +1833,13 @@ void Bars3DRenderer::drawScene(GLuint defaultFboHandle)
m_selectedBar = selectedBar;
}
+ Drawer::LabelPosition position =
+ m_selectedBar->height() >= 0 ? Drawer::LabelOver : Drawer::LabelBelow;
+
m_drawer->drawLabel(*selectedBar, labelItem, viewMatrix, projectionMatrix,
zeroVector, identityQuaternion, selectedBar->height(),
m_cachedSelectionMode, m_labelShader,
- m_labelObj, activeCamera, true, false);
+ m_labelObj, activeCamera, true, false, position);
// Reset label update flag; they should have been updated when we get here
m_updateLabels = false;
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index 0628a77e..f703ed97 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -1241,10 +1241,10 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle)
glBindFramebuffer(GL_FRAMEBUFFER, defaultFboHandle);
// Put the RGBA value back to uint
- uint selectionId = clickedColor.x()
- + clickedColor.y() * greenMultiplier
- + clickedColor.z() * blueMultiplier
- + clickedColor.w() * alphaMultiplier;
+ uint selectionId = uint(clickedColor.x())
+ + uint(clickedColor.y()) * greenMultiplier
+ + uint(clickedColor.z()) * blueMultiplier
+ + uint(clickedColor.w()) * alphaMultiplier;
m_clickedPosition = selectionIdToSurfacePoint(selectionId);
@@ -2460,21 +2460,21 @@ QPoint Surface3DRenderer::selectionIdToSurfacePoint(uint id)
m_selectedCustomItemIndex = -1;
// Check for label and custom item selection
if (id / alphaMultiplier == labelRowAlpha) {
- m_selectedLabelIndex = id - (alphaMultiplier * labelRowAlpha);
+ m_selectedLabelIndex = id - (alphaMultiplier * uint(labelRowAlpha));
m_clickedType = QAbstract3DGraph::ElementAxisZLabel;
return Surface3DController::invalidSelectionPosition();
} else if (id / alphaMultiplier == labelColumnAlpha) {
- m_selectedLabelIndex = (id - (alphaMultiplier * labelColumnAlpha)) / greenMultiplier;
+ m_selectedLabelIndex = (id - (alphaMultiplier * uint(labelColumnAlpha))) / greenMultiplier;
m_clickedType = QAbstract3DGraph::ElementAxisXLabel;
return Surface3DController::invalidSelectionPosition();
} else if (id / alphaMultiplier == labelValueAlpha) {
- m_selectedLabelIndex = (id - (alphaMultiplier * labelValueAlpha)) / blueMultiplier;
+ m_selectedLabelIndex = (id - (alphaMultiplier * uint(labelValueAlpha))) / blueMultiplier;
m_clickedType = QAbstract3DGraph::ElementAxisYLabel;
return Surface3DController::invalidSelectionPosition();
} else if (id / alphaMultiplier == customItemAlpha) {
// Custom item selection
m_clickedType = QAbstract3DGraph::ElementCustomItem;
- m_selectedCustomItemIndex = id - (alphaMultiplier * customItemAlpha);
+ m_selectedCustomItemIndex = id - (alphaMultiplier * uint(customItemAlpha));
return Surface3DController::invalidSelectionPosition();
}