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

View File

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