Changeset View
Changeset View
Standalone View
Standalone View
libs/editor/connectioneditorbase.cpp
Show All 33 Lines | |||||
34 | #include "settings/pppwidget.h" | 34 | #include "settings/pppwidget.h" | ||
35 | #include "settings/pppoewidget.h" | 35 | #include "settings/pppoewidget.h" | ||
36 | #include "settings/teamwidget.h" | 36 | #include "settings/teamwidget.h" | ||
37 | #include "settings/vlanwidget.h" | 37 | #include "settings/vlanwidget.h" | ||
38 | #include "settings/wificonnectionwidget.h" | 38 | #include "settings/wificonnectionwidget.h" | ||
39 | #include "settings/wifisecurity.h" | 39 | #include "settings/wifisecurity.h" | ||
40 | #include "settings/wiredconnectionwidget.h" | 40 | #include "settings/wiredconnectionwidget.h" | ||
41 | #include "settings/wiredsecurity.h" | 41 | #include "settings/wiredsecurity.h" | ||
42 | #include "settings/wireguardinterfacewidget.h" | ||||
42 | #include "vpnuiplugin.h" | 43 | #include "vpnuiplugin.h" | ||
43 | 44 | | |||
44 | #include <NetworkManagerQt/ActiveConnection> | 45 | #include <NetworkManagerQt/ActiveConnection> | ||
45 | #include <NetworkManagerQt/AdslSetting> | 46 | #include <NetworkManagerQt/AdslSetting> | ||
46 | #include <NetworkManagerQt/Connection> | 47 | #include <NetworkManagerQt/Connection> | ||
47 | #include <NetworkManagerQt/CdmaSetting> | 48 | #include <NetworkManagerQt/CdmaSetting> | ||
48 | #include <NetworkManagerQt/GenericTypes> | 49 | #include <NetworkManagerQt/GenericTypes> | ||
49 | #include <NetworkManagerQt/GsmSetting> | 50 | #include <NetworkManagerQt/GsmSetting> | ||
▲ Show 20 Lines • Show All 77 Lines • ▼ Show 20 Line(s) | 104 | for (SettingWidget *widget : m_settingWidgets) { | |||
127 | } | 128 | } | ||
128 | } | 129 | } | ||
129 | 130 | | |||
130 | // Set properties which are not returned from setting widgets | 131 | // Set properties which are not returned from setting widgets | ||
131 | NetworkManager::ConnectionSettings::Ptr connectionSettings = NetworkManager::ConnectionSettings::Ptr(new NetworkManager::ConnectionSettings(m_connection->connectionType())); | 132 | NetworkManager::ConnectionSettings::Ptr connectionSettings = NetworkManager::ConnectionSettings::Ptr(new NetworkManager::ConnectionSettings(m_connection->connectionType())); | ||
132 | 133 | | |||
133 | connectionSettings->fromMap(settings); | 134 | connectionSettings->fromMap(settings); | ||
134 | connectionSettings->setId(connectionName()); | 135 | connectionSettings->setId(connectionName()); | ||
136 | if (connectionSettings->connectionType() == NetworkManager::ConnectionSettings::WireGuard) | ||||
137 | connectionSettings->setInterfaceName(connectionName()); | ||||
135 | connectionSettings->setUuid(m_connection->uuid()); | 138 | connectionSettings->setUuid(m_connection->uuid()); | ||
136 | 139 | | |||
137 | if (connectionSettings->connectionType() == NetworkManager::ConnectionSettings::Wireless) { | 140 | if (connectionSettings->connectionType() == NetworkManager::ConnectionSettings::Wireless) { | ||
138 | NetworkManager::WirelessSecuritySetting::Ptr securitySetting = connectionSettings->setting(NetworkManager::Setting::WirelessSecurity).staticCast<NetworkManager::WirelessSecuritySetting>(); | 141 | NetworkManager::WirelessSecuritySetting::Ptr securitySetting = connectionSettings->setting(NetworkManager::Setting::WirelessSecurity).staticCast<NetworkManager::WirelessSecuritySetting>(); | ||
139 | NetworkManager::WirelessSetting::Ptr wirelessSetting = connectionSettings->setting(NetworkManager::Setting::Wireless).staticCast<NetworkManager::WirelessSetting>(); | 142 | NetworkManager::WirelessSetting::Ptr wirelessSetting = connectionSettings->setting(NetworkManager::Setting::Wireless).staticCast<NetworkManager::WirelessSetting>(); | ||
140 | 143 | | |||
141 | if (securitySetting && wirelessSetting) { | 144 | if (securitySetting && wirelessSetting) { | ||
142 | if (securitySetting->keyMgmt() != NetworkManager::WirelessSecuritySetting::WirelessSecuritySetting::Unknown) { | 145 | if (securitySetting->keyMgmt() != NetworkManager::WirelessSecuritySetting::WirelessSecuritySetting::Unknown) { | ||
143 | wirelessSetting->setSecurity("802-11-wireless-security"); | 146 | wirelessSetting->setSecurity("802-11-wireless-security"); | ||
144 | } | 147 | } | ||
145 | } | 148 | } | ||
146 | } | 149 | } | ||
147 | | ||||
148 | return connectionSettings->toMap(); | 150 | return connectionSettings->toMap(); | ||
jgrulich: Please remove | |||||
149 | } | 151 | } | ||
150 | 152 | | |||
151 | bool ConnectionEditorBase::isInitialized() const | 153 | bool ConnectionEditorBase::isInitialized() const | ||
152 | { | 154 | { | ||
153 | return m_initialized; | 155 | return m_initialized; | ||
154 | } | 156 | } | ||
155 | 157 | | |||
156 | bool ConnectionEditorBase::isValid() const | 158 | bool ConnectionEditorBase::isValid() const | ||
Show All 23 Lines | |||||
180 | { | 182 | { | ||
181 | const bool emptyConnection = m_connection->id().isEmpty(); | 183 | const bool emptyConnection = m_connection->id().isEmpty(); | ||
182 | const NetworkManager::ConnectionSettings::ConnectionType type = m_connection->connectionType(); | 184 | const NetworkManager::ConnectionSettings::ConnectionType type = m_connection->connectionType(); | ||
183 | 185 | | |||
184 | if (emptyConnection) { | 186 | if (emptyConnection) { | ||
185 | m_connection->addToPermissions(KUser().loginName(), QString()); | 187 | m_connection->addToPermissions(KUser().loginName(), QString()); | ||
186 | } | 188 | } | ||
187 | 189 | | |||
188 | // General configuration common to all connection types | 190 | // General configuration common to all connection types | ||
jgrulich: Please remove. | |||||
189 | ConnectionWidget *connectionWidget = new ConnectionWidget(m_connection); | 191 | ConnectionWidget *connectionWidget = new ConnectionWidget(m_connection); | ||
190 | addConnectionWidget(connectionWidget, i18nc("General", "General configuration")); | 192 | addConnectionWidget(connectionWidget, i18nc("General", "General configuration")); | ||
191 | 193 | | |||
192 | // Add the rest of widgets | 194 | // Add the rest of widgets | ||
193 | QString serviceType; | 195 | QString serviceType; | ||
194 | if (type == NetworkManager::ConnectionSettings::Wired) { | 196 | if (type == NetworkManager::ConnectionSettings::Wired) { | ||
195 | WiredConnectionWidget *wiredWidget = new WiredConnectionWidget(m_connection->setting(NetworkManager::Setting::Wired), this); | 197 | WiredConnectionWidget *wiredWidget = new WiredConnectionWidget(m_connection->setting(NetworkManager::Setting::Wired), this); | ||
196 | addSettingWidget(wiredWidget, i18n("Wired")); | 198 | addSettingWidget(wiredWidget, i18n("Wired")); | ||
Show All 38 Lines | 236 | } else if (type == NetworkManager::ConnectionSettings::Bridge) { // Bridge | |||
235 | BridgeWidget *bridgeWidget = new BridgeWidget(m_connection->uuid(), m_connection->setting(NetworkManager::Setting::Bridge), this); | 237 | BridgeWidget *bridgeWidget = new BridgeWidget(m_connection->uuid(), m_connection->setting(NetworkManager::Setting::Bridge), this); | ||
236 | addSettingWidget(bridgeWidget, i18n("Bridge")); | 238 | addSettingWidget(bridgeWidget, i18n("Bridge")); | ||
237 | } else if (type == NetworkManager::ConnectionSettings::Vlan) { // Vlan | 239 | } else if (type == NetworkManager::ConnectionSettings::Vlan) { // Vlan | ||
238 | VlanWidget *vlanWidget = new VlanWidget(m_connection->setting(NetworkManager::Setting::Vlan), this); | 240 | VlanWidget *vlanWidget = new VlanWidget(m_connection->setting(NetworkManager::Setting::Vlan), this); | ||
239 | addSettingWidget(vlanWidget, i18n("Vlan")); | 241 | addSettingWidget(vlanWidget, i18n("Vlan")); | ||
240 | } else if (type == NetworkManager::ConnectionSettings::Team) { // Team | 242 | } else if (type == NetworkManager::ConnectionSettings::Team) { // Team | ||
241 | TeamWidget *teamWidget = new TeamWidget(m_connection->uuid(), m_connection->setting(NetworkManager::Setting::Team), this); | 243 | TeamWidget *teamWidget = new TeamWidget(m_connection->uuid(), m_connection->setting(NetworkManager::Setting::Team), this); | ||
242 | addSettingWidget(teamWidget, i18n("Team")); | 244 | addSettingWidget(teamWidget, i18n("Team")); | ||
245 | } else if (type == NetworkManager::ConnectionSettings::WireGuard) { // WireGuard | ||||
246 | WireGuardInterfaceWidget *wireGuardInterfaceWidget = new WireGuardInterfaceWidget(m_connection->setting(NetworkManager::Setting::WireGuard), this); | ||||
247 | addSettingWidget(wireGuardInterfaceWidget, i18n("WireGuard Interface")); | ||||
243 | } else if (type == NetworkManager::ConnectionSettings::Vpn) { // VPN | 248 | } else if (type == NetworkManager::ConnectionSettings::Vpn) { // VPN | ||
244 | QString error; | 249 | QString error; | ||
245 | VpnUiPlugin *vpnPlugin = nullptr; | 250 | VpnUiPlugin *vpnPlugin = nullptr; | ||
246 | NetworkManager::VpnSetting::Ptr vpnSetting = | 251 | NetworkManager::VpnSetting::Ptr vpnSetting = | ||
247 | m_connection->setting(NetworkManager::Setting::Vpn).staticCast<NetworkManager::VpnSetting>(); | 252 | m_connection->setting(NetworkManager::Setting::Vpn).staticCast<NetworkManager::VpnSetting>(); | ||
248 | if (!vpnSetting) { | 253 | if (!vpnSetting) { | ||
249 | qCWarning(PLASMA_NM) << "Missing VPN setting!"; | 254 | qCWarning(PLASMA_NM) << "Missing VPN setting!"; | ||
jgrulich: Why the "2" at the end? | |||||
250 | } else { | 255 | } else { | ||
251 | serviceType = vpnSetting->serviceType(); | 256 | serviceType = vpnSetting->serviceType(); | ||
252 | vpnPlugin = KServiceTypeTrader::createInstanceFromQuery<VpnUiPlugin>(QString::fromLatin1("PlasmaNetworkManagement/VpnUiPlugin"), | 257 | vpnPlugin = KServiceTypeTrader::createInstanceFromQuery<VpnUiPlugin>(QString::fromLatin1("PlasmaNetworkManagement/VpnUiPlugin"), | ||
253 | QString::fromLatin1("[X-NetworkManager-Services]=='%1'").arg(serviceType), | 258 | QString::fromLatin1("[X-NetworkManager-Services]=='%1'").arg(serviceType), | ||
254 | this, QVariantList(), &error); | 259 | this, QVariantList(), &error); | ||
255 | if (vpnPlugin && error.isEmpty()) { | 260 | if (vpnPlugin && error.isEmpty()) { | ||
256 | const QString shortName = serviceType.section('.', -1); | 261 | const QString shortName = serviceType.section('.', -1); | ||
257 | SettingWidget *vpnWidget = vpnPlugin->widget(vpnSetting, this); | 262 | SettingWidget *vpnWidget = vpnPlugin->widget(vpnSetting, this); | ||
Show All 21 Lines | 283 | if ((type == NetworkManager::ConnectionSettings::Wired | |||
279 | || type == NetworkManager::ConnectionSettings::Wireless | 284 | || type == NetworkManager::ConnectionSettings::Wireless | ||
280 | || type == NetworkManager::ConnectionSettings::Infiniband | 285 | || type == NetworkManager::ConnectionSettings::Infiniband | ||
281 | || type == NetworkManager::ConnectionSettings::Team | 286 | || type == NetworkManager::ConnectionSettings::Team | ||
282 | || type == NetworkManager::ConnectionSettings::Cdma | 287 | || type == NetworkManager::ConnectionSettings::Cdma | ||
283 | || type == NetworkManager::ConnectionSettings::Gsm | 288 | || type == NetworkManager::ConnectionSettings::Gsm | ||
284 | || type == NetworkManager::ConnectionSettings::Bond | 289 | || type == NetworkManager::ConnectionSettings::Bond | ||
285 | || type == NetworkManager::ConnectionSettings::Bridge | 290 | || type == NetworkManager::ConnectionSettings::Bridge | ||
286 | || type == NetworkManager::ConnectionSettings::Vlan | 291 | || type == NetworkManager::ConnectionSettings::Vlan | ||
287 | || (type == NetworkManager::ConnectionSettings::Vpn && serviceType == QLatin1String("org.freedesktop.NetworkManager.openvpn")) | 292 | || type == NetworkManager::ConnectionSettings::WireGuard | ||
288 | || (type == NetworkManager::ConnectionSettings::Vpn && serviceType == QLatin1String("org.freedesktop.NetworkManager.wireguard"))) && !m_connection->isSlave()) { | 293 | || (type == NetworkManager::ConnectionSettings::Vpn && serviceType == QLatin1String("org.freedesktop.NetworkManager.openvpn"))) && !m_connection->isSlave()) { | ||
289 | IPv6Widget *ipv6Widget = new IPv6Widget(m_connection->setting(NetworkManager::Setting::Ipv6), this); | 294 | IPv6Widget *ipv6Widget = new IPv6Widget(m_connection->setting(NetworkManager::Setting::Ipv6), this); | ||
290 | addSettingWidget(ipv6Widget, i18n("IPv6")); | 295 | addSettingWidget(ipv6Widget, i18n("IPv6")); | ||
291 | } | 296 | } | ||
292 | 297 | | |||
293 | // Re-check validation | 298 | // Re-check validation | ||
294 | bool valid = true; | 299 | bool valid = true; | ||
295 | for (SettingWidget *widget : m_settingWidgets) { | 300 | for (SettingWidget *widget : m_settingWidgets) { | ||
296 | valid = valid && widget->isValid(); | 301 | valid = valid && widget->isValid(); | ||
▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Line(s) | 347 | } else if (m_connection->connectionType() == NetworkManager::ConnectionSettings::Pppoe) { | |||
348 | } | 353 | } | ||
349 | } else if (m_connection->connectionType() == NetworkManager::ConnectionSettings::Wired) { | 354 | } else if (m_connection->connectionType() == NetworkManager::ConnectionSettings::Wired) { | ||
350 | NetworkManager::Security8021xSetting::Ptr securitySetting = connection->settings()->setting(NetworkManager::Setting::Security8021x).staticCast<NetworkManager::Security8021xSetting>(); | 355 | NetworkManager::Security8021xSetting::Ptr securitySetting = connection->settings()->setting(NetworkManager::Setting::Security8021x).staticCast<NetworkManager::Security8021xSetting>(); | ||
351 | if (securitySetting && !securitySetting->needSecrets().isEmpty()) { | 356 | if (securitySetting && !securitySetting->needSecrets().isEmpty()) { | ||
352 | requiredSecrets = securitySetting->needSecrets(); | 357 | requiredSecrets = securitySetting->needSecrets(); | ||
353 | setting = securitySetting->toMap(); | 358 | setting = securitySetting->toMap(); | ||
354 | settingName = QLatin1String("802-1x"); | 359 | settingName = QLatin1String("802-1x"); | ||
355 | } | 360 | } | ||
361 | } else if (m_connection->connectionType() == NetworkManager::ConnectionSettings::WireGuard) { | ||||
362 | NetworkManager::WireGuardSetting::Ptr securitySetting = connection->settings()->setting(NetworkManager::Setting::WireGuard).staticCast<NetworkManager::WireGuardSetting>(); | ||||
363 | if (securitySetting && !securitySetting->needSecrets().isEmpty()) { | ||||
364 | requiredSecrets = securitySetting->needSecrets(); | ||||
365 | setting = securitySetting->toMap(); | ||||
366 | settingName = QLatin1String("wireguard"); | ||||
367 | } | ||||
356 | } else if (m_connection->connectionType() == NetworkManager::ConnectionSettings::Wireless) { | 368 | } else if (m_connection->connectionType() == NetworkManager::ConnectionSettings::Wireless) { | ||
357 | NetworkManager::WirelessSecuritySetting::Ptr wifiSecuritySetting = connection->settings()->setting(NetworkManager::Setting::WirelessSecurity).staticCast<NetworkManager::WirelessSecuritySetting>(); | 369 | NetworkManager::WirelessSecuritySetting::Ptr wifiSecuritySetting = connection->settings()->setting(NetworkManager::Setting::WirelessSecurity).staticCast<NetworkManager::WirelessSecuritySetting>(); | ||
358 | if (wifiSecuritySetting && | 370 | if (wifiSecuritySetting && | ||
359 | (wifiSecuritySetting->keyMgmt() == NetworkManager::WirelessSecuritySetting::WpaEap || | 371 | (wifiSecuritySetting->keyMgmt() == NetworkManager::WirelessSecuritySetting::WpaEap || | ||
360 | (wifiSecuritySetting->keyMgmt() == NetworkManager::WirelessSecuritySetting::WirelessSecuritySetting::Ieee8021x && | 372 | (wifiSecuritySetting->keyMgmt() == NetworkManager::WirelessSecuritySetting::WirelessSecuritySetting::Ieee8021x && | ||
361 | wifiSecuritySetting->authAlg() != NetworkManager::WirelessSecuritySetting::Leap))) { | 373 | wifiSecuritySetting->authAlg() != NetworkManager::WirelessSecuritySetting::Leap))) { | ||
362 | NetworkManager::Security8021xSetting::Ptr securitySetting = connection->settings()->setting(NetworkManager::Setting::Security8021x).staticCast<NetworkManager::Security8021xSetting>(); | 374 | NetworkManager::Security8021xSetting::Ptr securitySetting = connection->settings()->setting(NetworkManager::Setting::Security8021x).staticCast<NetworkManager::Security8021xSetting>(); | ||
363 | if (securitySetting && !securitySetting->needSecrets().isEmpty()) { | 375 | if (securitySetting && !securitySetting->needSecrets().isEmpty()) { | ||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Line(s) | |||||
428 | 440 | | |||
429 | void ConnectionEditorBase::replyFinished(QDBusPendingCallWatcher *watcher) | 441 | void ConnectionEditorBase::replyFinished(QDBusPendingCallWatcher *watcher) | ||
430 | { | 442 | { | ||
431 | QDBusPendingReply<NMVariantMapMap> reply = *watcher; | 443 | QDBusPendingReply<NMVariantMapMap> reply = *watcher; | ||
432 | const QString settingName = watcher->property("settingName").toString(); | 444 | const QString settingName = watcher->property("settingName").toString(); | ||
433 | if (reply.isValid()) { | 445 | if (reply.isValid()) { | ||
434 | NMVariantMapMap secrets = reply.argumentAt<0>(); | 446 | NMVariantMapMap secrets = reply.argumentAt<0>(); | ||
435 | for (const QString &key : secrets.keys()) { | 447 | for (const QString &key : secrets.keys()) { | ||
436 | if (key == settingName) { | 448 | if (key == settingName) { | ||
jgrulich: Please remove. | |||||
437 | NetworkManager::Setting::Ptr setting = m_connection->setting(NetworkManager::Setting::typeFromString(key)); | 449 | NetworkManager::Setting::Ptr setting = m_connection->setting(NetworkManager::Setting::typeFromString(key)); | ||
438 | if (setting) { | 450 | if (setting) { | ||
439 | setting->secretsFromMap(secrets.value(key)); | 451 | setting->secretsFromMap(secrets.value(key)); | ||
440 | for (SettingWidget *widget : m_settingWidgets) { | 452 | for (SettingWidget *widget : m_settingWidgets) { | ||
441 | const QString type = widget->type(); | 453 | const QString type = widget->type(); | ||
442 | if (type == settingName || | 454 | if (type == settingName || | ||
jgrulich: Please remove. | |||||
443 | (settingName == NetworkManager::Setting::typeAsString(NetworkManager::Setting::Security8021x) && | 455 | (settingName == NetworkManager::Setting::typeAsString(NetworkManager::Setting::Security8021x) && | ||
444 | type == NetworkManager::Setting::typeAsString(NetworkManager::Setting::WirelessSecurity))) { | 456 | type == NetworkManager::Setting::typeAsString(NetworkManager::Setting::WirelessSecurity))) { | ||
445 | widget->loadSecrets(setting); | 457 | widget->loadSecrets(setting); | ||
446 | } | 458 | } | ||
447 | } | 459 | } | ||
448 | } | 460 | } | ||
449 | } | 461 | } | ||
450 | } | 462 | } | ||
Show All 36 Lines |
Please remove