Fix qmlobject_{dis}connect macros to require semicolon at the end

Just do the typical

  do {
     [..stuff..]
  } while(0)

in the macros

Fix the places that didn't have semicolons.

This should eliminate some compiler warnings complaining about
excessive semicolons

Change-Id: I6b0e7a55badfd0f80c3cd0e9e1da42dc41945485
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This commit is contained in:
Jan Arve Sæther 2019-09-16 14:12:50 +02:00
parent 43a6970ce3
commit b7e5b0c25b
7 changed files with 12 additions and 12 deletions

View File

@ -90,7 +90,7 @@ QT_BEGIN_NAMESPACE
\endcode \endcode
*/ */
#define qmlobject_connect(Sender, SenderType, Signal, Receiver, ReceiverType, Method) \ #define qmlobject_connect(Sender, SenderType, Signal, Receiver, ReceiverType, Method) \
{ \ do { \
SenderType *sender = (Sender); \ SenderType *sender = (Sender); \
ReceiverType *receiver = (Receiver); \ ReceiverType *receiver = (Receiver); \
const char *signal = (Signal); \ const char *signal = (Signal); \
@ -111,7 +111,7 @@ QT_BEGIN_NAMESPACE
} \ } \
Q_ASSERT(signalIdx != -1 && methodIdx != -1); \ Q_ASSERT(signalIdx != -1 && methodIdx != -1); \
QMetaObject::connect(sender, signalIdx, receiver, methodIdx, Qt::DirectConnection); \ QMetaObject::connect(sender, signalIdx, receiver, methodIdx, Qt::DirectConnection); \
} } while (0)
/*! /*!
Disconnect \a Signal of \a Sender from \a Method of \a Receiver. \a Signal must be Disconnect \a Signal of \a Sender from \a Method of \a Receiver. \a Signal must be
@ -129,7 +129,7 @@ QT_BEGIN_NAMESPACE
\endcode \endcode
*/ */
#define qmlobject_disconnect(Sender, SenderType, Signal, Receiver, ReceiverType, Method) \ #define qmlobject_disconnect(Sender, SenderType, Signal, Receiver, ReceiverType, Method) \
{ \ do { \
SenderType *sender = (Sender); \ SenderType *sender = (Sender); \
ReceiverType *receiver = (Receiver); \ ReceiverType *receiver = (Receiver); \
const char *signal = (Signal); \ const char *signal = (Signal); \
@ -150,7 +150,7 @@ QT_BEGIN_NAMESPACE
} \ } \
Q_ASSERT(signalIdx != -1 && methodIdx != -1); \ Q_ASSERT(signalIdx != -1 && methodIdx != -1); \
QMetaObject::disconnect(sender, signalIdx, receiver, methodIdx); \ QMetaObject::disconnect(sender, signalIdx, receiver, methodIdx); \
} } while (0)
/*! /*!
This method is identical to qobject_cast<T>() except that it does not require lazy This method is identical to qobject_cast<T>() except that it does not require lazy

View File

@ -327,7 +327,7 @@ void QQuickBorderImage::load()
QNetworkRequest req(d->url); QNetworkRequest req(d->url);
d->sciReply = qmlEngine(this)->networkAccessManager()->get(req); d->sciReply = qmlEngine(this)->networkAccessManager()->get(req);
qmlobject_connect(d->sciReply, QNetworkReply, SIGNAL(finished()), qmlobject_connect(d->sciReply, QNetworkReply, SIGNAL(finished()),
this, QQuickBorderImage, SLOT(sciRequestFinished())) this, QQuickBorderImage, SLOT(sciRequestFinished()));
#endif #endif
} }
} else { } else {

View File

@ -86,7 +86,7 @@ public:
if (!border) { if (!border) {
border = new QQuickScaleGrid(q); border = new QQuickScaleGrid(q);
qmlobject_connect(border, QQuickScaleGrid, SIGNAL(borderChanged()), qmlobject_connect(border, QQuickScaleGrid, SIGNAL(borderChanged()),
q, QQuickBorderImage, SLOT(doUpdate())) q, QQuickBorderImage, SLOT(doUpdate()));
} }
return border; return border;
} }

View File

@ -266,9 +266,9 @@ void QQuickFlickablePrivate::init()
QQml_setParent_noEvent(contentItem, q); QQml_setParent_noEvent(contentItem, q);
contentItem->setParentItem(q); contentItem->setParentItem(q);
qmlobject_connect(&timeline, QQuickTimeLine, SIGNAL(completed()), qmlobject_connect(&timeline, QQuickTimeLine, SIGNAL(completed()),
q, QQuickFlickable, SLOT(timelineCompleted())) q, QQuickFlickable, SLOT(timelineCompleted()));
qmlobject_connect(&velocityTimeline, QQuickTimeLine, SIGNAL(completed()), qmlobject_connect(&velocityTimeline, QQuickTimeLine, SIGNAL(completed()),
q, QQuickFlickable, SLOT(velocityTimelineCompleted())) q, QQuickFlickable, SLOT(velocityTimelineCompleted()));
q->setAcceptedMouseButtons(Qt::LeftButton); q->setAcceptedMouseButtons(Qt::LeftButton);
q->setAcceptTouchEvents(false); // rely on mouse events synthesized from touch q->setAcceptTouchEvents(false); // rely on mouse events synthesized from touch
q->setFiltersChildMouseEvents(true); q->setFiltersChildMouseEvents(true);

View File

@ -5083,7 +5083,7 @@ QQuickStateGroup *QQuickItemPrivate::_states()
if (!componentComplete) if (!componentComplete)
_stateGroup->classBegin(); _stateGroup->classBegin();
qmlobject_connect(_stateGroup, QQuickStateGroup, SIGNAL(stateChanged(QString)), qmlobject_connect(_stateGroup, QQuickStateGroup, SIGNAL(stateChanged(QString)),
q, QQuickItem, SIGNAL(stateChanged(QString))) q, QQuickItem, SIGNAL(stateChanged(QString)));
} }
return _stateGroup; return _stateGroup;

View File

@ -118,10 +118,10 @@ void QQuickPathViewPrivate::init()
q->setFlag(QQuickItem::ItemIsFocusScope); q->setFlag(QQuickItem::ItemIsFocusScope);
q->setFiltersChildMouseEvents(true); q->setFiltersChildMouseEvents(true);
qmlobject_connect(&tl, QQuickTimeLine, SIGNAL(updated()), qmlobject_connect(&tl, QQuickTimeLine, SIGNAL(updated()),
q, QQuickPathView, SLOT(ticked())) q, QQuickPathView, SLOT(ticked()));
timer.invalidate(); timer.invalidate();
qmlobject_connect(&tl, QQuickTimeLine, SIGNAL(completed()), qmlobject_connect(&tl, QQuickTimeLine, SIGNAL(completed()),
q, QQuickPathView, SLOT(movementEnding())) q, QQuickPathView, SLOT(movementEnding()));
} }
QQuickItem *QQuickPathViewPrivate::getItem(int modelIndex, qreal z, bool async) QQuickItem *QQuickPathViewPrivate::getItem(int modelIndex, qreal z, bool async)

View File

@ -71,7 +71,7 @@ void tst_qqmlcpputils::fastConnect()
{ {
MyObject obj; MyObject obj;
qmlobject_connect(&obj, MyObject, SIGNAL(signal1()), &obj, MyObject, SLOT(slot1())) qmlobject_connect(&obj, MyObject, SIGNAL(signal1()), &obj, MyObject, SLOT(slot1()));
obj.signal1(); obj.signal1();
QCOMPARE(obj.slotCount, 1); QCOMPARE(obj.slotCount, 1);