diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED Core DBus Network) add_definitions(${QT_DEFINITIONS}) +add_definitions(-DQT_NO_FOREACH) add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00) remove_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY) diff --git a/examples/createconnection/main.cpp b/examples/createconnection/main.cpp --- a/examples/createconnection/main.cpp +++ b/examples/createconnection/main.cpp @@ -29,12 +29,12 @@ QTextStream qin(stdin, QIODevice::ReadOnly); NetworkManager::ConnectionSettings *settings = new NetworkManager::ConnectionSettings(NetworkManager::ConnectionSettings::Wireless); - Device::List deviceList = NetworkManager::networkInterfaces(); + const Device::List deviceList = NetworkManager::networkInterfaces(); WirelessDevice::Ptr wifiDevice; // We have to find some wireless device - Q_FOREACH (Device::Ptr dev, deviceList) { + for (Device::Ptr dev : deviceList) { if (dev->type() == Device::Wifi) { wifiDevice = qobject_cast(dev); break; @@ -45,13 +45,13 @@ return 1; } - QStringList accessPointList = wifiDevice->accessPoints(); + const QStringList accessPointList = wifiDevice->accessPoints(); QString ssid; QString result; QString accessPointPath; // Check for available accesspoint - Q_FOREACH (const QString & ap, accessPointList) { + for (const QString &ap : accessPointList) { AccessPoint accessPoint(ap); // For simplification we use APs only with Wep security or without any security if (accessPoint.wpaFlags().testFlag(AccessPoint::PairWep40) || diff --git a/examples/main.cpp b/examples/main.cpp --- a/examples/main.cpp +++ b/examples/main.cpp @@ -33,11 +33,11 @@ { QTextStream qout(stdout, QIODevice::WriteOnly); - NetworkManager::Device::List list = NetworkManager::networkInterfaces(); + const NetworkManager::Device::List list = NetworkManager::networkInterfaces(); // List device configuration, not including vpn connections, which do not // have a real device tied to them. - Q_FOREACH (NetworkManager::Device::Ptr dev, list) { + for (NetworkManager::Device::Ptr &dev : list) { qout << "\n=====\n"; qout << dev->uni() << "\n"; qout << "type: " << typeAsString(dev->type()) << "\n"; @@ -99,11 +99,11 @@ } } - NetworkManager::Connection::List connections = dev->availableConnections(); + const NetworkManager::Connection::List connections = dev->availableConnections(); qout << "available connections: "; - Q_FOREACH (NetworkManager::Connection::Ptr con, connections) { + for (NetworkManager::Connection::Ptr &con : connections) { qout << "con"; NetworkManager::ConnectionSettings::Ptr settings = con->settings(); qout << "\"" << settings->id() << "\" "; diff --git a/src/settings/connectionsettings.cpp b/src/settings/connectionsettings.cpp --- a/src/settings/connectionsettings.cpp +++ b/src/settings/connectionsettings.cpp @@ -509,8 +509,8 @@ setInterfaceName(connectionSettings.value(QLatin1String(NM_SETTING_CONNECTION_INTERFACE_NAME)).toString()); } if (connectionSettings.contains(QLatin1String(NM_SETTING_CONNECTION_PERMISSIONS))) { - QStringList permissions = connectionSettings.value(QLatin1String(NM_SETTING_CONNECTION_PERMISSIONS)).toStringList(); - Q_FOREACH (const QString & permission, permissions) { + const QStringList permissions = connectionSettings.value(QLatin1String(NM_SETTING_CONNECTION_PERMISSIONS)).toStringList(); + for (const QString & permission : permissions) { #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) const QStringList split = permission.split(QLatin1Char(':'), QString::KeepEmptyParts); #else @@ -577,7 +577,8 @@ setStableId(connectionSettings.value(QLatin1String(NM_SETTING_CONNECTION_STABLE_ID)).toString()); } - Q_FOREACH (const Setting::Ptr & setting, settings()) { + const auto settingsList = settings(); + for (const Setting::Ptr &setting : settingsList) { if (map.contains(setting->name())) { setting->fromMap(map.value(setting->name())); setting->setInitialized(true); @@ -671,7 +672,8 @@ result.insert(QLatin1String(NM_SETTING_CONNECTION_SETTING_NAME), connectionSetting); - Q_FOREACH (const Setting::Ptr & setting, settings()) { + const auto settingsList = settings(); + for (const Setting::Ptr &setting : settingsList) { QVariantMap map = setting->toMap(); if (!setting->isNull()) { result.insert(setting->name(), map); @@ -970,7 +972,8 @@ NetworkManager::Setting::Ptr NetworkManager::ConnectionSettings::setting(Setting::SettingType type) const { - Q_FOREACH (const Setting::Ptr & setting, settings()) { + const auto settingsList = settings(); + for (const Setting::Ptr &setting : settingsList) { if (setting->type() == type) { return setting; } @@ -1016,7 +1019,8 @@ dbg.nospace() << NM_SETTING_CONNECTION_METERED << ": " << setting.metered() << '\n'; dbg.nospace() << NM_SETTING_CONNECTION_STABLE_ID << ": " << setting.stableId() << '\n'; dbg.nospace() << "===================\n"; - Q_FOREACH (const Setting::Ptr & settingPtr, setting.settings()) { + const auto settingsList = setting.settings(); + for (const Setting::Ptr &settingPtr : settingsList) { dbg.nospace() << settingPtr->typeAsString(settingPtr->type()).toUpper() << " SETTINGS\n"; dbg.nospace() << "---------------------------\n"; switch (settingPtr->type()) { diff --git a/src/settings/dcbsetting.cpp b/src/settings/dcbsetting.cpp --- a/src/settings/dcbsetting.cpp +++ b/src/settings/dcbsetting.cpp @@ -500,37 +500,43 @@ dbg.nospace() << NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS << ": " << setting.priorityFlowControlFlags() << '\n'; dbg.nospace() << NM_SETTING_DCB_PRIORITY_FLOW_CONTROL << ": "; - Q_FOREACH (const quint32 enabled, setting.priorityFlowControl()) { + const auto flowControlList = setting.priorityFlowControl(); + for (const quint32 enabled : flowControlList) { dbg.nospace() << enabled << ' '; } dbg.nospace() << '\n'; dbg.nospace() << NM_SETTING_DCB_PRIORITY_BANDWIDTH << ": "; - Q_FOREACH (const quint32 bandwidthPercent, setting.priorityBandwidth()) { + const auto bwList = setting.priorityBandwidth(); + for (const quint32 bandwidthPercent : bwList) { dbg.nospace() << bandwidthPercent << ' '; } dbg.nospace() << '\n'; dbg.nospace() << NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH << ": "; - Q_FOREACH (const quint32 bandwidthPercent, setting.priorityGroupBandwidth()) { + const auto gbwList = setting.priorityGroupBandwidth(); + for (const quint32 bandwidthPercent : gbwList) { dbg.nospace() << bandwidthPercent << ' '; } dbg.nospace() << '\n'; dbg.nospace() << NM_SETTING_DCB_PRIORITY_GROUP_ID << ": "; - Q_FOREACH (const quint32 groupId, setting.priorityGroupId()) { + const auto groupIds = setting.priorityGroupId(); + for (const quint32 groupId : groupIds) { dbg.nospace() << groupId << ' '; } dbg.nospace() << '\n'; dbg.nospace() << NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH << ": "; - Q_FOREACH (const quint32 strict, setting.priorityStrictBandwidth()) { + const auto strictList = setting.priorityStrictBandwidth(); + for (const quint32 strict : strictList) { dbg.nospace() << strict << ' '; } dbg.nospace() << '\n'; dbg.nospace() << NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS << ": "; - Q_FOREACH (const quint32 trafficClass, setting.priorityTrafficClass()) { + const auto trafficList = setting.priorityTrafficClass(); + for (const quint32 trafficClass : trafficList) { dbg.nospace() << trafficClass << ' '; } dbg.nospace() << '\n'; diff --git a/src/settings/security8021xsetting.cpp b/src/settings/security8021xsetting.cpp --- a/src/settings/security8021xsetting.cpp +++ b/src/settings/security8021xsetting.cpp @@ -619,7 +619,7 @@ if (setting.contains(QLatin1String(NM_SETTING_802_1X_EAP))) { const QStringList methods = setting.value(QLatin1String(NM_SETTING_802_1X_EAP)).toStringList(); QList eapMethods; - Q_FOREACH (const QString & method, methods) { + for (const QString &method : methods) { if (method == "leap") { eapMethods << EapMethodLeap; } else if (method == "md5") { @@ -828,7 +828,8 @@ if (!eapMethods().isEmpty()) { QStringList methods; - Q_FOREACH (const EapMethod & method, eapMethods()) { + const auto methodList = eapMethods(); + for (const EapMethod &method : methodList) { if (method == EapMethodLeap) { methods << "leap"; } else if (method == EapMethodMd5) { diff --git a/src/settings/tcsetting.cpp b/src/settings/tcsetting.cpp --- a/src/settings/tcsetting.cpp +++ b/src/settings/tcsetting.cpp @@ -105,14 +105,16 @@ dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; dbg.nospace() << NM_SETTING_TC_CONFIG_QDISCS << ": " << '\n'; - Q_FOREACH (const QVariantMap & qdisc, setting.qdiscs()) { + const NMVariantMapList qdiscList = setting.qdiscs(); + for (const QVariantMap &qdisc : qdiscList) { QVariantMap::const_iterator i = qdisc.constBegin(); while (i != qdisc.constEnd()) { dbg.nospace() << i.key() << ": " << i.value() << '\n'; } } dbg.nospace() << NM_SETTING_TC_CONFIG_TFILTERS << ": " << '\n'; - Q_FOREACH (const QVariantMap & tfilter, setting.tfilters()) { + const NMVariantMapList tfiltersList = setting.tfilters(); + for (const QVariantMap &tfilter : tfiltersList) { QVariantMap::const_iterator i = tfilter.constBegin(); while (i != tfilter.constEnd()) { dbg.nospace() << i.key() << ": " << i.value() << '\n'; diff --git a/src/settings/wirelesssecuritysetting.cpp b/src/settings/wirelesssecuritysetting.cpp --- a/src/settings/wirelesssecuritysetting.cpp +++ b/src/settings/wirelesssecuritysetting.cpp @@ -450,7 +450,7 @@ if (map.contains(QLatin1String(NM_SETTING_WIRELESS_SECURITY_PROTO))) { const QStringList strList = map.value(QLatin1String(NM_SETTING_WIRELESS_SECURITY_PROTO)).toStringList(); QList list; - Q_FOREACH (const QString & str, strList) { + for (const QString &str : strList) { if (str == "wpa") { list.push_back(Wpa); } else if (str == "rsn") { @@ -463,7 +463,7 @@ if (map.contains(QLatin1String(NM_SETTING_WIRELESS_SECURITY_PAIRWISE))) { const QStringList strList = map.value(QLatin1String(NM_SETTING_WIRELESS_SECURITY_PAIRWISE)).toStringList(); QList list; - Q_FOREACH (const QString & str, strList) { + for (const QString &str : strList) { if (str == "wep40") { list.push_back(Wep40); } else if (str == "wep104") { @@ -480,7 +480,7 @@ if (map.contains(QLatin1String(NM_SETTING_WIRELESS_SECURITY_GROUP))) { const QStringList strList = map.value(QLatin1String(NM_SETTING_WIRELESS_SECURITY_GROUP)).toStringList(); QList list; - Q_FOREACH (const QString & str, strList) { + for (const QString &str : strList) { if (str == "wep40") { list.push_back(Wep40); } else if (str == "wep104") { @@ -579,7 +579,8 @@ if (!proto().isEmpty()) { QStringList strList; - Q_FOREACH (const WpaProtocolVersion & version, proto()) { + const auto protoList = proto(); + for (const WpaProtocolVersion &version : protoList) { if (version == Wpa) { strList << "wpa"; } else if (version == Rsn) { @@ -591,7 +592,8 @@ if (!pairwise().isEmpty()) { QStringList strList; - Q_FOREACH (const WpaEncryptionCapabilities & capability, pairwise()) { + const auto encryptions = pairwise(); + for (const WpaEncryptionCapabilities &capability : encryptions) { if (capability == Wep40) { strList << "wep40"; } else if (capability == Wep104) { @@ -607,7 +609,8 @@ if (!group().isEmpty()) { QStringList strList; - Q_FOREACH (const WpaEncryptionCapabilities & capability, group()) { + const auto encryptions = group(); + for (const WpaEncryptionCapabilities &capability : encryptions) { if (capability == Wep40) { strList << "wep40"; } else if (capability == Wep104) { diff --git a/src/utils.cpp b/src/utils.cpp --- a/src/utils.cpp +++ b/src/utils.cpp @@ -48,14 +48,14 @@ QByteArray NetworkManager::macAddressFromString(const QString &s) { - QStringList macStringList = s.split(':'); + const QStringList macStringList = s.split(':'); // Q_ASSERT(macStringList.size() == 6); QByteArray ba; if (!s.isEmpty()) { ba.resize(6); int i = 0; - Q_FOREACH (const QString & macPart, macStringList) { + for (const QString &macPart : macStringList) { ba[i++] = macPart.toUInt(nullptr, 16); } } @@ -364,15 +364,17 @@ NetworkManager::WirelessSecurityType NetworkManager::findBestWirelessSecurity(NetworkManager::WirelessDevice::Capabilities interfaceCaps, bool haveAp, bool adHoc, NetworkManager::AccessPoint::Capabilities apCaps, NetworkManager::AccessPoint::WpaFlags apWpa, NetworkManager::AccessPoint::WpaFlags apRsn) { - QList types; - // The ordering of this list is a pragmatic combination of security level and popularity. // Therefore static WEP is before LEAP and Dynamic WEP because there is no way to detect // if an AP is capable of Dynamic WEP and showing Dynamic WEP first would confuse // Static WEP users. - types << NetworkManager::SAE << NetworkManager::Wpa2Eap << NetworkManager::Wpa2Psk << NetworkManager::WpaEap << NetworkManager::WpaPsk << NetworkManager::StaticWep << NetworkManager::DynamicWep << NetworkManager::Leap << NetworkManager::NoneSecurity; + const QList types = { NetworkManager::SAE, NetworkManager::Wpa2Eap, + NetworkManager::Wpa2Psk, NetworkManager::WpaEap, + NetworkManager::WpaPsk, NetworkManager::StaticWep, + NetworkManager::DynamicWep, NetworkManager::Leap, + NetworkManager::NoneSecurity }; - Q_FOREACH (NetworkManager::WirelessSecurityType type, types) { + for (NetworkManager::WirelessSecurityType type : types) { if (NetworkManager::securityIsValid(type, interfaceCaps, haveAp, adHoc, apCaps, apWpa, apRsn)) { return type; }