QGraphicsSceneBspTreeIndex: port to QBasicTimer

... instead of handling timer IDs.

Change-Id: Ib87a277abfaf7412b57007affc68b1e1f1f822f4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
Ahmad Samir 2024-09-03 21:10:45 +03:00
parent 4593892a9b
commit c5933597ad
2 changed files with 9 additions and 9 deletions

View File

@ -47,6 +47,8 @@
#include <algorithm> #include <algorithm>
using namespace std::chrono_literals;
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
static inline int intmaxlog(int n) static inline int intmaxlog(int n)
@ -60,7 +62,6 @@ static inline int intmaxlog(int n)
QGraphicsSceneBspTreeIndexPrivate::QGraphicsSceneBspTreeIndexPrivate(QGraphicsScene *scene) QGraphicsSceneBspTreeIndexPrivate::QGraphicsSceneBspTreeIndexPrivate(QGraphicsScene *scene)
: QGraphicsSceneIndexPrivate(scene), : QGraphicsSceneIndexPrivate(scene),
bspTreeDepth(0), bspTreeDepth(0),
indexTimerId(0),
restartIndexTimer(false), restartIndexTimer(false),
regenerateIndex(true), regenerateIndex(true),
lastItemCount(0), lastItemCount(0),
@ -81,12 +82,10 @@ QGraphicsSceneBspTreeIndexPrivate::QGraphicsSceneBspTreeIndexPrivate(QGraphicsSc
*/ */
void QGraphicsSceneBspTreeIndexPrivate::_q_updateIndex() void QGraphicsSceneBspTreeIndexPrivate::_q_updateIndex()
{ {
Q_Q(QGraphicsSceneBspTreeIndex); if (!indexTimer.isActive())
if (!indexTimerId)
return; return;
q->killTimer(indexTimerId); indexTimer.stop();
indexTimerId = 0;
purgeRemovedItems(); purgeRemovedItems();
@ -172,10 +171,10 @@ void QGraphicsSceneBspTreeIndexPrivate::purgeRemovedItems()
void QGraphicsSceneBspTreeIndexPrivate::startIndexTimer(int interval) void QGraphicsSceneBspTreeIndexPrivate::startIndexTimer(int interval)
{ {
Q_Q(QGraphicsSceneBspTreeIndex); Q_Q(QGraphicsSceneBspTreeIndex);
if (indexTimerId) { if (indexTimer.isActive()) {
restartIndexTimer = true; restartIndexTimer = true;
} else { } else {
indexTimerId = q->startTimer(interval); indexTimer.start(interval * 1ms, q);
} }
} }
@ -657,7 +656,7 @@ bool QGraphicsSceneBspTreeIndex::event(QEvent *event)
{ {
Q_D(QGraphicsSceneBspTreeIndex); Q_D(QGraphicsSceneBspTreeIndex);
if (event->type() == QEvent::Timer) { if (event->type() == QEvent::Timer) {
if (d->indexTimerId && static_cast<QTimerEvent *>(event)->timerId() == d->indexTimerId) { if (d->indexTimer.isActive() && static_cast<QTimerEvent *>(event)->id() == d->indexTimer.id()) {
if (d->restartIndexTimer) { if (d->restartIndexTimer) {
d->restartIndexTimer = false; d->restartIndexTimer = false;
} else { } else {

View File

@ -21,6 +21,7 @@
#include "qgraphicsitem_p.h" #include "qgraphicsitem_p.h"
#include "qgraphicsscene_bsp_p.h" #include "qgraphicsscene_bsp_p.h"
#include <QtCore/qbasictimer.h>
#include <QtCore/qrect.h> #include <QtCore/qrect.h>
#include <QtCore/qlist.h> #include <QtCore/qlist.h>
@ -80,7 +81,7 @@ public:
QGraphicsSceneBspTree bsp; QGraphicsSceneBspTree bsp;
QRectF sceneRect; QRectF sceneRect;
int bspTreeDepth; int bspTreeDepth;
int indexTimerId; QBasicTimer indexTimer;
bool restartIndexTimer; bool restartIndexTimer;
bool regenerateIndex; bool regenerateIndex;
int lastItemCount; int lastItemCount;