From d2593bb465fc1ae644d496e685d781b8e65e4a41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Mon, 11 Aug 2025 14:46:25 +0200 Subject: [PATCH] tplink: Add Qt6 support --- tplink/integrationplugintplink.cpp | 19 ++++++++++++------- tplink/integrationplugintplink.h | 21 +++++++++++---------- tplink/tplink.pro | 4 ++-- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/tplink/integrationplugintplink.cpp b/tplink/integrationplugintplink.cpp index d391a49c..f0cabcf4 100644 --- a/tplink/integrationplugintplink.cpp +++ b/tplink/integrationplugintplink.cpp @@ -38,6 +38,7 @@ #include #include #include +#include // Related projects: @@ -138,19 +139,19 @@ void IntegrationPluginTPLink::discoverThings(ThingDiscoveryInfo *info) qCWarning(dcTplink()) << qUtf8Printable(jsonDoc.toJson(QJsonDocument::Indented)); - QRegExp modelFilter; + QRegularExpression modelFilter; if (info->thingClassId() == kasaPlug100ThingClassId) { - modelFilter = QRegExp("(HS100|HS103|HS105|KP100|KP105).*"); + modelFilter = QRegularExpression("(HS100|HS103|HS105|KP100|KP105).*"); } else if (info->thingClassId() == kasaPlug110ThingClassId) { - modelFilter = QRegExp("(HS110|KP115).*"); + modelFilter = QRegularExpression("(HS110|KP115).*"); } else if (info->thingClassId() == kasaSwitch200ThingClassId) { - modelFilter = QRegExp("HS200.*"); + modelFilter = QRegularExpression("HS200.*"); } else if (info->thingClassId() == kasaPowerStrip300ThingClassId) { - modelFilter = QRegExp("HS300.*"); + modelFilter = QRegularExpression("HS300.*"); } QString model = sysInfo.value("model").toString(); - if (modelFilter.exactMatch(model)) { + if (modelFilter.match(model).hasMatch()) { ThingDescriptor descriptor(info->thingClassId(), sysInfo.value("alias").toString(), sysInfo.value("dev_name").toString()); Param idParam = Param(idParamTypesMap.value(info->thingClassId()), sysInfo.value("deviceId").toString()); descriptor.setParams(ParamList() << idParam); @@ -363,7 +364,7 @@ void IntegrationPluginTPLink::executeAction(ThingActionInfo *info) job.data = data; job.actionInfo = info; m_jobQueue[targetThing].append(job); - connect(info, &ThingActionInfo::aborted, this, [=](){ + connect(info, &ThingActionInfo::aborted, targetThing, [this, targetThing, job](){ m_jobQueue[targetThing].removeAll(job); }); @@ -422,8 +423,12 @@ void IntegrationPluginTPLink::connectToDevice(Thing *thing, const QHostAddress & fetchState(thing); }); +#if QT_VERSION >= QT_VERSION_CHECK(6,0,0) + connect(socket, &QTcpSocket::errorOccurred, this, [](QAbstractSocket::SocketError error){ +#else typedef void (QTcpSocket:: *errorSignal)(QAbstractSocket::SocketError); connect(socket, static_cast(&QTcpSocket::error), thing, [](QAbstractSocket::SocketError error) { +#endif qCWarning(dcTplink()) << "Error in device connection:" << error; }); diff --git a/tplink/integrationplugintplink.h b/tplink/integrationplugintplink.h index 332bbe24..a81f2351 100644 --- a/tplink/integrationplugintplink.h +++ b/tplink/integrationplugintplink.h @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -* Copyright 2013 - 2020, nymea GmbH +* Copyright 2013 - 2025, nymea GmbH * Contact: contact@nymea.io * * This file is part of nymea. @@ -31,7 +31,7 @@ #ifndef INTEGRATIONPLUGINTPLINK_H #define INTEGRATIONPLUGINTPLINK_H -#include "integrations/integrationplugin.h" +#include #include @@ -49,7 +49,7 @@ class IntegrationPluginTPLink: public IntegrationPlugin public: explicit IntegrationPluginTPLink(); - ~IntegrationPluginTPLink(); + ~IntegrationPluginTPLink() override; void init() override; void discoverThings(ThingDiscoveryInfo *info) override; @@ -73,18 +73,19 @@ private: int id = 0; QByteArray data; ThingActionInfo *actionInfo = nullptr; - bool operator==(const Job &other) { return id == other.id; } + bool operator==(const Job &other) const { return id == other.id; } }; - QHash m_pendingJobs; - QHash> m_jobQueue; - QHash m_jobTimers; + + QHash m_pendingJobs; + QHash> m_jobQueue; + QHash m_jobTimers; int m_jobIdx = 0; QUdpSocket *m_broadcastSocket = nullptr; - QHash m_sockets; - QHash m_setupRetries; + QHash m_sockets; + QHash m_setupRetries; - QHash m_inputBuffers; + QHash m_inputBuffers; PluginTimer *m_timer = nullptr; }; diff --git a/tplink/tplink.pro b/tplink/tplink.pro index a9a89cc9..1652d473 100644 --- a/tplink/tplink.pro +++ b/tplink/tplink.pro @@ -3,10 +3,10 @@ include(../plugins.pri) QT += network SOURCES += \ - integrationplugintplink.cpp \ + integrationplugintplink.cpp HEADERS += \ - integrationplugintplink.h \ + integrationplugintplink.h OTHER_FILES += \ sampledata/HS200.txt \