From 9e86b90bba8d373f530438192cb1622831e71e94 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Thu, 18 Jun 2020 19:31:54 +0200 Subject: Fix KDEBUG 423093 See https://bugs.kde.org/show_bug.cgi?id=423093 (Password is asked twice when connecting to a new WiFi network) Fixed in Frameworks 5.72.0 and Plasma 5.20.0, but annoying enough that I applied the patches that were made available. --- kde/patch/plasma-framework.patch | 4 + .../plasma-framework_KDEBUG_423093.patch | 29 ++ kde/patch/plasma-nm.patch | 10 - kde/patch/plasma-nm/plasma-nm-fixes.patch | 322 --------------------- .../plasma-nm/plasma-nm_modemmanager-qt_api.patch | 73 ----- kde/patch/plasma-nm/plasma-nm_networkmanager.patch | 17 -- kde/patch/plasma5-nm.patch | 14 + kde/patch/plasma5-nm/plasma-nm-fixes.patch | 322 +++++++++++++++++++++ .../plasma5-nm/plasma-nm_modemmanager-qt_api.patch | 73 +++++ .../plasma5-nm/plasma-nm_networkmanager.patch | 17 ++ .../plasma5-nm/plasma5-nm_KDEBUG_423093.patch | 31 ++ 11 files changed, 490 insertions(+), 422 deletions(-) create mode 100644 kde/patch/plasma-framework/plasma-framework_KDEBUG_423093.patch delete mode 100644 kde/patch/plasma-nm.patch delete mode 100644 kde/patch/plasma-nm/plasma-nm-fixes.patch delete mode 100644 kde/patch/plasma-nm/plasma-nm_modemmanager-qt_api.patch delete mode 100644 kde/patch/plasma-nm/plasma-nm_networkmanager.patch create mode 100644 kde/patch/plasma5-nm.patch create mode 100644 kde/patch/plasma5-nm/plasma-nm-fixes.patch create mode 100644 kde/patch/plasma5-nm/plasma-nm_modemmanager-qt_api.patch create mode 100644 kde/patch/plasma5-nm/plasma-nm_networkmanager.patch create mode 100644 kde/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch diff --git a/kde/patch/plasma-framework.patch b/kde/patch/plasma-framework.patch index c74f454..601f16c 100644 --- a/kde/patch/plasma-framework.patch +++ b/kde/patch/plasma-framework.patch @@ -6,3 +6,7 @@ # KDEBUG 359388; fixed in Frameworks 5.20. #cat $CWD/patch/plasma-framework/plasma-framework_KDEBUG_359388.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } +# Password is asked twice when connecting to a new WiFi network, +# KDEBUG 423093; fixed in Frameworks 5.72 and Plasma 5.20. +cat $CWD/patch/plasma-framework/plasma-framework_KDEBUG_423093.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + diff --git a/kde/patch/plasma-framework/plasma-framework_KDEBUG_423093.patch b/kde/patch/plasma-framework/plasma-framework_KDEBUG_423093.patch new file mode 100644 index 0000000..ba1b35a --- /dev/null +++ b/kde/patch/plasma-framework/plasma-framework_KDEBUG_423093.patch @@ -0,0 +1,29 @@ +From 7f9e189d87c040a952533713ff48d32872e0eadd Mon Sep 17 00:00:00 2001 +From: Nate Graham +Date: Sun, 7 Jun 2020 08:46:39 -0600 +Subject: [PATCH] Add property to access the ExpandableListItem loader's item + +--- + .../plasmaextracomponents/qml/ExpandableListItem.qml | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/declarativeimports/plasmaextracomponents/qml/ExpandableListItem.qml b/src/declarativeimports/plasmaextracomponents/qml/ExpandableListItem.qml +index d9d0662ee..ed21ab8e4 100644 +--- a/src/declarativeimports/plasmaextracomponents/qml/ExpandableListItem.qml ++++ b/src/declarativeimports/plasmaextracomponents/qml/ExpandableListItem.qml +@@ -261,6 +261,12 @@ Item { + */ + property var customExpandedViewContent: actionsListComponent + ++ /* ++ * The actual instance of the custom view content, if loaded ++ * @since 5.72 ++ */ ++ property alias customExpandedViewContentItem: expandedView.item ++ + /* + * isBusy: bool + * Whether or not to display a busy indicator on the list item. Set to true +-- +2.27.0 + diff --git a/kde/patch/plasma-nm.patch b/kde/patch/plasma-nm.patch deleted file mode 100644 index e86bcd1..0000000 --- a/kde/patch/plasma-nm.patch +++ /dev/null @@ -1,10 +0,0 @@ -# Patches that address reported bugs in plasma-nm 0.9.3.1: -#cat $CWD/patch/plasma-nm/plasma-nm-fixes.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } - -# The plasma-nm-5.2.2 needs a patch to work with the new modemmanager-qt in -# frameworks 5.9.0. This patch is no longer needed for plasma-nm-5.3.0: -#cat $CWD/patch/plasma-nm/plasma-nm_modemmanager-qt_api.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } - -# Fix compilation against NetworkManager 1.0.6: -cat $CWD/patch/plasma-nm/plasma-nm_networkmanager.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } - diff --git a/kde/patch/plasma-nm/plasma-nm-fixes.patch b/kde/patch/plasma-nm/plasma-nm-fixes.patch deleted file mode 100644 index d98448d..0000000 --- a/kde/patch/plasma-nm/plasma-nm-fixes.patch +++ /dev/null @@ -1,322 +0,0 @@ -diff --git a/applet/declarative/contents/ui/main.qml b/applet/declarative/contents/ui/main.qml -index 8ea88cc..aa81707 100644 ---- a/applet/declarative/contents/ui/main.qml -+++ b/applet/declarative/contents/ui/main.qml -@@ -19,6 +19,7 @@ - */ - - import QtQuick 1.1 -+import org.kde.plasma.extras 0.1 as PlasmaExtras - import org.kde.plasma.components 0.1 as PlasmaComponents - import org.kde.plasma.core 0.1 as PlasmaCore - import org.kde.networkmanagement 0.1 as PlasmaNM -@@ -77,16 +78,7 @@ Item { - anchors.fill: parent - } - -- ListView { -- id: connectionView; -- -- property bool expandedItem: false; -- property string previouslyExpandedItem: ""; -- -- property bool activeExpanded: true; -- property bool previousExpanded: true; -- property bool unknownExpanded: true; -- -+ PlasmaExtras.ScrollArea { - anchors { - left: parent.left; - right: parent.right; -@@ -95,50 +87,64 @@ Item { - topMargin: padding.margins.top; - bottomMargin: padding.margins.bottom - } -- clip: true -- model: connectionSortModel; -- currentIndex: -1; -- interactive: true; -- boundsBehavior: Flickable.StopAtBounds; -- section.property: "itemSection"; -- section.delegate: SectionHeader { -- onHideSection: { -- if (section == i18n("Active connections")) { -- connectionView.activeExpanded = false; -- } else if (section == i18n("Previous connections")) { -- connectionView.previousExpanded = false; -- } else { -- connectionView.unknownExpanded = false; -+ -+ ListView { -+ id: connectionView; -+ -+ property bool expandedItem: false; -+ property string previouslyExpandedItem: ""; -+ -+ property bool activeExpanded: true; -+ property bool previousExpanded: true; -+ property bool unknownExpanded: true; -+ -+ anchors.fill: parent; -+ -+ clip: true -+ model: connectionSortModel; -+ currentIndex: -1; -+ interactive: true; -+ boundsBehavior: Flickable.StopAtBounds; -+ section.property: "itemSection"; -+ section.delegate: SectionHeader { -+ onHideSection: { -+ if (section == i18n("Active connections")) { -+ connectionView.activeExpanded = false; -+ } else if (section == i18n("Previous connections")) { -+ connectionView.previousExpanded = false; -+ } else { -+ connectionView.unknownExpanded = false; -+ } - } -- } - -- onShowSection: { -- if (section == i18n("Active connections")) { -- connectionView.activeExpanded = true; -- } else if (section == i18n("Previous connections")) { -- connectionView.previousExpanded = true; -- } else { -- connectionView.unknownExpanded = true; -+ onShowSection: { -+ if (section == i18n("Active connections")) { -+ connectionView.activeExpanded = true; -+ } else if (section == i18n("Previous connections")) { -+ connectionView.previousExpanded = true; -+ } else { -+ connectionView.unknownExpanded = true; -+ } - } - } -- } - -- delegate: ConnectionItem { -- expanded: connectionView.expandedItem && connectionView.previouslyExpandedItem == itemUni; -- onItemExpanded: { -- if (itemExpanded) { -- connectionView.expandedItem = true; -- connectionView.previouslyExpandedItem = itemUni;; -- connectionView.currentIndex = index; -- } else { -- connectionView.expandedItem = false; -- connectionView.previouslyExpandedItem = ""; -+ delegate: ConnectionItem { -+ expanded: connectionView.expandedItem && connectionView.previouslyExpandedItem == itemUni; -+ onItemExpanded: { -+ if (itemExpanded) { -+ connectionView.expandedItem = true; -+ connectionView.previouslyExpandedItem = itemUni;; -+ connectionView.currentIndex = index; -+ } else { -+ connectionView.expandedItem = false; -+ connectionView.previouslyExpandedItem = ""; -+ } - } -- } - -- ListView.onRemove: { -- if (ListView.isCurrentItem) { -- connectionView.previouslyExpandedItem = ""; -+ ListView.onRemove: { -+ if (ListView.isCurrentItem) { -+ connectionView.previouslyExpandedItem = ""; -+ } - } - } - } -diff --git a/declarative-plugins/applet/connectionicon.cpp b/declarative-plugins/applet/connectionicon.cpp -index c3f8540..76bdca0 100644 ---- a/declarative-plugins/applet/connectionicon.cpp -+++ b/declarative-plugins/applet/connectionicon.cpp -@@ -166,12 +166,24 @@ void ConnectionIcon::setIcons() - - foreach (const NetworkManager::ActiveConnection::Ptr & active, actives) { - if (((active->default4() || active->default6()) && active->state() == NetworkManager::ActiveConnection::Activated) || !defaultRouteExists) { -+ NetworkManager::ActiveConnection::Ptr activeConnection; -+ if (active->vpn()) { -+ NetworkManager::ActiveConnection::Ptr activeTmp; -+ activeTmp = NetworkManager::findActiveConnection(active->specificObject()); -+ if (activeTmp) { -+ activeConnection = activeTmp; -+ } - -- if (active->vpn() || active->devices().isEmpty()) { -+ vpnFound = true; -+ NMAppletDebug() << "Emit signal setHoverIcon(object-locked)"; -+ Q_EMIT setHoverIcon("object-locked"); -+ } else { -+ activeConnection = active; -+ } -+ if (activeConnection->devices().isEmpty()) { - continue; - } -- -- NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(active->devices().first()); -+ NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(activeConnection->devices().first()); - if (device) { - NetworkManager::Device::Type type = device->type(); - -@@ -184,7 +196,7 @@ void ConnectionIcon::setIcons() - setWirelessIconForSignalStrength(100); - connectionFound = true; - } else { -- NetworkManager::AccessPoint::Ptr ap = wifiDevice->findAccessPoint(active->specificObject()); -+ NetworkManager::AccessPoint::Ptr ap = wifiDevice->findAccessPoint(activeConnection->specificObject()); - if (ap) { - setWirelessIcon(device, ap->ssid()); - connectionFound = true; -@@ -222,9 +234,7 @@ void ConnectionIcon::setIcons() - } - } - } -- } -- -- if (active->vpn() && active->state() == NetworkManager::ActiveConnection::Activated) { -+ } else if (active->vpn() && active->state() == NetworkManager::ActiveConnection::Activated) { - vpnFound = true; - NMAppletDebug() << "Emit signal setHoverIcon(object-locked)"; - Q_EMIT setHoverIcon("object-locked"); -diff --git a/declarative-plugins/applet/networkstatus.cpp b/declarative-plugins/applet/networkstatus.cpp -index d63066d..8149da9 100644 ---- a/declarative-plugins/applet/networkstatus.cpp -+++ b/declarative-plugins/applet/networkstatus.cpp -@@ -129,8 +129,8 @@ void NetworkStatus::changeTooltip() - } - - QString tooltip = ""; -- QString format = "%1 - %2
%3

"; -- QString formatDefault = "%1 - %2
%3

"; -+ const QString format = "%1 - %2
%3

"; -+ const QString formatDefault = "%1 - %2
%3

"; - - foreach (const NetworkManager::ActiveConnection::Ptr & active, NetworkManager::activeConnections()) { - if (!active->devices().isEmpty()) { -@@ -145,7 +145,6 @@ void NetworkStatus::changeTooltip() - } else { - devName = device->ipInterfaceName(); - } --// conType = NetworkManager::ConnectionSettings::typeAsString(active->connection()->settings()->connectionType()); - if (active->vpn()) { - conType = i18n("VPN Connection"); - } else { -diff --git a/declarative-plugins/model/model.cpp b/declarative-plugins/model/model.cpp -index 1b3f4c3..bb88362 100644 ---- a/declarative-plugins/model/model.cpp -+++ b/declarative-plugins/model/model.cpp -@@ -230,7 +230,7 @@ void Model::addConnection(const QString& connection, const QString& device) - { - NetworkManager::Connection::Ptr con = NetworkManager::findConnection(connection); - -- if (con->settings()->isSlave()) { -+ if (con->settings()->isSlave() || con->name().isEmpty() || con->uuid().isEmpty()) { - return; - } - -@@ -395,7 +395,11 @@ void Model::removeWirelessNetwork(const QString& ssid, const QString& device) - if (wirelessDevice) { - accessPoint = wirelessDevice->findAccessPoint(item->specificPath()); - } -- if (accessPoint && accessPoint->mode() == NetworkManager::AccessPoint::Adhoc && -+ -+ // When accesspoint in ad-hoc mode dissapears, we should remove the item only when there is no connection. Similar case is when -+ // a wireless device is in AP mode, but in this case there could be only one visible AP and this should always be associated with some connection. -+ if (accessPoint && ((accessPoint->mode() == NetworkManager::AccessPoint::Adhoc && !item->connectionPath().isEmpty()) || -+ wirelessDevice->mode() == NetworkManager::WirelessDevice::ApMode) && - NetworkManager::isWirelessEnabled() && NetworkManager::isWirelessHardwareEnabled()) { - item->setWirelessNetwork(QString()); - if (updateItem(item)) { -diff --git a/declarative-plugins/model/modelitem.cpp b/declarative-plugins/model/modelitem.cpp -index 9a5931f..58d5c42 100644 ---- a/declarative-plugins/model/modelitem.cpp -+++ b/declarative-plugins/model/modelitem.cpp -@@ -151,6 +151,17 @@ QString ModelItem::icon() const - break; - case NetworkManager::ConnectionSettings::Wireless: - if (m_signal == 0 ) { -+ if (!m_connectionPath.isEmpty()) { -+ NetworkManager::Connection::Ptr con = NetworkManager::findConnection(m_connectionPath); -+ if (con) { -+ NetworkManager::WirelessSetting::Ptr wirelessSetting; -+ wirelessSetting = con->settings()->setting(NetworkManager::Setting::Wireless).dynamicCast(); -+ if (wirelessSetting && (wirelessSetting->mode() == NetworkManager::WirelessSetting::Adhoc || -+ wirelessSetting->mode() == NetworkManager::WirelessSetting::Ap)) { -+ return "network-wireless-100"; -+ } -+ } -+ } - return "network-wireless-00"; - } else if (m_signal < 20) { - return "network-wireless-20"; -diff --git a/kded/bluetoothmonitor.cpp b/kded/bluetoothmonitor.cpp -index 2221d09..5d0218b 100644 ---- a/kded/bluetoothmonitor.cpp -+++ b/kded/bluetoothmonitor.cpp -@@ -220,6 +220,7 @@ void BluetoothMonitor::init() - - mDunDevice = reply.value(); - } -+ - #if WITH_MODEMMANAGER_SUPPORT - void BluetoothMonitor::modemAdded(const QString &udi) - { -diff --git a/lib/editor/bridgewidget.cpp b/lib/editor/bridgewidget.cpp -index 8815eb2..95344c4 100644 ---- a/lib/editor/bridgewidget.cpp -+++ b/lib/editor/bridgewidget.cpp -@@ -216,5 +216,5 @@ void BridgeWidget::populateBridges() - - bool BridgeWidget::isValid() const - { -- return !m_ui->ifaceName->text().isEmpty() && m_ui->bridges->count() > 0; -+ return !m_ui->ifaceName->text().isEmpty(); - } -diff --git a/vpn/vpnc/vpnc.cpp b/vpn/vpnc/vpnc.cpp -index d4a511d..645249d 100644 ---- a/vpn/vpnc/vpnc.cpp -+++ b/vpn/vpnc/vpnc.cpp -@@ -145,7 +145,6 @@ NMVariantMapMap VpncUiPlugin::importConnectionSettings(const QString &fileName) - KConfigGroup cg(config, "main"); // Keys&Values are stored under [main] - if (cg.exists()) { - // Setup cisco-decrypt binary to decrypt the passwords -- QStringList decrArgs; - const QString ciscoDecryptBinary = KStandardDirs::findExe("cisco-decrypt", QString::fromLocal8Bit(qgetenv("PATH")) + ":/usr/lib/vpnc"); - if (ciscoDecryptBinary.isEmpty()) { - mErrorMessage = i18n("Needed executable cisco-decrypt could not be found."); -@@ -174,11 +173,11 @@ NMVariantMapMap VpncUiPlugin::importConnectionSettings(const QString &fileName) - } - else if (!decrPlugin->readStringKeyValue(cg,"enc_UserPassword").isEmpty() && !ciscoDecryptBinary.isEmpty()) { - // Decrypt the password and insert into map -- decrArgs.clear(); -- decrArgs << decrPlugin->readStringKeyValue(cg,"enc_UserPassword"); -- decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary, decrArgs); -+ decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary); - decrPlugin->ciscoDecrypt->start(); -- if (decrPlugin->ciscoDecrypt->waitForStarted() && decrPlugin->ciscoDecrypt->waitForFinished()) { -+ decrPlugin->ciscoDecrypt->waitForStarted(); -+ decrPlugin->ciscoDecrypt->write(decrPlugin->readStringKeyValue(cg,"enc_UserPassword").toUtf8()); -+ if (decrPlugin->ciscoDecrypt->waitForFinished()) { - secretData.insert(NM_VPNC_KEY_XAUTH_PASSWORD, decrPlugin->decryptedPasswd); - } - } -@@ -203,11 +202,11 @@ NMVariantMapMap VpncUiPlugin::importConnectionSettings(const QString &fileName) - } - else if (!decrPlugin->readStringKeyValue(cg,"enc_GroupPwd").isEmpty() && !ciscoDecryptBinary.isEmpty()) { - //Decrypt the password and insert into map -- decrArgs.clear(); -- decrArgs << decrPlugin->readStringKeyValue(cg,"enc_GroupPwd"); -- decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary, decrArgs); -+ decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary); - decrPlugin->ciscoDecrypt->start(); -- if (decrPlugin->ciscoDecrypt->waitForStarted() && decrPlugin->ciscoDecrypt->waitForFinished()) { -+ decrPlugin->ciscoDecrypt->waitForStarted(); -+ decrPlugin->ciscoDecrypt->write(decrPlugin->readStringKeyValue(cg,"enc_GroupPwd").toUtf8()); -+ if (decrPlugin->ciscoDecrypt->waitForFinished()) { - secretData.insert(NM_VPNC_KEY_SECRET, decrPlugin->decryptedPasswd); - data.insert(NM_VPNC_KEY_SECRET"-flags", QString::number(NetworkManager::Setting::AgentOwned)); - } diff --git a/kde/patch/plasma-nm/plasma-nm_modemmanager-qt_api.patch b/kde/patch/plasma-nm/plasma-nm_modemmanager-qt_api.patch deleted file mode 100644 index 4c59f4c..0000000 --- a/kde/patch/plasma-nm/plasma-nm_modemmanager-qt_api.patch +++ /dev/null @@ -1,73 +0,0 @@ -From: Jan Grulich -Date: Tue, 31 Mar 2015 12:37:16 +0000 -Subject: Adapt to modemmanager-qt API changes -X-Git-Url: http://quickgit.kde.org/?p=plasma-nm.git&a=commitdiff&h=4d72cb7966edda33bc72c77fc2a126844fc1f134 ---- -Adapt to modemmanager-qt API changes ---- - - ---- a/libs/models/networkmodel.cpp -+++ b/libs/models/networkmodel.cpp -@@ -246,10 +246,10 @@ - if (modem->hasInterface(ModemManager::ModemDevice::ModemInterface)) { - ModemManager::Modem::Ptr modemNetwork = modem->interface(ModemManager::ModemDevice::ModemInterface).objectCast(); - if (modemNetwork) { -- connect(modemNetwork.data(), SIGNAL(signalQualityChanged(uint)), -- SLOT(gsmNetworkSignalQualityChanged(uint)), Qt::UniqueConnection); -- connect(modemNetwork.data(), SIGNAL(accessTechnologyChanged(ModemManager::Modem::AccessTechnologies)), -- SLOT(gsmNetworkAccessTechnologyChanged(ModemManager::Modem::AccessTechnologies)), Qt::UniqueConnection); -+ connect(modemNetwork.data(), SIGNAL(signalQualityChanged(ModemManager::SignalQualityPair)), -+ SLOT(gsmNetworkSignalQualityChanged(ModemManager::SignalQualityPair)), Qt::UniqueConnection); -+ connect(modemNetwork.data(), SIGNAL(accessTechnologiesChanged(QFlags)), -+ SLOT(gsmNetworkAccessTechnologiesChanged(QFlags)), Qt::UniqueConnection); - connect(modemNetwork.data(), SIGNAL(currentModesChanged()), - SLOT(gsmNetworkCurrentModesChanged()), Qt::UniqueConnection); - } -@@ -847,9 +847,9 @@ - } - - #if WITH_MODEMMANAGER_SUPPORT --void NetworkModel::gsmNetworkAccessTechnologyChanged(ModemManager::Modem::AccessTechnologies technology) --{ -- Q_UNUSED(technology); -+void NetworkModel::gsmNetworkAccessTechnologiesChanged(QFlags accessTechnologies) -+{ -+ Q_UNUSED(accessTechnologies); - ModemManager::Modem * gsmNetwork = qobject_cast(sender()); - if (gsmNetwork) { - Q_FOREACH (const NetworkManager::Device::Ptr & dev, NetworkManager::networkInterfaces()) { -@@ -893,7 +893,7 @@ - } - } - --void NetworkModel::gsmNetworkSignalQualityChanged(uint signal) -+void NetworkModel::gsmNetworkSignalQualityChanged(const ModemManager::SignalQualityPair &signalQuality) - { - ModemManager::Modem * gsmNetwork = qobject_cast(sender()); - if (gsmNetwork) { -@@ -905,7 +905,7 @@ - ModemManager::Modem::Ptr modemNetwork = modem->interface(ModemManager::ModemDevice::ModemInterface).objectCast(); - if (modemNetwork && modemNetwork->device() == gsmNetwork->device()) { - Q_FOREACH (NetworkModelItem * item, m_list.returnItems(NetworkItemsList::Device, dev->uni())) { -- item->setSignal(signal); -+ item->setSignal(signalQuality.signal); - updateItem(item); - } - } - ---- a/libs/models/networkmodel.h -+++ b/libs/models/networkmodel.h -@@ -94,9 +94,9 @@ - void deviceRemoved(const QString& device); - void deviceStateChanged(NetworkManager::Device::State state, NetworkManager::Device::State oldState, NetworkManager::Device::StateChangeReason reason); - #if WITH_MODEMMANAGER_SUPPORT -- void gsmNetworkAccessTechnologyChanged(ModemManager::Modem::AccessTechnologies technology); -+ void gsmNetworkAccessTechnologiesChanged(QFlags accessTechnologies); - void gsmNetworkCurrentModesChanged(); -- void gsmNetworkSignalQualityChanged(uint signal); -+ void gsmNetworkSignalQualityChanged(const ModemManager::SignalQualityPair &signalQuality); - #endif - void ipConfigChanged(); - void ipInterfaceChanged(); - diff --git a/kde/patch/plasma-nm/plasma-nm_networkmanager.patch b/kde/patch/plasma-nm/plasma-nm_networkmanager.patch deleted file mode 100644 index e635954..0000000 --- a/kde/patch/plasma-nm/plasma-nm_networkmanager.patch +++ /dev/null @@ -1,17 +0,0 @@ -Patch taken from gentoo: -https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd7dad9ddb35e1e3e68ad43176c5e48fbb25338d - -Fixes build with networkmanager-1.0.6. - -Triggered by http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?h=nm-1-0&id=6f616d4c4b04d5478f60d0311317bc84c5459ea4. - ---- CMakeLists.txt -+++ CMakeLists.txt -@@ -49,6 +49,7 @@ - ${CMAKE_CURRENT_SOURCE_DIR}/libs - ${CMAKE_CURRENT_SOURCE_DIR}/libs/editor/ - ${NETWORKMANAGER_INCLUDE_DIRS} -+ ${NM-UTIL_INCLUDE_DIRS} - ${NETWORKMANAGERQT_INCLUDE_DIRS} - ${KDE4_INCLUDES}) - diff --git a/kde/patch/plasma5-nm.patch b/kde/patch/plasma5-nm.patch new file mode 100644 index 0000000..deb03e5 --- /dev/null +++ b/kde/patch/plasma5-nm.patch @@ -0,0 +1,14 @@ +# Patches that address reported bugs in plasma-nm 0.9.3.1: +#cat $CWD/patch/plasma-nm/plasma-nm-fixes.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + +# The plasma-nm-5.2.2 needs a patch to work with the new modemmanager-qt in +# frameworks 5.9.0. This patch is no longer needed for plasma-nm-5.3.0: +#cat $CWD/patch/plasma-nm/plasma-nm_modemmanager-qt_api.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + +# Fix compilation against NetworkManager 1.0.6: +#cat $CWD/patch/plasma-nm/plasma-nm_networkmanager.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + +# Password is asked twice when connecting to a new WiFi network, +# KDEBUG 423093; fixed in Frameworks 5.72 and Plasma 5.20. +cat $CWD/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + diff --git a/kde/patch/plasma5-nm/plasma-nm-fixes.patch b/kde/patch/plasma5-nm/plasma-nm-fixes.patch new file mode 100644 index 0000000..d98448d --- /dev/null +++ b/kde/patch/plasma5-nm/plasma-nm-fixes.patch @@ -0,0 +1,322 @@ +diff --git a/applet/declarative/contents/ui/main.qml b/applet/declarative/contents/ui/main.qml +index 8ea88cc..aa81707 100644 +--- a/applet/declarative/contents/ui/main.qml ++++ b/applet/declarative/contents/ui/main.qml +@@ -19,6 +19,7 @@ + */ + + import QtQuick 1.1 ++import org.kde.plasma.extras 0.1 as PlasmaExtras + import org.kde.plasma.components 0.1 as PlasmaComponents + import org.kde.plasma.core 0.1 as PlasmaCore + import org.kde.networkmanagement 0.1 as PlasmaNM +@@ -77,16 +78,7 @@ Item { + anchors.fill: parent + } + +- ListView { +- id: connectionView; +- +- property bool expandedItem: false; +- property string previouslyExpandedItem: ""; +- +- property bool activeExpanded: true; +- property bool previousExpanded: true; +- property bool unknownExpanded: true; +- ++ PlasmaExtras.ScrollArea { + anchors { + left: parent.left; + right: parent.right; +@@ -95,50 +87,64 @@ Item { + topMargin: padding.margins.top; + bottomMargin: padding.margins.bottom + } +- clip: true +- model: connectionSortModel; +- currentIndex: -1; +- interactive: true; +- boundsBehavior: Flickable.StopAtBounds; +- section.property: "itemSection"; +- section.delegate: SectionHeader { +- onHideSection: { +- if (section == i18n("Active connections")) { +- connectionView.activeExpanded = false; +- } else if (section == i18n("Previous connections")) { +- connectionView.previousExpanded = false; +- } else { +- connectionView.unknownExpanded = false; ++ ++ ListView { ++ id: connectionView; ++ ++ property bool expandedItem: false; ++ property string previouslyExpandedItem: ""; ++ ++ property bool activeExpanded: true; ++ property bool previousExpanded: true; ++ property bool unknownExpanded: true; ++ ++ anchors.fill: parent; ++ ++ clip: true ++ model: connectionSortModel; ++ currentIndex: -1; ++ interactive: true; ++ boundsBehavior: Flickable.StopAtBounds; ++ section.property: "itemSection"; ++ section.delegate: SectionHeader { ++ onHideSection: { ++ if (section == i18n("Active connections")) { ++ connectionView.activeExpanded = false; ++ } else if (section == i18n("Previous connections")) { ++ connectionView.previousExpanded = false; ++ } else { ++ connectionView.unknownExpanded = false; ++ } + } +- } + +- onShowSection: { +- if (section == i18n("Active connections")) { +- connectionView.activeExpanded = true; +- } else if (section == i18n("Previous connections")) { +- connectionView.previousExpanded = true; +- } else { +- connectionView.unknownExpanded = true; ++ onShowSection: { ++ if (section == i18n("Active connections")) { ++ connectionView.activeExpanded = true; ++ } else if (section == i18n("Previous connections")) { ++ connectionView.previousExpanded = true; ++ } else { ++ connectionView.unknownExpanded = true; ++ } + } + } +- } + +- delegate: ConnectionItem { +- expanded: connectionView.expandedItem && connectionView.previouslyExpandedItem == itemUni; +- onItemExpanded: { +- if (itemExpanded) { +- connectionView.expandedItem = true; +- connectionView.previouslyExpandedItem = itemUni;; +- connectionView.currentIndex = index; +- } else { +- connectionView.expandedItem = false; +- connectionView.previouslyExpandedItem = ""; ++ delegate: ConnectionItem { ++ expanded: connectionView.expandedItem && connectionView.previouslyExpandedItem == itemUni; ++ onItemExpanded: { ++ if (itemExpanded) { ++ connectionView.expandedItem = true; ++ connectionView.previouslyExpandedItem = itemUni;; ++ connectionView.currentIndex = index; ++ } else { ++ connectionView.expandedItem = false; ++ connectionView.previouslyExpandedItem = ""; ++ } + } +- } + +- ListView.onRemove: { +- if (ListView.isCurrentItem) { +- connectionView.previouslyExpandedItem = ""; ++ ListView.onRemove: { ++ if (ListView.isCurrentItem) { ++ connectionView.previouslyExpandedItem = ""; ++ } + } + } + } +diff --git a/declarative-plugins/applet/connectionicon.cpp b/declarative-plugins/applet/connectionicon.cpp +index c3f8540..76bdca0 100644 +--- a/declarative-plugins/applet/connectionicon.cpp ++++ b/declarative-plugins/applet/connectionicon.cpp +@@ -166,12 +166,24 @@ void ConnectionIcon::setIcons() + + foreach (const NetworkManager::ActiveConnection::Ptr & active, actives) { + if (((active->default4() || active->default6()) && active->state() == NetworkManager::ActiveConnection::Activated) || !defaultRouteExists) { ++ NetworkManager::ActiveConnection::Ptr activeConnection; ++ if (active->vpn()) { ++ NetworkManager::ActiveConnection::Ptr activeTmp; ++ activeTmp = NetworkManager::findActiveConnection(active->specificObject()); ++ if (activeTmp) { ++ activeConnection = activeTmp; ++ } + +- if (active->vpn() || active->devices().isEmpty()) { ++ vpnFound = true; ++ NMAppletDebug() << "Emit signal setHoverIcon(object-locked)"; ++ Q_EMIT setHoverIcon("object-locked"); ++ } else { ++ activeConnection = active; ++ } ++ if (activeConnection->devices().isEmpty()) { + continue; + } +- +- NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(active->devices().first()); ++ NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(activeConnection->devices().first()); + if (device) { + NetworkManager::Device::Type type = device->type(); + +@@ -184,7 +196,7 @@ void ConnectionIcon::setIcons() + setWirelessIconForSignalStrength(100); + connectionFound = true; + } else { +- NetworkManager::AccessPoint::Ptr ap = wifiDevice->findAccessPoint(active->specificObject()); ++ NetworkManager::AccessPoint::Ptr ap = wifiDevice->findAccessPoint(activeConnection->specificObject()); + if (ap) { + setWirelessIcon(device, ap->ssid()); + connectionFound = true; +@@ -222,9 +234,7 @@ void ConnectionIcon::setIcons() + } + } + } +- } +- +- if (active->vpn() && active->state() == NetworkManager::ActiveConnection::Activated) { ++ } else if (active->vpn() && active->state() == NetworkManager::ActiveConnection::Activated) { + vpnFound = true; + NMAppletDebug() << "Emit signal setHoverIcon(object-locked)"; + Q_EMIT setHoverIcon("object-locked"); +diff --git a/declarative-plugins/applet/networkstatus.cpp b/declarative-plugins/applet/networkstatus.cpp +index d63066d..8149da9 100644 +--- a/declarative-plugins/applet/networkstatus.cpp ++++ b/declarative-plugins/applet/networkstatus.cpp +@@ -129,8 +129,8 @@ void NetworkStatus::changeTooltip() + } + + QString tooltip = ""; +- QString format = "%1 - %2
%3

"; +- QString formatDefault = "%1 - %2
%3

"; ++ const QString format = "%1 - %2
%3

"; ++ const QString formatDefault = "%1 - %2
%3

"; + + foreach (const NetworkManager::ActiveConnection::Ptr & active, NetworkManager::activeConnections()) { + if (!active->devices().isEmpty()) { +@@ -145,7 +145,6 @@ void NetworkStatus::changeTooltip() + } else { + devName = device->ipInterfaceName(); + } +-// conType = NetworkManager::ConnectionSettings::typeAsString(active->connection()->settings()->connectionType()); + if (active->vpn()) { + conType = i18n("VPN Connection"); + } else { +diff --git a/declarative-plugins/model/model.cpp b/declarative-plugins/model/model.cpp +index 1b3f4c3..bb88362 100644 +--- a/declarative-plugins/model/model.cpp ++++ b/declarative-plugins/model/model.cpp +@@ -230,7 +230,7 @@ void Model::addConnection(const QString& connection, const QString& device) + { + NetworkManager::Connection::Ptr con = NetworkManager::findConnection(connection); + +- if (con->settings()->isSlave()) { ++ if (con->settings()->isSlave() || con->name().isEmpty() || con->uuid().isEmpty()) { + return; + } + +@@ -395,7 +395,11 @@ void Model::removeWirelessNetwork(const QString& ssid, const QString& device) + if (wirelessDevice) { + accessPoint = wirelessDevice->findAccessPoint(item->specificPath()); + } +- if (accessPoint && accessPoint->mode() == NetworkManager::AccessPoint::Adhoc && ++ ++ // When accesspoint in ad-hoc mode dissapears, we should remove the item only when there is no connection. Similar case is when ++ // a wireless device is in AP mode, but in this case there could be only one visible AP and this should always be associated with some connection. ++ if (accessPoint && ((accessPoint->mode() == NetworkManager::AccessPoint::Adhoc && !item->connectionPath().isEmpty()) || ++ wirelessDevice->mode() == NetworkManager::WirelessDevice::ApMode) && + NetworkManager::isWirelessEnabled() && NetworkManager::isWirelessHardwareEnabled()) { + item->setWirelessNetwork(QString()); + if (updateItem(item)) { +diff --git a/declarative-plugins/model/modelitem.cpp b/declarative-plugins/model/modelitem.cpp +index 9a5931f..58d5c42 100644 +--- a/declarative-plugins/model/modelitem.cpp ++++ b/declarative-plugins/model/modelitem.cpp +@@ -151,6 +151,17 @@ QString ModelItem::icon() const + break; + case NetworkManager::ConnectionSettings::Wireless: + if (m_signal == 0 ) { ++ if (!m_connectionPath.isEmpty()) { ++ NetworkManager::Connection::Ptr con = NetworkManager::findConnection(m_connectionPath); ++ if (con) { ++ NetworkManager::WirelessSetting::Ptr wirelessSetting; ++ wirelessSetting = con->settings()->setting(NetworkManager::Setting::Wireless).dynamicCast(); ++ if (wirelessSetting && (wirelessSetting->mode() == NetworkManager::WirelessSetting::Adhoc || ++ wirelessSetting->mode() == NetworkManager::WirelessSetting::Ap)) { ++ return "network-wireless-100"; ++ } ++ } ++ } + return "network-wireless-00"; + } else if (m_signal < 20) { + return "network-wireless-20"; +diff --git a/kded/bluetoothmonitor.cpp b/kded/bluetoothmonitor.cpp +index 2221d09..5d0218b 100644 +--- a/kded/bluetoothmonitor.cpp ++++ b/kded/bluetoothmonitor.cpp +@@ -220,6 +220,7 @@ void BluetoothMonitor::init() + + mDunDevice = reply.value(); + } ++ + #if WITH_MODEMMANAGER_SUPPORT + void BluetoothMonitor::modemAdded(const QString &udi) + { +diff --git a/lib/editor/bridgewidget.cpp b/lib/editor/bridgewidget.cpp +index 8815eb2..95344c4 100644 +--- a/lib/editor/bridgewidget.cpp ++++ b/lib/editor/bridgewidget.cpp +@@ -216,5 +216,5 @@ void BridgeWidget::populateBridges() + + bool BridgeWidget::isValid() const + { +- return !m_ui->ifaceName->text().isEmpty() && m_ui->bridges->count() > 0; ++ return !m_ui->ifaceName->text().isEmpty(); + } +diff --git a/vpn/vpnc/vpnc.cpp b/vpn/vpnc/vpnc.cpp +index d4a511d..645249d 100644 +--- a/vpn/vpnc/vpnc.cpp ++++ b/vpn/vpnc/vpnc.cpp +@@ -145,7 +145,6 @@ NMVariantMapMap VpncUiPlugin::importConnectionSettings(const QString &fileName) + KConfigGroup cg(config, "main"); // Keys&Values are stored under [main] + if (cg.exists()) { + // Setup cisco-decrypt binary to decrypt the passwords +- QStringList decrArgs; + const QString ciscoDecryptBinary = KStandardDirs::findExe("cisco-decrypt", QString::fromLocal8Bit(qgetenv("PATH")) + ":/usr/lib/vpnc"); + if (ciscoDecryptBinary.isEmpty()) { + mErrorMessage = i18n("Needed executable cisco-decrypt could not be found."); +@@ -174,11 +173,11 @@ NMVariantMapMap VpncUiPlugin::importConnectionSettings(const QString &fileName) + } + else if (!decrPlugin->readStringKeyValue(cg,"enc_UserPassword").isEmpty() && !ciscoDecryptBinary.isEmpty()) { + // Decrypt the password and insert into map +- decrArgs.clear(); +- decrArgs << decrPlugin->readStringKeyValue(cg,"enc_UserPassword"); +- decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary, decrArgs); ++ decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary); + decrPlugin->ciscoDecrypt->start(); +- if (decrPlugin->ciscoDecrypt->waitForStarted() && decrPlugin->ciscoDecrypt->waitForFinished()) { ++ decrPlugin->ciscoDecrypt->waitForStarted(); ++ decrPlugin->ciscoDecrypt->write(decrPlugin->readStringKeyValue(cg,"enc_UserPassword").toUtf8()); ++ if (decrPlugin->ciscoDecrypt->waitForFinished()) { + secretData.insert(NM_VPNC_KEY_XAUTH_PASSWORD, decrPlugin->decryptedPasswd); + } + } +@@ -203,11 +202,11 @@ NMVariantMapMap VpncUiPlugin::importConnectionSettings(const QString &fileName) + } + else if (!decrPlugin->readStringKeyValue(cg,"enc_GroupPwd").isEmpty() && !ciscoDecryptBinary.isEmpty()) { + //Decrypt the password and insert into map +- decrArgs.clear(); +- decrArgs << decrPlugin->readStringKeyValue(cg,"enc_GroupPwd"); +- decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary, decrArgs); ++ decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary); + decrPlugin->ciscoDecrypt->start(); +- if (decrPlugin->ciscoDecrypt->waitForStarted() && decrPlugin->ciscoDecrypt->waitForFinished()) { ++ decrPlugin->ciscoDecrypt->waitForStarted(); ++ decrPlugin->ciscoDecrypt->write(decrPlugin->readStringKeyValue(cg,"enc_GroupPwd").toUtf8()); ++ if (decrPlugin->ciscoDecrypt->waitForFinished()) { + secretData.insert(NM_VPNC_KEY_SECRET, decrPlugin->decryptedPasswd); + data.insert(NM_VPNC_KEY_SECRET"-flags", QString::number(NetworkManager::Setting::AgentOwned)); + } diff --git a/kde/patch/plasma5-nm/plasma-nm_modemmanager-qt_api.patch b/kde/patch/plasma5-nm/plasma-nm_modemmanager-qt_api.patch new file mode 100644 index 0000000..4c59f4c --- /dev/null +++ b/kde/patch/plasma5-nm/plasma-nm_modemmanager-qt_api.patch @@ -0,0 +1,73 @@ +From: Jan Grulich +Date: Tue, 31 Mar 2015 12:37:16 +0000 +Subject: Adapt to modemmanager-qt API changes +X-Git-Url: http://quickgit.kde.org/?p=plasma-nm.git&a=commitdiff&h=4d72cb7966edda33bc72c77fc2a126844fc1f134 +--- +Adapt to modemmanager-qt API changes +--- + + +--- a/libs/models/networkmodel.cpp ++++ b/libs/models/networkmodel.cpp +@@ -246,10 +246,10 @@ + if (modem->hasInterface(ModemManager::ModemDevice::ModemInterface)) { + ModemManager::Modem::Ptr modemNetwork = modem->interface(ModemManager::ModemDevice::ModemInterface).objectCast(); + if (modemNetwork) { +- connect(modemNetwork.data(), SIGNAL(signalQualityChanged(uint)), +- SLOT(gsmNetworkSignalQualityChanged(uint)), Qt::UniqueConnection); +- connect(modemNetwork.data(), SIGNAL(accessTechnologyChanged(ModemManager::Modem::AccessTechnologies)), +- SLOT(gsmNetworkAccessTechnologyChanged(ModemManager::Modem::AccessTechnologies)), Qt::UniqueConnection); ++ connect(modemNetwork.data(), SIGNAL(signalQualityChanged(ModemManager::SignalQualityPair)), ++ SLOT(gsmNetworkSignalQualityChanged(ModemManager::SignalQualityPair)), Qt::UniqueConnection); ++ connect(modemNetwork.data(), SIGNAL(accessTechnologiesChanged(QFlags)), ++ SLOT(gsmNetworkAccessTechnologiesChanged(QFlags)), Qt::UniqueConnection); + connect(modemNetwork.data(), SIGNAL(currentModesChanged()), + SLOT(gsmNetworkCurrentModesChanged()), Qt::UniqueConnection); + } +@@ -847,9 +847,9 @@ + } + + #if WITH_MODEMMANAGER_SUPPORT +-void NetworkModel::gsmNetworkAccessTechnologyChanged(ModemManager::Modem::AccessTechnologies technology) +-{ +- Q_UNUSED(technology); ++void NetworkModel::gsmNetworkAccessTechnologiesChanged(QFlags accessTechnologies) ++{ ++ Q_UNUSED(accessTechnologies); + ModemManager::Modem * gsmNetwork = qobject_cast(sender()); + if (gsmNetwork) { + Q_FOREACH (const NetworkManager::Device::Ptr & dev, NetworkManager::networkInterfaces()) { +@@ -893,7 +893,7 @@ + } + } + +-void NetworkModel::gsmNetworkSignalQualityChanged(uint signal) ++void NetworkModel::gsmNetworkSignalQualityChanged(const ModemManager::SignalQualityPair &signalQuality) + { + ModemManager::Modem * gsmNetwork = qobject_cast(sender()); + if (gsmNetwork) { +@@ -905,7 +905,7 @@ + ModemManager::Modem::Ptr modemNetwork = modem->interface(ModemManager::ModemDevice::ModemInterface).objectCast(); + if (modemNetwork && modemNetwork->device() == gsmNetwork->device()) { + Q_FOREACH (NetworkModelItem * item, m_list.returnItems(NetworkItemsList::Device, dev->uni())) { +- item->setSignal(signal); ++ item->setSignal(signalQuality.signal); + updateItem(item); + } + } + +--- a/libs/models/networkmodel.h ++++ b/libs/models/networkmodel.h +@@ -94,9 +94,9 @@ + void deviceRemoved(const QString& device); + void deviceStateChanged(NetworkManager::Device::State state, NetworkManager::Device::State oldState, NetworkManager::Device::StateChangeReason reason); + #if WITH_MODEMMANAGER_SUPPORT +- void gsmNetworkAccessTechnologyChanged(ModemManager::Modem::AccessTechnologies technology); ++ void gsmNetworkAccessTechnologiesChanged(QFlags accessTechnologies); + void gsmNetworkCurrentModesChanged(); +- void gsmNetworkSignalQualityChanged(uint signal); ++ void gsmNetworkSignalQualityChanged(const ModemManager::SignalQualityPair &signalQuality); + #endif + void ipConfigChanged(); + void ipInterfaceChanged(); + diff --git a/kde/patch/plasma5-nm/plasma-nm_networkmanager.patch b/kde/patch/plasma5-nm/plasma-nm_networkmanager.patch new file mode 100644 index 0000000..e635954 --- /dev/null +++ b/kde/patch/plasma5-nm/plasma-nm_networkmanager.patch @@ -0,0 +1,17 @@ +Patch taken from gentoo: +https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd7dad9ddb35e1e3e68ad43176c5e48fbb25338d + +Fixes build with networkmanager-1.0.6. + +Triggered by http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?h=nm-1-0&id=6f616d4c4b04d5478f60d0311317bc84c5459ea4. + +--- CMakeLists.txt ++++ CMakeLists.txt +@@ -49,6 +49,7 @@ + ${CMAKE_CURRENT_SOURCE_DIR}/libs + ${CMAKE_CURRENT_SOURCE_DIR}/libs/editor/ + ${NETWORKMANAGER_INCLUDE_DIRS} ++ ${NM-UTIL_INCLUDE_DIRS} + ${NETWORKMANAGERQT_INCLUDE_DIRS} + ${KDE4_INCLUDES}) + diff --git a/kde/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch b/kde/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch new file mode 100644 index 0000000..53ea613 --- /dev/null +++ b/kde/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch @@ -0,0 +1,31 @@ +From 271332cfc19ede398854113d037abfb35503179f Mon Sep 17 00:00:00 2001 +From: Nate Graham +Date: Thu, 18 Jun 2020 15:34:40 +0000 +Subject: [PATCH] [WIP] [applet] Fix inline password field component not + working properly + +BUG: 423093 +FIXED-IN: 5.20 +--- + applet/contents/ui/ConnectionItem.qml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/applet/contents/ui/ConnectionItem.qml b/applet/contents/ui/ConnectionItem.qml +index 98240928..06c7ab25 100644 +--- a/applet/contents/ui/ConnectionItem.qml ++++ b/applet/contents/ui/ConnectionItem.qml +@@ -231,8 +231,8 @@ PlasmaExtras.ExpandableListItem { + if (!predictableWirelessPassword && !Uuid) { + handler.addAndActivateConnection(DevicePath, SpecificPath) + } else if (connectionItem.customExpandedViewContent == passwordDialogComponent) { +- if (passwordDialogComponent.password != "") { +- handler.addAndActivateConnection(DevicePath, SpecificPath, passwordDialogComponent.password) ++ if (connectionItem.customExpandedViewContentItem.password != "") { ++ handler.addAndActivateConnection(DevicePath, SpecificPath, connectionItem.customExpandedViewContentItem.password) + connectionItem.customExpandedViewContent = detailsComponent + connectionItem.collapse() + } else { +-- +2.27.0 + + -- cgit v1.2.3