diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2023-12-23 20:15:13 +0100 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2024-01-10 22:20:03 +0000 |
commit | 7efd3c2718a3d0dd656038ee7cd4eb992a6f2f80 (patch) | |
tree | 9e5925c1698ac210dee4d2ff499fe379674c4d7c /src/widgets/widgets | |
parent | 7dd4a7b2133b9a6aa4f67a3ff5760303af68ac54 (diff) |
QLabel: Use pmf-style connects
Port all string-based signal/slots connections to pmf-style connects.
Pick-to: 6.7
Change-Id: I888fe3d0022fddbe7ba391dc6841c3ea6b9d1d4b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qlabel.cpp | 40 | ||||
-rw-r--r-- | src/widgets/widgets/qlabel.h | 9 | ||||
-rw-r--r-- | src/widgets/widgets/qlabel_p.h | 10 |
3 files changed, 27 insertions, 32 deletions
diff --git a/src/widgets/widgets/qlabel.cpp b/src/widgets/widgets/qlabel.cpp index bc40b0f442..f4155de0a0 100644 --- a/src/widgets/widgets/qlabel.cpp +++ b/src/widgets/widgets/qlabel.cpp @@ -1171,12 +1171,14 @@ void QLabel::setBuddy(QWidget *buddy) Q_D(QLabel); if (d->buddy) - disconnect(d->buddy, SIGNAL(destroyed()), this, SLOT(_q_buddyDeleted())); + QObjectPrivate::disconnect(d->buddy, &QObject::destroyed, + d, &QLabelPrivate::buddyDeleted); d->buddy = buddy; if (buddy) - connect(buddy, SIGNAL(destroyed()), this, SLOT(_q_buddyDeleted())); + QObjectPrivate::connect(buddy, &QObject::destroyed, + d, &QLabelPrivate::buddyDeleted); if (d->isTextLabel) { if (d->shortcutId) @@ -1219,7 +1221,7 @@ void QLabelPrivate::updateShortcut() } -void QLabelPrivate::_q_buddyDeleted() +void QLabelPrivate::buddyDeleted() { Q_Q(QLabel); q->setBuddy(nullptr); @@ -1228,7 +1230,7 @@ void QLabelPrivate::_q_buddyDeleted() #endif // QT_NO_SHORTCUT #if QT_CONFIG(movie) -void QLabelPrivate::_q_movieUpdated(const QRect& rect) +void QLabelPrivate::movieUpdated(const QRect &rect) { Q_Q(QLabel); if (movie && movie->isValid()) { @@ -1251,12 +1253,12 @@ void QLabelPrivate::_q_movieUpdated(const QRect& rect) } } -void QLabelPrivate::_q_movieResized(const QSize& size) +void QLabelPrivate::movieResized(const QSize &size) { Q_Q(QLabel); q->update(); //we need to refresh the whole background in case the new size is smaller valid_hints = false; - _q_movieUpdated(QRect(QPoint(0,0), size)); + movieUpdated(QRect(QPoint(0,0), size)); q->updateGeometry(); } @@ -1278,8 +1280,10 @@ void QLabel::setMovie(QMovie *movie) return; d->movie = movie; - connect(movie, SIGNAL(resized(QSize)), this, SLOT(_q_movieResized(QSize))); - connect(movie, SIGNAL(updated(QRect)), this, SLOT(_q_movieUpdated(QRect))); + d->movieConnections = { + QObjectPrivate::connect(movie, &QMovie::resized, d, &QLabelPrivate::movieResized), + QObjectPrivate::connect(movie, &QMovie::updated, d, &QLabelPrivate::movieUpdated), + }; // Assume that if the movie is running, // resize/update signals will come soon enough @@ -1317,10 +1321,8 @@ void QLabelPrivate::clearContents() shortcutId = 0; #endif #if QT_CONFIG(movie) - if (movie) { - QObject::disconnect(movie, SIGNAL(resized(QSize)), q, SLOT(_q_movieResized(QSize))); - QObject::disconnect(movie, SIGNAL(updated(QRect)), q, SLOT(_q_movieUpdated(QRect))); - } + for (const auto &conn : std::as_const(movieConnections)) + QObject::disconnect(conn); movie = nullptr; #endif #ifndef QT_NO_CURSOR @@ -1580,12 +1582,12 @@ void QLabelPrivate::ensureTextControl() const control->setOpenExternalLinks(openExternalLinks); control->setPalette(q->palette()); control->setFocus(q->hasFocus()); - QObject::connect(control, SIGNAL(updateRequest(QRectF)), - q, SLOT(update())); - QObject::connect(control, SIGNAL(linkHovered(QString)), - q, SLOT(_q_linkHovered(QString))); - QObject::connect(control, SIGNAL(linkActivated(QString)), - q, SIGNAL(linkActivated(QString))); + QObject::connect(control, &QWidgetTextControl::updateRequest, + q, qOverload<>(&QLabel::update)); + QObject::connect(control, &QWidgetTextControl::linkActivated, + q, &QLabel::linkActivated); + QObjectPrivate::connect(control, &QWidgetTextControl::linkHovered, + this, &QLabelPrivate::linkHovered); textLayoutDirty = true; textDirty = true; } @@ -1601,7 +1603,7 @@ void QLabelPrivate::sendControlEvent(QEvent *e) control->processEvent(e, -layoutRect().topLeft(), q); } -void QLabelPrivate::_q_linkHovered(const QString &anchor) +void QLabelPrivate::linkHovered(const QString &anchor) { Q_Q(QLabel); #ifndef QT_NO_CURSOR diff --git a/src/widgets/widgets/qlabel.h b/src/widgets/widgets/qlabel.h index ddbe05e82a..3749ec366a 100644 --- a/src/widgets/widgets/qlabel.h +++ b/src/widgets/widgets/qlabel.h @@ -130,15 +130,6 @@ protected: private: Q_DISABLE_COPY(QLabel) Q_DECLARE_PRIVATE(QLabel) -#if QT_CONFIG(movie) - Q_PRIVATE_SLOT(d_func(), void _q_movieUpdated(const QRect&)) - Q_PRIVATE_SLOT(d_func(), void _q_movieResized(const QSize&)) -#endif - Q_PRIVATE_SLOT(d_func(), void _q_linkHovered(const QString &)) - -#ifndef QT_NO_SHORTCUT - Q_PRIVATE_SLOT(d_func(), void _q_buddyDeleted()) -#endif friend class QTipLabel; friend class QMessageBoxPrivate; friend class QBalloonTip; diff --git a/src/widgets/widgets/qlabel_p.h b/src/widgets/widgets/qlabel_p.h index 2a3dcdaa2f..fb6ccb04eb 100644 --- a/src/widgets/widgets/qlabel_p.h +++ b/src/widgets/widgets/qlabel_p.h @@ -35,6 +35,7 @@ #include <QtCore/qpointer.h> +#include <array> #include <optional> QT_BEGIN_NAMESPACE @@ -52,12 +53,12 @@ public: QSize sizeForWidth(int w) const; #if QT_CONFIG(movie) - void _q_movieUpdated(const QRect&); - void _q_movieResized(const QSize&); + void movieUpdated(const QRect &rect); + void movieResized(const QSize &size); #endif #ifndef QT_NO_SHORTCUT void updateShortcut(); - void _q_buddyDeleted(); + void buddyDeleted(); #endif inline bool needTextControl() const { Q_Q(const QLabel); @@ -72,7 +73,7 @@ public: void ensureTextControl() const; void sendControlEvent(QEvent *e); - void _q_linkHovered(const QString &link); + void linkHovered(const QString &link); QRectF layoutRect() const; QRect documentRect() const; @@ -93,6 +94,7 @@ public: #endif #if QT_CONFIG(movie) QPointer<QMovie> movie; + std::array<QMetaObject::Connection, 2> movieConnections; #endif mutable QWidgetTextControl *control; mutable QTextCursor shortcutCursor; |