summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/engine/bars3dcontroller.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-03 13:26:07 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-03 14:06:03 +0300
commit58979c740aa4814692e6555840e2fe4d3913561b (patch)
treeb5b50b44011fa49788d84808c4d4e25db46599c4 /src/datavis3d/engine/bars3dcontroller.cpp
parent5eedaa018b6a1b1527b523d3018ac026af29eb33 (diff)
Only render the scene when something changes.
This seems to improve frame rate, too. Task-number: QTRD-2179 Change-Id: Icb3ddc5ba651ce0982068bcf7ab09c67be183717 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavis3d/engine/bars3dcontroller.cpp')
-rw-r--r--src/datavis3d/engine/bars3dcontroller.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/datavis3d/engine/bars3dcontroller.cpp b/src/datavis3d/engine/bars3dcontroller.cpp
index 0844f422..b59d6bd1 100644
--- a/src/datavis3d/engine/bars3dcontroller.cpp
+++ b/src/datavis3d/engine/bars3dcontroller.cpp
@@ -72,6 +72,7 @@ void Bars3DController::initializeOpenGL()
QObject::connect(m_renderer, &Bars3DRenderer::selectedBarPosChanged, this,
&Bars3DController::handleSelectedBarPosChanged, Qt::QueuedConnection);
+ emitNeedRender();
}
void Bars3DController::synchDataToRenderer()
@@ -128,7 +129,7 @@ void Bars3DController::setSlicingActive(bool isSlicing)
m_isSlicingActivated = isSlicing;
m_changeTracker.slicingActiveChanged = true;
- emit slicingActiveChanged(m_isSlicingActivated);
+ emitNeedRender();
}
Bars3DController::MouseState Bars3DController::mouseState()
@@ -144,6 +145,7 @@ void Bars3DController::mouseDoubleClickEvent(QMouseEvent *event)
m_mouseState = Bars3DController::MouseOnScene;
// update mouse positions to prevent jumping when releasing or repressing a button
m_mousePos = event->pos();
+ emitNeedRender();
}
}
@@ -215,6 +217,7 @@ void Bars3DController::mousePressEvent(QMouseEvent *event, const QPoint &mousePo
m_mousePos = mousePos;
}
m_cameraHelper->updateMousePos(m_mousePos);
+ emitNeedRender();
}
void Bars3DController::mouseReleaseEvent(QMouseEvent *event, const QPoint &mousePos)
@@ -224,6 +227,7 @@ void Bars3DController::mouseReleaseEvent(QMouseEvent *event, const QPoint &mouse
// update mouse positions to prevent jumping when releasing or repressing a button
m_mousePos = mousePos;
m_cameraHelper->updateMousePos(mousePos);
+ emitNeedRender();
}
m_mouseState = Bars3DController::MouseNone;
}
@@ -231,8 +235,10 @@ void Bars3DController::mouseReleaseEvent(QMouseEvent *event, const QPoint &mouse
void Bars3DController::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos)
{
Q_UNUSED(event);
- if (Bars3DController::MouseRotating == m_mouseState)
+ if (Bars3DController::MouseRotating == m_mouseState) {
m_mousePos = mousePos;
+ emitNeedRender();
+ }
}
void Bars3DController::wheelEvent(QWheelEvent *event)
@@ -284,7 +290,6 @@ void Bars3DController::setActiveDataProxy(QAbstractDataProxy *proxy)
&Bars3DController::handleItemChanged);
adjustValueAxisRange();
- m_isDataDirty = true;
setSelectedBarPos(noSelectionPoint());
}
@@ -294,6 +299,7 @@ void Bars3DController::handleArrayReset()
adjustValueAxisRange();
m_isDataDirty = true;
setSelectedBarPos(noSelectionPoint());
+ emitNeedRender();
}
void Bars3DController::handleRowsAdded(int startIndex, int count)
@@ -305,6 +311,7 @@ void Bars3DController::handleRowsAdded(int startIndex, int count)
setSlicingActive(false);
adjustValueAxisRange();
m_isDataDirty = true;
+ emitNeedRender();
}
void Bars3DController::handleRowsChanged(int startIndex, int count)
@@ -316,6 +323,7 @@ void Bars3DController::handleRowsChanged(int startIndex, int count)
setSlicingActive(false);
adjustValueAxisRange();
m_isDataDirty = true;
+ emitNeedRender();
}
void Bars3DController::handleRowsRemoved(int startIndex, int count)
@@ -330,6 +338,7 @@ void Bars3DController::handleRowsRemoved(int startIndex, int count)
// TODO this will break once data window offset is implemented
if (startIndex >= static_cast<QBarDataProxy *>(m_data)->rowCount())
setSelectedBarPos(noSelectionPoint());
+ emitNeedRender();
}
void Bars3DController::handleRowsInserted(int startIndex, int count)
@@ -341,6 +350,7 @@ void Bars3DController::handleRowsInserted(int startIndex, int count)
setSlicingActive(false);
adjustValueAxisRange();
m_isDataDirty = true;
+ emitNeedRender();
}
void Bars3DController::handleItemChanged(int rowIndex, int columnIndex)
@@ -352,6 +362,7 @@ void Bars3DController::handleItemChanged(int rowIndex, int columnIndex)
setSlicingActive(false);
adjustValueAxisRange();
m_isDataDirty = true;
+ emitNeedRender();
}
void Bars3DController::handleSelectedBarPosChanged(const QPoint &position)
@@ -362,6 +373,7 @@ void Bars3DController::handleSelectedBarPosChanged(const QPoint &position)
if (pos != m_selectedBarPos) {
m_selectedBarPos = pos;
emit selectedBarPosChanged(pos);
+ emitNeedRender();
}
}
@@ -386,7 +398,7 @@ void Bars3DController::setBarSpecs(GLfloat thicknessRatio, const QSizeF &spacing
m_isBarSpecRelative = relative;
m_changeTracker.barSpecsChanged = true;
- emit barSpecsChanged(thicknessRatio, spacing, relative);
+ emitNeedRender();
}
GLfloat Bars3DController::barThickness()
@@ -440,7 +452,7 @@ void Bars3DController::setDataWindow(int rowCount, int columnCount)
m_changeTracker.sampleSpaceChanged = true;
m_isDataDirty = true; // Render item array is recreated in renderer
- emit sampleSpaceChanged(rowCount, columnCount);
+ emitNeedRender();
}
void Bars3DController::setSelectionMode(QDataVis::SelectionMode mode)
@@ -464,6 +476,7 @@ void Bars3DController::setSelectedBarPos(const QPoint &position)
m_selectedBarPos = pos;
m_changeTracker.selectedBarPosChanged = true;
emit selectedBarPosChanged(pos);
+ emitNeedRender();
}
}