diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-09-15 03:02:22 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-09-15 03:02:22 +0200 |
commit | 0ae5b5dcaef6c721917552721aa3af6e065f9060 (patch) | |
tree | d06c91ccd1c55da0e9808fc75353a178a2e4086e | |
parent | b3ee3a0fe18e8d101a4c58fa17764ae8c9aa9268 (diff) | |
parent | ccd80bb35be42c6278de20d1b7942c0af0dc993f (diff) |
Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: If68eb404359b6e2f8a4a970c56d0e67230fd1944
-rw-r--r-- | dist/changes-5.11.2 | 25 | ||||
-rw-r--r-- | src/mqtt/qmqttauthenticationproperties.h | 2 | ||||
-rw-r--r-- | src/mqtt/qmqttclient.h | 12 | ||||
-rw-r--r-- | src/mqtt/qmqttconnection.cpp | 13 | ||||
-rw-r--r-- | src/mqtt/qmqttconnectionproperties.h | 10 | ||||
-rw-r--r-- | src/mqtt/qmqttpublishproperties.h | 3 | ||||
-rw-r--r-- | src/mqtt/qmqttsubscription.cpp | 16 | ||||
-rw-r--r-- | src/mqtt/qmqttsubscription.h | 14 | ||||
-rw-r--r-- | src/mqtt/qmqttsubscription_p.h | 2 | ||||
-rw-r--r-- | src/mqtt/qmqttsubscriptionproperties.h | 4 | ||||
-rw-r--r-- | src/mqtt/qmqtttopicfilter.cpp | 2 | ||||
-rw-r--r-- | src/mqtt/qmqtttopicfilter.h | 2 | ||||
-rw-r--r-- | src/mqtt/qmqtttype.cpp | 8 | ||||
-rw-r--r-- | src/mqtt/qmqtttype.h | 1 | ||||
-rw-r--r-- | tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp | 16 |
15 files changed, 76 insertions, 54 deletions
diff --git a/dist/changes-5.11.2 b/dist/changes-5.11.2 new file mode 100644 index 0000000..d6c8fb3 --- /dev/null +++ b/dist/changes-5.11.2 @@ -0,0 +1,25 @@ +Qt 5.11.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.11.0 through 5.11.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.11.2 Changes * +**************************************************************************** + + - [QTBUG-68343] Fixed CMake unit tests + - [QTBUG-68614] Fixed connection problems for manual secure transports diff --git a/src/mqtt/qmqttauthenticationproperties.h b/src/mqtt/qmqttauthenticationproperties.h index b587338..5025995 100644 --- a/src/mqtt/qmqttauthenticationproperties.h +++ b/src/mqtt/qmqttauthenticationproperties.h @@ -44,8 +44,6 @@ class QMqttAuthenticationPropertiesData; class Q_MQTT_EXPORT QMqttAuthenticationProperties { - Q_GADGET - public: QMqttAuthenticationProperties(); QMqttAuthenticationProperties(const QMqttAuthenticationProperties &); diff --git a/src/mqtt/qmqttclient.h b/src/mqtt/qmqttclient.h index 92e114b..438c075 100644 --- a/src/mqtt/qmqttclient.h +++ b/src/mqtt/qmqttclient.h @@ -161,20 +161,20 @@ Q_SIGNALS: void pingResponseReceived(); void brokerSessionRestored(); - void hostnameChanged(QString hostname); + void hostnameChanged(const QString &hostname); void portChanged(quint16 port); - void clientIdChanged(QString clientId); + void clientIdChanged(const QString &clientId); void keepAliveChanged(quint16 keepAlive); void protocolVersionChanged(ProtocolVersion protocolVersion); void stateChanged(ClientState state); void errorChanged(ClientError error); - void usernameChanged(QString username); - void passwordChanged(QString password); + void usernameChanged(const QString &username); + void passwordChanged(const QString &password); void cleanSessionChanged(bool cleanSession); - void willTopicChanged(QString willTopic); + void willTopicChanged(const QString &willTopic); void willQoSChanged(quint8 willQoS); - void willMessageChanged(QByteArray willMessage); + void willMessageChanged(const QByteArray &willMessage); void willRetainChanged(bool willRetain); void authenticationRequested(const QMqttAuthenticationProperties &p); diff --git a/src/mqtt/qmqttconnection.cpp b/src/mqtt/qmqttconnection.cpp index fc0ac13..fc27a24 100644 --- a/src/mqtt/qmqttconnection.cpp +++ b/src/mqtt/qmqttconnection.cpp @@ -462,11 +462,12 @@ QMqttSubscription *QMqttConnection::sendControlSubscribe(const QMqttTopicFilter qCDebug(lcMqttConnection) << Q_FUNC_INFO << " Topic:" << topic << " qos:" << qos; if (m_clientPrivate->m_protocolVersion == QMqttClient::MQTT_5_0) { - if (!topic.shareName().isEmpty()) { + if (!topic.sharedSubscriptionName().isEmpty()) { const QMqttTopicFilter filter(topic.filter().section(QLatin1Char('/'), 2)); - if (m_activeSubscriptions.contains(filter) && m_activeSubscriptions.value(filter)->shareName() == topic.shareName()) + if (m_activeSubscriptions.contains(filter) + && m_activeSubscriptions.value(filter)->sharedSubscriptionName() == topic.sharedSubscriptionName()) return m_activeSubscriptions[filter]; - } else if (m_activeSubscriptions.contains(topic) && !m_activeSubscriptions.value(topic)->isShared()) + } else if (m_activeSubscriptions.contains(topic) && !m_activeSubscriptions.value(topic)->isSharedSubscription()) return m_activeSubscriptions[topic]; } else if (m_activeSubscriptions.contains(topic)) return m_activeSubscriptions[topic]; @@ -504,9 +505,9 @@ QMqttSubscription *QMqttConnection::sendControlSubscribe(const QMqttTopicFilter result->setClient(m_clientPrivate->m_client); result->setQos(qos); result->setState(QMqttSubscription::SubscriptionPending); - if (m_clientPrivate->m_protocolVersion == QMqttClient::MQTT_5_0 && !topic.shareName().isEmpty()) { - result->setShareName(topic.shareName()); - result->setShared(true); + if (m_clientPrivate->m_protocolVersion == QMqttClient::MQTT_5_0 && !topic.sharedSubscriptionName().isEmpty()) { + result->setSharedSubscriptionName(topic.sharedSubscriptionName()); + result->setSharedSubscription(true); result->setTopic(topic.filter().section(QLatin1Char('/'), 2)); } diff --git a/src/mqtt/qmqttconnectionproperties.h b/src/mqtt/qmqttconnectionproperties.h index 8741f76..fb41853 100644 --- a/src/mqtt/qmqttconnectionproperties.h +++ b/src/mqtt/qmqttconnectionproperties.h @@ -44,7 +44,6 @@ class QMqttServerConnectionPropertiesData; class Q_MQTT_EXPORT QMqttLastWillProperties { - Q_GADGET public: QMqttLastWillProperties(); QMqttLastWillProperties(const QMqttLastWillProperties &); @@ -67,13 +66,12 @@ public: void setCorrelationData(const QByteArray &correlation); void setUserProperties(const QMqttUserProperties &properties); -protected: +private: QSharedDataPointer<QMqttLastWillPropertiesData> data; }; class Q_MQTT_EXPORT QMqttConnectionProperties { - Q_GADGET public: QMqttConnectionProperties(); QMqttConnectionProperties(const QMqttConnectionProperties &); @@ -100,14 +98,14 @@ public: void setAuthenticationMethod(const QString &authMethod); void setAuthenticationData(const QByteArray &authData); -protected: +private: + friend class QMqttConnection; QSharedDataPointer<QMqttConnectionPropertiesData> data; }; class Q_MQTT_EXPORT QMqttServerConnectionProperties : public QMqttConnectionProperties { - Q_GADGET public: enum ServerPropertyDetail : quint32 { None = 0x00000000, @@ -129,7 +127,6 @@ public: AuthenticationMethod = 0x00010000, AuthenticationData = 0x00020000 }; - Q_ENUM(ServerPropertyDetail) Q_DECLARE_FLAGS(ServerPropertyDetails, ServerPropertyDetail) QMqttServerConnectionProperties(); @@ -153,7 +150,6 @@ public: QString responseInformation() const; QString serverReference() const; - private: friend class QMqttConnection; QSharedDataPointer<QMqttServerConnectionPropertiesData> serverData; diff --git a/src/mqtt/qmqttpublishproperties.h b/src/mqtt/qmqttpublishproperties.h index a239b4d..1c62fc6 100644 --- a/src/mqtt/qmqttpublishproperties.h +++ b/src/mqtt/qmqttpublishproperties.h @@ -42,7 +42,6 @@ class QMqttMessageStatusPropertiesData; class Q_MQTT_EXPORT QMqttPublishProperties { - Q_GADGET public: enum PublishPropertyDetail : quint32 { None = 0x00000000, @@ -55,7 +54,6 @@ public: SubscriptionIdentifier = 0x00000040, ContentType = 0x00000080 }; - Q_ENUM(PublishPropertyDetail) Q_DECLARE_FLAGS(PublishPropertyDetails, PublishPropertyDetail) QMqttPublishProperties(); @@ -96,7 +94,6 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QMqttPublishProperties::PublishPropertyDetails) class Q_MQTT_EXPORT QMqttMessageStatusProperties { - Q_GADGET public: QMqttMessageStatusProperties(); QMqttMessageStatusProperties(const QMqttMessageStatusProperties &); diff --git a/src/mqtt/qmqttsubscription.cpp b/src/mqtt/qmqttsubscription.cpp index 35f3e52..2b526a9 100644 --- a/src/mqtt/qmqttsubscription.cpp +++ b/src/mqtt/qmqttsubscription.cpp @@ -105,13 +105,13 @@ QT_BEGIN_NAMESPACE */ /*! - \property QMqttSubscription::shared + \property QMqttSubscription::sharedSubscription \since 5.12 \brief This property holds whether the subscription is shared. */ /*! - \property QMqttSubscription::shareName + \property QMqttSubscription::sharedSubscriptionName \since 5.12 \brief This property holds the name of the shared subscription. */ @@ -177,16 +177,16 @@ QMqttUserProperties QMqttSubscription::userProperties() const return d->m_userProperties; } -bool QMqttSubscription::isShared() const +bool QMqttSubscription::isSharedSubscription() const { Q_D(const QMqttSubscription); return d->m_shared; } -QString QMqttSubscription::shareName() const +QString QMqttSubscription::sharedSubscriptionName() const { Q_D(const QMqttSubscription); - return d->m_shareName; + return d->m_sharedSubscriptionName; } void QMqttSubscription::setState(QMqttSubscription::SubscriptionState state) @@ -230,16 +230,16 @@ void QMqttSubscription::setQos(quint8 qos) d->m_qos = qos; } -void QMqttSubscription::setShared(bool s) +void QMqttSubscription::setSharedSubscription(bool s) { Q_D(QMqttSubscription); d->m_shared = s; } -void QMqttSubscription::setShareName(const QString &name) +void QMqttSubscription::setSharedSubscriptionName(const QString &name) { Q_D(QMqttSubscription); - d->m_shareName = name; + d->m_sharedSubscriptionName = name; } QMqttSubscriptionPrivate::QMqttSubscriptionPrivate() diff --git a/src/mqtt/qmqttsubscription.h b/src/mqtt/qmqttsubscription.h index ad10d37..9f8d75f 100644 --- a/src/mqtt/qmqttsubscription.h +++ b/src/mqtt/qmqttsubscription.h @@ -50,8 +50,8 @@ class Q_MQTT_EXPORT QMqttSubscription : public QObject Q_PROPERTY(QMqttTopicFilter topic READ topic) Q_PROPERTY(QString reason READ reason) Q_PROPERTY(QMqtt::ReasonCode reasonCode READ reasonCode) - Q_PROPERTY(bool shared READ isShared) - Q_PROPERTY(QString shareName READ shareName) + Q_PROPERTY(bool sharedSubscription READ isSharedSubscription) + Q_PROPERTY(QString sharedSubscriptionName READ sharedSubscriptionName) public: ~QMqttSubscription() override; enum SubscriptionState { @@ -69,13 +69,13 @@ public: QMqtt::ReasonCode reasonCode() const; QMqttUserProperties userProperties() const; - bool isShared() const; - QString shareName() const; + bool isSharedSubscription() const; + QString sharedSubscriptionName() const; Q_SIGNALS: void stateChanged(SubscriptionState state); void qosChanged(quint8); // only emitted when broker provides different QoS than requested - void messageReceived(QMqttMessage msg); + void messageReceived(const QMqttMessage &msg); public Q_SLOTS: void unsubscribe(); @@ -87,8 +87,8 @@ private: void setTopic(const QMqttTopicFilter &topic); void setClient(QMqttClient *client); void setQos(quint8 qos); - void setShared(bool s); - void setShareName(const QString &name); + void setSharedSubscription(bool s); + void setSharedSubscriptionName(const QString &name); friend class QMqttConnection; friend class QMqttClient; explicit QMqttSubscription(QObject *parent = nullptr); diff --git a/src/mqtt/qmqttsubscription_p.h b/src/mqtt/qmqttsubscription_p.h index f56c404..7687e8a 100644 --- a/src/mqtt/qmqttsubscription_p.h +++ b/src/mqtt/qmqttsubscription_p.h @@ -56,7 +56,7 @@ public: QMqttTopicFilter m_topic; QString m_reasonString; QMqttUserProperties m_userProperties; - QString m_shareName; + QString m_sharedSubscriptionName; QMqttSubscription::SubscriptionState m_state{QMqttSubscription::Unsubscribed}; QMqtt::ReasonCode m_reasonCode{QMqtt::ReasonCode::Success}; quint8 m_qos{0}; diff --git a/src/mqtt/qmqttsubscriptionproperties.h b/src/mqtt/qmqttsubscriptionproperties.h index 3794609..b5a4864 100644 --- a/src/mqtt/qmqttsubscriptionproperties.h +++ b/src/mqtt/qmqttsubscriptionproperties.h @@ -45,8 +45,6 @@ class QMqttUnsubscriptionPropertiesData; class Q_MQTT_EXPORT QMqttSubscriptionProperties { - Q_GADGET - public: QMqttSubscriptionProperties(); QMqttSubscriptionProperties(const QMqttSubscriptionProperties &); @@ -64,8 +62,6 @@ private: class Q_MQTT_EXPORT QMqttUnsubscriptionProperties { - Q_GADGET - public: QMqttUnsubscriptionProperties(); QMqttUnsubscriptionProperties(const QMqttUnsubscriptionProperties &); diff --git a/src/mqtt/qmqtttopicfilter.cpp b/src/mqtt/qmqtttopicfilter.cpp index 1e6bd9c..b96798f 100644 --- a/src/mqtt/qmqtttopicfilter.cpp +++ b/src/mqtt/qmqtttopicfilter.cpp @@ -160,7 +160,7 @@ void QMqttTopicFilter::setFilter(const QString &filter) a shared subscription. The format of shared subscriptions is defined as \c $share/sharename/topicfilter. */ -QString QMqttTopicFilter::shareName() const +QString QMqttTopicFilter::sharedSubscriptionName() const { QString result; if (d->filter.startsWith(QLatin1String("$share/"))) { diff --git a/src/mqtt/qmqtttopicfilter.h b/src/mqtt/qmqtttopicfilter.h index e926cf4..322f01e 100644 --- a/src/mqtt/qmqtttopicfilter.h +++ b/src/mqtt/qmqtttopicfilter.h @@ -69,7 +69,7 @@ public: QString filter() const; void setFilter(const QString &filter); - QString shareName() const; + QString sharedSubscriptionName() const; Q_REQUIRED_RESULT bool isValid() const; Q_REQUIRED_RESULT bool match(const QMqttTopicName &name, MatchOptions matchOptions = NoMatchOption) const; diff --git a/src/mqtt/qmqtttype.cpp b/src/mqtt/qmqtttype.cpp index 373707b..51954f7 100644 --- a/src/mqtt/qmqtttype.cpp +++ b/src/mqtt/qmqtttype.cpp @@ -446,6 +446,14 @@ bool QMqttStringPair::operator==(const QMqttStringPair &other) const return *data.constData() == *other.data.constData(); } +/*! + Returns \c true if this instance does not match \a other. +*/ +bool QMqttStringPair::operator!=(const QMqttStringPair &other) const +{ + return !operator==(other); +} + QMqttStringPair &QMqttStringPair::operator=(const QMqttStringPair &rhs) { if (this != &rhs) diff --git a/src/mqtt/qmqtttype.h b/src/mqtt/qmqtttype.h index d791d63..6197875 100644 --- a/src/mqtt/qmqtttype.h +++ b/src/mqtt/qmqtttype.h @@ -56,6 +56,7 @@ public: void setValue(const QString &v); bool operator==(const QMqttStringPair &other) const; + bool operator!=(const QMqttStringPair &other) const; QMqttStringPair &operator=(const QMqttStringPair &); private: QSharedDataPointer<QMqttStringPairData> data; diff --git a/tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp b/tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp index 78bb05c..3391792 100644 --- a/tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp +++ b/tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp @@ -265,8 +265,8 @@ void Tst_QMqttSubscription::sharedConnection() // listenerAx: $share/groupA/Qt/Subscription/shared_check/# for (int i = 0; i < groupSizeA; ++i) { createAndSubscribe(&listenersA[i], &subsA[i], groupTopicA); - QCOMPARE(subsA[i]->isShared(), true); - QCOMPARE(subsA[i]->shareName(), QLatin1String("groupA")); + QCOMPARE(subsA[i]->isSharedSubscription(), true); + QCOMPARE(subsA[i]->sharedSubscriptionName(), QLatin1String("groupA")); connect(subsA[i], &QMqttSubscription::messageReceived, [i, &messageCounterA, &messageSumA]() { messageCounterA[i]++; messageSumA++; @@ -284,8 +284,8 @@ void Tst_QMqttSubscription::sharedConnection() // listenerBx: $share/groupB/Qt/Subscription/shared_check/# for (int i = 0; i < groupSizeB; ++i) { createAndSubscribe(&listenersB[i], &subsB[i], groupTopicB); - QCOMPARE(subsB[i]->isShared(), true); - QCOMPARE(subsB[i]->shareName(), QLatin1String("groupB")); + QCOMPARE(subsB[i]->isSharedSubscription(), true); + QCOMPARE(subsB[i]->sharedSubscriptionName(), QLatin1String("groupB")); connect(subsB[i], &QMqttSubscription::messageReceived, [i, &messageCounterB, &messageSumB]() { messageCounterB[i]++; messageSumB++; @@ -351,12 +351,12 @@ void Tst_QMqttSubscription::sharedNonShared() QTRY_VERIFY2(client.state() == QMqttClient::Connected, "Could not connect to broker."); QMqttSubscription *sub1 = client.subscribe(topic1, 1); - QCOMPARE(sub1->isShared(), shared1); - QVERIFY(sub1->shareName().isEmpty() == !shared1); + QCOMPARE(sub1->isSharedSubscription(), shared1); + QVERIFY(sub1->sharedSubscriptionName().isEmpty() == !shared1); QMqttSubscription *sub2 = client.subscribe(topic2, 1); - QCOMPARE(sub2->isShared(), shared2); - QVERIFY(sub2->shareName().isEmpty() == !shared2); + QCOMPARE(sub2->isSharedSubscription(), shared2); + QVERIFY(sub2->sharedSubscriptionName().isEmpty() == !shared2); // Verify that a subscription is reused / not reused QCOMPARE(sub1 == sub2, expected); |