Timeline: Move clearing of dirty flags into TimelineAbstractRenderer

As TimelineAbstractRenderer sets the flags it should also clear them.

Change-Id: I78245a9d9048ed50cd0819cc48d22bed89531883
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
Ulf Hermann
2015-04-13 12:55:57 +02:00
parent f04121d1cb
commit 70e8015fa7
5 changed files with 23 additions and 13 deletions
+11 -1
View File
@@ -214,5 +214,15 @@ void TimelineAbstractRenderer::setNotesDirty()
update();
}
} // namespace Timeline
// Reset the dirty flags, delete the old node (if given), and return 0
QSGNode *TimelineAbstractRenderer::updatePaintNode(QSGNode *oldNode,
UpdatePaintNodeData *updatePaintNodeData)
{
Q_D(TimelineAbstractRenderer);
d->modelDirty = false;
d->rowHeightsDirty = false;
d->notesDirty = false;
return QQuickItem::updatePaintNode(oldNode, updatePaintNodeData);
}
} // namespace Timeline
@@ -89,6 +89,8 @@ public slots:
void setRowHeightsDirty();
protected:
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *updatePaintNodeData);
class TimelineAbstractRendererPrivate;
TimelineAbstractRenderer(TimelineAbstractRendererPrivate &dd, QQuickItem *parent = 0);
TimelineAbstractRendererPrivate *d_ptr;
@@ -52,7 +52,6 @@ QSGNode *TimelineOverviewRenderer::updatePaintNode(QSGNode *oldNode,
UpdatePaintNodeData *updatePaintNodeData)
{
Q_D(TimelineOverviewRenderer);
Q_UNUSED(updatePaintNodeData)
if (!d->model || d->model->isEmpty() || !d->zoomer || d->zoomer->traceDuration() <= 0) {
delete oldNode;
@@ -62,7 +61,6 @@ QSGNode *TimelineOverviewRenderer::updatePaintNode(QSGNode *oldNode,
if (d->modelDirty) {
delete d->renderState;
d->renderState = 0;
d->modelDirty = false;
}
if (d->renderState == 0) {
@@ -83,9 +81,7 @@ QSGNode *TimelineOverviewRenderer::updatePaintNode(QSGNode *oldNode,
if (d->renderState->isEmpty())
d->renderState->assembleNodeTree(d->model, d->model->height(), 0);
d->modelDirty = false;
d->notesDirty = false;
d->rowHeightsDirty = false;
TimelineAbstractRenderer::updatePaintNode(0, updatePaintNodeData);
QMatrix4x4 matrix;
matrix.scale(xSpacing, ySpacing, 1);
+1 -4
View File
@@ -121,7 +121,6 @@ TimelineRenderState *TimelineRenderer::TimelineRendererPrivate::findRenderState(
QSGNode *TimelineRenderer::updatePaintNode(QSGNode *node, UpdatePaintNodeData *updatePaintNodeData)
{
Q_D(TimelineRenderer);
Q_UNUSED(updatePaintNodeData)
if (!d->model || d->model->hidden() || d->model->isEmpty() || !d->zoomer ||
d->zoomer->windowDuration() <= 0) {
@@ -155,9 +154,7 @@ QSGNode *TimelineRenderer::updatePaintNode(QSGNode *node, UpdatePaintNodeData *u
TimelineModel::defaultRowHeight());
}
d->modelDirty = false;
d->notesDirty = false;
d->rowHeightsDirty = false;
TimelineAbstractRenderer::updatePaintNode(0, updatePaintNodeData);
d->lastState = state;
QMatrix4x4 matrix;
@@ -34,9 +34,9 @@
using namespace Timeline;
class DummyRenderer : public TimelineAbstractRenderer {
friend class tst_TimelineAbstractRenderer;
public:
DummyRenderer() : TimelineAbstractRenderer(*new TimelineAbstractRendererPrivate) {}
TimelineAbstractRendererPrivate *dd() { return d_func(); }
};
class tst_TimelineAbstractRenderer : public QObject
@@ -56,7 +56,7 @@ private slots:
void tst_TimelineAbstractRenderer::privateCtor()
{
DummyRenderer renderer;
QVERIFY(renderer.dd() != 0);
QVERIFY(renderer.d_func() != 0);
}
void tst_TimelineAbstractRenderer::selectionLocked()
@@ -137,7 +137,7 @@ void tst_TimelineAbstractRenderer::zoomer()
void tst_TimelineAbstractRenderer::dirty()
{
TimelineAbstractRenderer renderer;
DummyRenderer renderer;
QVERIFY(!renderer.modelDirty());
QVERIFY(!renderer.notesDirty());
QVERIFY(!renderer.rowHeightsDirty());
@@ -148,6 +148,11 @@ void tst_TimelineAbstractRenderer::dirty()
QVERIFY(renderer.notesDirty());
renderer.setRowHeightsDirty();
QVERIFY(renderer.rowHeightsDirty());
renderer.updatePaintNode(0, 0);
QVERIFY(!renderer.modelDirty());
QVERIFY(!renderer.notesDirty());
QVERIFY(!renderer.rowHeightsDirty());
}
QTEST_MAIN(tst_TimelineAbstractRenderer)