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>