forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user