Blob Blame History Raw
diff --git a/applet/declarative/contents/ui/CompactRepresentation.qml b/applet/declarative/contents/ui/CompactRepresentation.qml
index ac2c9fc..d610da2 100644
--- a/applet/declarative/contents/ui/CompactRepresentation.qml
+++ b/applet/declarative/contents/ui/CompactRepresentation.qml
@@ -45,43 +45,45 @@ Item {
     PlasmaCore.SvgItem {
         id: connectionIcon;
 
-        anchors.fill: parent;
+        anchors.centerIn: parent
+        width: Math.min(parent.width, parent.height)
+        height: width
         svg: svgIcons;
         elementId: connectionIconProvider.connectionSvgIcon;
-    }
 
-    QIconItem {
-        id: hoverIcon;
+        QIconItem {
+            id: hoverIcon;
 
-        width: parent.width/2;
-        height: parent.height/2;
-        anchors {
-            bottom: parent.bottom;
-            right: parent.right;
+            width: parent.width/2;
+            height: parent.height/2;
+            anchors {
+                bottom: parent.bottom;
+                right: parent.right;
+            }
+            icon: connectionIconProvider.connectionIndicatorIcon;
         }
-        icon: connectionIconProvider.connectionIndicatorIcon;
-    }
 
-    PlasmaComponents.BusyIndicator {
-        id: connectingIndicator;
+        PlasmaComponents.BusyIndicator {
+            id: connectingIndicator;
 
-        anchors.fill: parent;
-        running: connectionIconProvider.connecting;
-        visible: running;
-    }
+            anchors.fill: parent;
+            running: connectionIconProvider.connecting;
+            visible: running;
+        }
 
-    MouseArea {
-        id: mouseAreaPopup;
+        MouseArea {
+            id: mouseAreaPopup;
 
-        anchors.fill: parent;
-        hoverEnabled: true;
-        onClicked: plasmoid.togglePopup();
+            anchors.fill: parent;
+            hoverEnabled: true;
+            onClicked: plasmoid.togglePopup();
 
-        PlasmaCore.ToolTip {
-            id: tooltip;
-            target: mouseAreaPopup;
-            image: connectionIconProvider.connectionPixmapIcon;
-            subText: networkStatus.activeConnections;
+            PlasmaCore.ToolTip {
+                id: tooltip;
+                target: mouseAreaPopup;
+                image: connectionIconProvider.connectionPixmapIcon;
+                subText: networkStatus.activeConnections;
+            }
         }
     }
 }
diff --git a/applet/declarative/contents/ui/ConnectionItem.qml b/applet/declarative/contents/ui/ConnectionItem.qml
index 009ab0e..be7cf42 100644
--- a/applet/declarative/contents/ui/ConnectionItem.qml
+++ b/applet/declarative/contents/ui/ConnectionItem.qml
@@ -120,7 +120,6 @@ PlasmaComponents.ListItem {
             }
             text: itemName;
             elide: Text.ElideRight;
-//             font.weight: itemConnectionState == PlasmaNM.Enums.Activated ? Font.DemiBold : Font.Normal;
             font.italic: itemConnectionState == PlasmaNM.Enums.Activating ? true : false;
         }
 
@@ -255,6 +254,9 @@ PlasmaComponents.ListItem {
                 echoMode: showPasswordCheckbox.checked ? TextInput.Normal : TextInput.Password
                 visible: predictableWirelessPassword;
                 placeholderText: i18n("Password...");
+                onAccepted: {
+                    connectButton.clicked();
+                }
             }
 
             PlasmaComponents.CheckBox {
diff --git a/declarative-plugins/applet/connectionicon.cpp b/declarative-plugins/applet/connectionicon.cpp
index 225f565..82d72fa 100644
--- a/declarative-plugins/applet/connectionicon.cpp
+++ b/declarative-plugins/applet/connectionicon.cpp
@@ -279,6 +279,13 @@ void ConnectionIcon::setIcons()
                             Q_EMIT connectionPixmapIconChanged("preferences-system-bluetooth");
                         }
                     }
+                } else {
+                    connectionFound = true;
+                    m_connectionSvgIcon = "network-wired-activated";
+                    NMAppletDebug() << "Emit signal connectionSvgIconChanged(network-wired-activated)";
+                    Q_EMIT connectionSvgIconChanged("network-wired-activated");
+                    m_connectionPixmapIcon = "network-wired-activated";
+                    Q_EMIT connectionPixmapIconChanged("network-wired-activated");
                 }
             }
         } else if (active->vpn() && active->state() == NetworkManager::ActiveConnection::Activated) {
diff --git a/editor/connectioneditor.cpp b/editor/connectioneditor.cpp
index 644b8f6..955d346 100644
--- a/editor/connectioneditor.cpp
+++ b/editor/connectioneditor.cpp
@@ -139,6 +139,7 @@ ConnectionEditor::ConnectionEditor(QWidget* parent, Qt::WindowFlags flags):
 
     kAction = new KAction(KIcon("edit-delete"), i18n("Delete"), this);
     kAction->setEnabled(false);
+    kAction->setShortcut(Qt::Key_Delete);
     connect(kAction, SIGNAL(triggered()), SLOT(removeConnection()));
     actionCollection()->addAction("delete_connection", kAction);
 
diff --git a/kded/passworddialog.h b/kded/passworddialog.h
index 7ffdc8f..f9e40a6 100644
--- a/kded/passworddialog.h
+++ b/kded/passworddialog.h
@@ -19,7 +19,7 @@
     License along with this library.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef PLASMA_NM_PASSWOR_DDIALOG_H
+#ifndef PLASMA_NM_PASSWORD_DIALOG_H
 #define PLASMA_NM_PASSWORD_DIALOG_H
 
 #include <NetworkManagerQt/ConnectionSettings>
diff --git a/kded/service.cpp b/kded/service.cpp
index 14966dd..4db016d 100644
--- a/kded/service.cpp
+++ b/kded/service.cpp
@@ -32,6 +32,8 @@
 #include "bluetoothmonitor.h"
 
 #include <QDBusMetaType>
+#include <QDBusServiceWatcher>
+#include <QDBusConnection>
 
 K_PLUGIN_FACTORY(NetworkManagementServiceFactory, registerPlugin<NetworkManagementService>();)
 K_EXPORT_PLUGIN(NetworkManagementServiceFactory("networkmanagement", "plasmanetworkmanagement-kded"))
@@ -45,10 +47,34 @@ public:
 NetworkManagementService::NetworkManagementService(QObject * parent, const QVariantList&)
         : KDEDModule(parent), d_ptr(new NetworkManagementServicePrivate)
 {
-    Q_D(NetworkManagementService);
-
     KGlobal::insertCatalog("plasma_applet_org.kde.networkmanagement");  // mobile wizard
 
+    QDBusReply<bool> reply = QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.plasma-desktop");
+    if (reply.value()) {
+        doInitialization();
+    } else {
+        QDBusServiceWatcher * watcher = new QDBusServiceWatcher("org.kde.plasma-desktop", QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this);
+        connect(watcher, SIGNAL(serviceRegistered(QString)), SLOT(finishInitialization()));
+    }
+}
+
+NetworkManagementService::~NetworkManagementService()
+{
+    delete d_ptr;
+}
+
+void NetworkManagementService::finishInitialization()
+{
+    QDBusServiceWatcher * watcher = static_cast<QDBusServiceWatcher*>(sender());
+    disconnect(watcher, SIGNAL(serviceRegistered(QString)), this,  SLOT(finishInitialization()));
+
+    doInitialization();
+}
+
+void NetworkManagementService::doInitialization()
+{
+    Q_D(NetworkManagementService);
+
     d->agent = new SecretAgent(this);
     new Notification(this);
 #if WITH_MODEMMANAGER_SUPPORT
@@ -57,7 +83,3 @@ NetworkManagementService::NetworkManagementService(QObject * parent, const QVari
     new BluetoothMonitor(this);
 }
 
-NetworkManagementService::~NetworkManagementService()
-{
-    delete d_ptr;
-}
diff --git a/kded/service.h b/kded/service.h
index 5c576c6..8182523 100644
--- a/kded/service.h
+++ b/kded/service.h
@@ -38,8 +38,12 @@ class KDE_EXPORT NetworkManagementService : public KDEDModule
 public:
     NetworkManagementService(QObject * parent, const QVariantList&);
     virtual ~NetworkManagementService();
+private Q_SLOTS:
+   void finishInitialization();
 private:
     NetworkManagementServicePrivate * d_ptr;
+
+    void doInitialization();
 };
 
 #endif // PLASMANM_KDED_SERVICE_H
diff --git a/lib/editor/connectiondetaileditor.cpp b/lib/editor/connectiondetaileditor.cpp
index 06fa706..d6fcbd7 100644
--- a/lib/editor/connectiondetaileditor.cpp
+++ b/lib/editor/connectiondetaileditor.cpp
@@ -181,6 +181,8 @@ ConnectionDetailEditor::~ConnectionDetailEditor()
 
 void ConnectionDetailEditor::initEditor()
 {
+    enableOKButton(false);
+
     if (!m_new) {
         NetworkManager::Connection::Ptr connection = NetworkManager::findConnectionByUuid(m_connection->uuid());
         if (connection) {
diff --git a/lib/editor/ipv4widget.cpp b/lib/editor/ipv4widget.cpp
index 2d651b0..3676f00 100644
--- a/lib/editor/ipv4widget.cpp
+++ b/lib/editor/ipv4widget.cpp
@@ -269,7 +269,7 @@ void IPv4Widget::slotModeComboChanged(int index)
         m_ui->dhcpClientId->setEnabled(true);
         m_ui->ipv4RequiredCB->setEnabled(true);
         m_ui->btnRoutes->setEnabled(true);
-
+        m_ui->tableViewAddresses->setEnabled(false);
         m_ui->tableViewAddresses->setVisible(false);
         m_ui->btnAdd->setVisible(false);
         m_ui->btnRemove->setVisible(false);
@@ -282,7 +282,7 @@ void IPv4Widget::slotModeComboChanged(int index)
         m_ui->dhcpClientId->setEnabled(true);
         m_ui->ipv4RequiredCB->setEnabled(true);
         m_ui->btnRoutes->setEnabled(true);
-
+        m_ui->tableViewAddresses->setEnabled(false);
         m_ui->tableViewAddresses->setVisible(false);
         m_ui->btnAdd->setVisible(false);
         m_ui->btnRemove->setVisible(false);
@@ -295,7 +295,7 @@ void IPv4Widget::slotModeComboChanged(int index)
         m_ui->dhcpClientId->setEnabled(false);
         m_ui->ipv4RequiredCB->setEnabled(true);
         m_ui->btnRoutes->setEnabled(true);
-
+        m_ui->tableViewAddresses->setEnabled(true);
         m_ui->tableViewAddresses->setVisible(true);
         m_ui->btnAdd->setVisible(true);
         m_ui->btnRemove->setVisible(true);
@@ -308,7 +308,7 @@ void IPv4Widget::slotModeComboChanged(int index)
         m_ui->dhcpClientId->setEnabled(false);
         m_ui->ipv4RequiredCB->setEnabled(true);
         m_ui->btnRoutes->setEnabled(false);
-
+        m_ui->tableViewAddresses->setEnabled(false);
         m_ui->tableViewAddresses->setVisible(false);
         m_ui->btnAdd->setVisible(false);
         m_ui->btnRemove->setVisible(false);
@@ -321,7 +321,7 @@ void IPv4Widget::slotModeComboChanged(int index)
         m_ui->dhcpClientId->setEnabled(false);
         m_ui->ipv4RequiredCB->setEnabled(false);
         m_ui->btnRoutes->setEnabled(false);
-
+        m_ui->tableViewAddresses->setEnabled(false);
         m_ui->tableViewAddresses->setVisible(false);
         m_ui->btnAdd->setVisible(false);
         m_ui->btnRemove->setVisible(false);
diff --git a/lib/editor/ipv6widget.cpp b/lib/editor/ipv6widget.cpp
index 1d84f7d..8c1c5fe 100644
--- a/lib/editor/ipv6widget.cpp
+++ b/lib/editor/ipv6widget.cpp
@@ -170,7 +170,7 @@ void IPv6Widget::loadConfig(const NetworkManager::Setting::Ptr &setting)
 
     // privacy
     if (ipv6Setting->privacy() != NetworkManager::Ipv6Setting::Unknown) {
-        m_ui->privacyCombo->setCurrentIndex(static_cast<int>(ipv6Setting->privacy()));
+        m_ui->privacyCombo->setCurrentIndex(static_cast<int>(ipv6Setting->privacy()) + 1);
     }
 }
 
@@ -242,8 +242,8 @@ QVariantMap IPv6Widget::setting(bool agentOwned) const
     }
 
     // privacy
-    if (m_ui->privacyCombo->isEnabled()) {
-        ipv6Setting.setPrivacy(static_cast<NetworkManager::Ipv6Setting::IPv6Privacy>(m_ui->privacyCombo->currentIndex()));
+    if (m_ui->privacyCombo->isEnabled() && m_ui->privacyCombo->currentIndex()) {
+        ipv6Setting.setPrivacy(static_cast<NetworkManager::Ipv6Setting::IPv6Privacy>(m_ui->privacyCombo->currentIndex() - 1));
     }
 
     return ipv6Setting.toMap();
@@ -260,7 +260,7 @@ void IPv6Widget::slotModeComboChanged(int index)
         m_ui->ipv6RequiredCB->setEnabled(true);
         m_ui->privacyCombo->setEnabled(true);
         m_ui->btnRoutes->setEnabled(true);
-
+        m_ui->tableViewAddresses->setEnabled(false);
         m_ui->tableViewAddresses->setVisible(false);
         m_ui->btnAdd->setVisible(false);
         m_ui->btnRemove->setVisible(false);
@@ -273,7 +273,7 @@ void IPv6Widget::slotModeComboChanged(int index)
         m_ui->ipv6RequiredCB->setEnabled(true);
         m_ui->privacyCombo->setEnabled(true);
         m_ui->btnRoutes->setEnabled(true);
-
+        m_ui->tableViewAddresses->setEnabled(false);
         m_ui->tableViewAddresses->setVisible(false);
         m_ui->btnAdd->setVisible(false);
         m_ui->btnRemove->setVisible(false);
@@ -286,7 +286,7 @@ void IPv6Widget::slotModeComboChanged(int index)
         m_ui->ipv6RequiredCB->setEnabled(true);
         m_ui->privacyCombo->setEnabled(true);
         m_ui->btnRoutes->setEnabled(true);
-
+        m_ui->tableViewAddresses->setEnabled(true);
         m_ui->tableViewAddresses->setVisible(true);
         m_ui->btnAdd->setVisible(true);
         m_ui->btnRemove->setVisible(true);
@@ -299,7 +299,7 @@ void IPv6Widget::slotModeComboChanged(int index)
         m_ui->ipv6RequiredCB->setEnabled(true);
         m_ui->privacyCombo->setEnabled(true);
         m_ui->btnRoutes->setEnabled(false);
-
+        m_ui->tableViewAddresses->setEnabled(false);
         m_ui->tableViewAddresses->setVisible(false);
         m_ui->btnAdd->setVisible(false);
         m_ui->btnRemove->setVisible(false);
@@ -312,7 +312,7 @@ void IPv6Widget::slotModeComboChanged(int index)
         m_ui->ipv6RequiredCB->setEnabled(false);
         m_ui->privacyCombo->setEnabled(false);
         m_ui->btnRoutes->setEnabled(false);
-
+        m_ui->tableViewAddresses->setEnabled(false);
         m_ui->tableViewAddresses->setVisible(false);
         m_ui->btnAdd->setVisible(false);
         m_ui->btnRemove->setVisible(false);
diff --git a/lib/editor/security802-1x.cpp b/lib/editor/security802-1x.cpp
index 63227cb..b3bc364 100644
--- a/lib/editor/security802-1x.cpp
+++ b/lib/editor/security802-1x.cpp
@@ -161,11 +161,11 @@ QVariantMap Security8021x::setting(bool agentOwned) const
         if (!m_ui->tlsIdentity->text().isEmpty())
             setting.setIdentity(m_ui->tlsIdentity->text());
         if (!m_ui->tlsUserCert->url().isEmpty())
-            setting.setClientCertificate(QFile::encodeName(m_ui->tlsUserCert->url().url()));
+            setting.setClientCertificate(QFile::encodeName(m_ui->tlsUserCert->url().url()).append('\0'));
         if (!m_ui->tlsCACert->url().isEmpty())
-            setting.setCaCertificate(QFile::encodeName(m_ui->tlsCACert->url().url()));
+            setting.setCaCertificate(QFile::encodeName(m_ui->tlsCACert->url().url()).append('\0'));
         if (!m_ui->tlsPrivateKey->url().isEmpty())
-            setting.setPrivateKey(QFile::encodeName(m_ui->tlsPrivateKey->url().url()));
+            setting.setPrivateKey(QFile::encodeName(m_ui->tlsPrivateKey->url().url()).append('\0'));
         if (!m_ui->tlsPrivateKeyPassword->text().isEmpty())
             setting.setPrivateKeyPassword(m_ui->tlsPrivateKeyPassword->text());
 
@@ -190,7 +190,7 @@ QVariantMap Security8021x::setting(bool agentOwned) const
             setting.setPhase1FastProvisioning(static_cast<NetworkManager::Security8021xSetting::FastProvisioning>(m_ui->pacMethod->currentIndex() + 1));
         }
         if (!m_ui->pacFile->text().isEmpty())
-            setting.setPacFile(QFile::encodeName(m_ui->pacFile->url().url()));
+            setting.setPacFile(QFile::encodeName(m_ui->pacFile->url().url()).append('\0'));
         if (m_ui->fastInnerAuth->currentIndex() == 0)
             setting.setPhase2AuthMethod(NetworkManager::Security8021xSetting::AuthMethodGtc);
         else
@@ -209,7 +209,7 @@ QVariantMap Security8021x::setting(bool agentOwned) const
         if (!m_ui->ttlsAnonIdentity->text().isEmpty())
             setting.setAnonymousIdentity(m_ui->ttlsAnonIdentity->text());
         if (!m_ui->ttlsCACert->text().isEmpty())
-            setting.setCaCertificate(QFile::encodeName(m_ui->ttlsCACert->url().url()));
+            setting.setCaCertificate(QFile::encodeName(m_ui->ttlsCACert->url().url()).append('\0'));
         const int innerAuth = m_ui->ttlsInnerAuth->currentIndex();
         if (innerAuth == 0)
             setting.setPhase2AuthMethod(NetworkManager::Security8021xSetting::AuthMethodPap);
@@ -233,7 +233,7 @@ QVariantMap Security8021x::setting(bool agentOwned) const
         if (!m_ui->peapAnonIdentity->text().isEmpty())
             setting.setAnonymousIdentity(m_ui->peapAnonIdentity->text());
         if (!m_ui->peapCACert->text().isEmpty())
-            setting.setCaCertificate(QFile::encodeName(m_ui->peapCACert->url().url()));
+            setting.setCaCertificate(QFile::encodeName(m_ui->peapCACert->url().url()).append('\0'));
         setting.setPhase1PeapVersion(static_cast<NetworkManager::Security8021xSetting::PeapVersion>(m_ui->peapVersion->currentIndex() - 1));
         const int innerAuth = m_ui->peapInnerAuth->currentIndex();
         if (innerAuth == 0)
diff --git a/lib/editor/ui/ipv6.ui b/lib/editor/ui/ipv6.ui
index d751ba3..8a5a4bf 100644
--- a/lib/editor/ui/ipv6.ui
+++ b/lib/editor/ui/ipv6.ui
@@ -330,6 +330,11 @@
     <widget class="KComboBox" name="privacyCombo">
      <item>
       <property name="text">
+       <string>Default</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
        <string comment="privacy disabled">Disabled</string>
       </property>
      </item>