Port away from deprecated QList::toSet and QSet::toList

This commit is contained in:
Alexander Lohnau 2023-04-17 21:20:51 +02:00
parent 624fadbe6e
commit 81fea21100
2 changed files with 22 additions and 9 deletions

View file

@ -26,7 +26,7 @@
#include "networkpacket.h" #include "networkpacket.h"
#include "pluginloader.h" #include "pluginloader.h"
// In older Qt released, qAsConst isnt available // In older Qt released, qAsConst isn't available
#include "qtcompat_p.h" #include "qtcompat_p.h"
class Device::DevicePrivate class Device::DevicePrivate
@ -76,7 +76,7 @@ Device::Device(QObject *parent, const QString &id)
QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors); QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors);
// Assume every plugin is supported until addLink is called and we can get the actual list // Assume every plugin is supported until addLink is called and we can get the actual list
d->m_allPlugins = PluginLoader::instance()->getPluginList().toSet(); d->m_allPlugins = PluginLoader::instance()->getPluginSet();
d->m_supportedPlugins = d->m_allPlugins; d->m_supportedPlugins = d->m_allPlugins;
connect(this, &Device::pairingError, this, &warn); connect(this, &Device::pairingError, this, &warn);
@ -87,7 +87,7 @@ Device::Device(QObject *parent, const NetworkPacket &identityPacket, DeviceLink
, d(new Device::DevicePrivate(identityPacket.get<QString>(QStringLiteral("deviceId")))) , d(new Device::DevicePrivate(identityPacket.get<QString>(QStringLiteral("deviceId"))))
{ {
d->m_deviceName = identityPacket.get<QString>(QStringLiteral("deviceName")); d->m_deviceName = identityPacket.get<QString>(QStringLiteral("deviceName"));
d->m_allPlugins = PluginLoader::instance()->getPluginList().toSet(); d->m_allPlugins = PluginLoader::instance()->getPluginSet();
addLink(identityPacket, dl); addLink(identityPacket, dl);
@ -132,7 +132,7 @@ int Device::protocolVersion()
QStringList Device::supportedPlugins() const QStringList Device::supportedPlugins() const
{ {
return d->m_supportedPlugins.toList(); return QList(d->m_supportedPlugins.cbegin(), d->m_supportedPlugins.cend());
} }
bool Device::hasPlugin(const QString &name) const bool Device::hasPlugin(const QString &name) const
@ -158,8 +158,7 @@ void Device::reloadPlugins()
const KPluginMetaData service = loader->getPluginInfo(pluginName); const KPluginMetaData service = loader->getPluginInfo(pluginName);
const bool pluginEnabled = isPluginEnabled(pluginName); const bool pluginEnabled = isPluginEnabled(pluginName);
const QSet<QString> incomingCapabilities = const QStringList incomingCapabilities = service.rawData().value(QStringLiteral("X-KdeConnect-SupportedPacketType")).toVariant().toStringList();
KPluginMetaData::readStringList(service.rawData(), QStringLiteral("X-KdeConnect-SupportedPacketType")).toSet();
if (pluginEnabled) { if (pluginEnabled) {
KdeConnectPlugin *plugin = d->m_plugins.take(pluginName); KdeConnectPlugin *plugin = d->m_plugins.take(pluginName);
@ -291,14 +290,22 @@ void Device::addLink(const NetworkPacket &identityPacket, DeviceLink *link)
std::sort(d->m_deviceLinks.begin(), d->m_deviceLinks.end(), lessThan); std::sort(d->m_deviceLinks.begin(), d->m_deviceLinks.end(), lessThan);
const bool capabilitiesSupported = identityPacket.has(QStringLiteral("incomingCapabilities")) || identityPacket.has(QStringLiteral("outgoingCapabilities")); const bool capabilitiesSupported = identityPacket.has(QStringLiteral("incomingCapabilities")) || identityPacket.has(QStringLiteral("outgoingCapabilities"));
const auto toSet = [](const QStringList &l) {
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
return l.toSet();
#else
return QSet(l.begin(), l.end());
#endif
};
if (capabilitiesSupported) { if (capabilitiesSupported) {
const QSet<QString> outgoingCapabilities = identityPacket.get<QStringList>(QStringLiteral("outgoingCapabilities")).toSet(), const QSet<QString> outgoingCapabilities = toSet(identityPacket.get<QStringList>(QStringLiteral("outgoingCapabilities"))),
incomingCapabilities = identityPacket.get<QStringList>(QStringLiteral("incomingCapabilities")).toSet(); incomingCapabilities = toSet(identityPacket.get<QStringList>(QStringLiteral("incomingCapabilities")));
d->m_supportedPlugins = PluginLoader::instance()->pluginsForCapabilities(incomingCapabilities, outgoingCapabilities); d->m_supportedPlugins = PluginLoader::instance()->pluginsForCapabilities(incomingCapabilities, outgoingCapabilities);
// qDebug() << "new plugins for" << m_deviceName << m_supportedPlugins << incomingCapabilities << outgoingCapabilities; // qDebug() << "new plugins for" << m_deviceName << m_supportedPlugins << incomingCapabilities << outgoingCapabilities;
} else { } else {
d->m_supportedPlugins = PluginLoader::instance()->getPluginList().toSet(); d->m_supportedPlugins = PluginLoader::instance()->getPluginSet();
} }
reloadPlugins(); reloadPlugins();

View file

@ -22,7 +22,13 @@ KdeConnectPlugin::KdeConnectPlugin(QObject *parent, const QVariantList &args)
{ {
d->m_device = qvariant_cast<Device *>(args.at(0)); d->m_device = qvariant_cast<Device *>(args.at(0));
d->m_pluginName = args.at(1).toString(); d->m_pluginName = args.at(1).toString();
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
const QStringList cap = args.at(2).toStringList();
d->m_outgoingCapabilties = QSet(cap.begin(), cap.end());
#else
d->m_outgoingCapabilties = args.at(2).toStringList().toSet(); d->m_outgoingCapabilties = args.at(2).toStringList().toSet();
#endif
d->m_config = nullptr; d->m_config = nullptr;
d->iconName = args.at(3).toString(); d->iconName = args.at(3).toString();
} }