From 167dc0d96dac5409c7142e0851576108b707ff8e Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Jun 11 2010 15:48:36 +0000 Subject: - - Adding "Enable networking" button to knetworkmanager (rh#598765, kde#238325) --- diff --git a/.cvsignore b/.cvsignore index b729cd9..6f22730 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1,2 @@ kdebase-workspace-4.4.3.tar.bz2 +kdebase-workspace-4.4.4.tar.bz2 diff --git a/kdebase-workspace-4.4.85-kdebug238325.patch b/kdebase-workspace-4.4.85-kdebug238325.patch new file mode 100644 index 0000000..a6cb38d --- /dev/null +++ b/kdebase-workspace-4.4.85-kdebug238325.patch @@ -0,0 +1,236 @@ +diff -up kdebase-workspace-4.4.85/libs/solid/control/ifaces/networkmanager.h.kde238325 kdebase-workspace-4.4.85/libs/solid/control/ifaces/networkmanager.h +--- kdebase-workspace-4.4.85/libs/solid/control/ifaces/networkmanager.h.kde238325 2009-04-28 08:46:11.000000000 -0500 ++++ kdebase-workspace-4.4.85/libs/solid/control/ifaces/networkmanager.h 2010-06-08 14:40:43.554897330 -0500 +@@ -164,6 +164,11 @@ namespace Ifaces + void wirelessHardwareEnabledChanged(bool enabled); + + /** ++ * This signal is emitted when the status of overall networking changed ++ */ ++ void networkingEnabledChanged(bool enabled); ++ ++ /** + * This signal is emitted when the set of active connections changes + */ + void activeConnectionsChanged(); +diff -up kdebase-workspace-4.4.85/libs/solid/control/networkmanager.cpp.kde238325 kdebase-workspace-4.4.85/libs/solid/control/networkmanager.cpp +--- kdebase-workspace-4.4.85/libs/solid/control/networkmanager.cpp.kde238325 2009-07-17 16:44:59.000000000 -0500 ++++ kdebase-workspace-4.4.85/libs/solid/control/networkmanager.cpp 2010-06-08 14:40:43.555907737 -0500 +@@ -56,6 +56,8 @@ Solid::Control::NetworkManagerPrivate::N + this, SIGNAL(wirelessEnabledChanged(bool))); + connect(managerBackend(), SIGNAL(wirelessHardwareEnabledChanged(bool)), + this, SIGNAL(wirelessHardwareEnabledChanged(bool))); ++ connect(managerBackend(), SIGNAL(networkingEnabledChanged(bool)), ++ this, SIGNAL(networkingEnabledChanged(bool))); + connect(managerBackend(), SIGNAL(activeConnectionsChanged()), + this, SIGNAL(activeConnectionsChanged())); + } +diff -up kdebase-workspace-4.4.85/libs/solid/control/networkmanager.h.kde238325 kdebase-workspace-4.4.85/libs/solid/control/networkmanager.h +--- kdebase-workspace-4.4.85/libs/solid/control/networkmanager.h.kde238325 2009-04-28 08:46:11.000000000 -0500 ++++ kdebase-workspace-4.4.85/libs/solid/control/networkmanager.h 2010-06-08 14:40:43.555907737 -0500 +@@ -170,6 +170,10 @@ namespace Control + */ + void wirelessHardwareEnabledChanged(bool enabled); + /** ++ * This signal is emitted when the status of overall networking changed ++ */ ++ void networkingEnabledChanged(bool enabled); ++ /** + * This signal is emitted when the set of active connections changes + */ + void activeConnectionsChanged(); +diff -up kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/introspection/nm-manager-client.xml.kde238325 kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/introspection/nm-manager-client.xml +--- kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/introspection/nm-manager-client.xml.kde238325 2008-05-15 13:37:15.000000000 -0500 ++++ kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/introspection/nm-manager-client.xml 2010-06-08 14:40:43.549905432 -0500 +@@ -39,6 +39,12 @@ object. dbus-glib generates the same bo + + + ++ ++ ++ ++ ++ ++ + + + +diff -up kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/introspection/nm-manager.xml.kde238325 kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/introspection/nm-manager.xml +--- kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/introspection/nm-manager.xml.kde238325 2008-05-15 13:37:15.000000000 -0500 ++++ kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/introspection/nm-manager.xml 2010-06-08 14:40:43.549905432 -0500 +@@ -80,7 +80,10 @@ + + + +- Control the NetworkManager daemon's sleep state. When asleep, all interfaces that it manages are deactivated. When awake, devices are available to be activated. ++ Control the NetworkManager daemon's sleep state. When asleep, all ++ interfaces that it manages are deactivated. When awake, devices are ++ available to be activated. This command should not be called directly ++ by users or clients; it is intended for system suspend/resume tracking. + + + +@@ -89,6 +92,30 @@ + + + ++ ++ ++ ++ Control whether overall networking is enabled or disabled. When ++ disabled, all interfaces that NM manages are deactivated. When enabled, ++ all managed interfaces are re-enabled and available to be activated. ++ This command should be used by clients that provide to users the ability ++ to enable/disable all networking. ++ ++ ++ ++ If FALSE, indicates that all networking should be disabled. If TRUE, ++ indicates that NetworkManager should begin managing network devices. ++ ++ ++ ++ ++ ++ ++ Indicates if overall networking is currently enabled or not. See the ++ Enable() method. ++ ++ ++ + + + Indicates if wireless is currently enabled or not. +diff -up kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h.kde238325 kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h +--- kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h.kde238325 2009-06-17 15:06:03.000000000 -0500 ++++ kdebase-workspace-4.4.85/solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h 2010-06-08 14:40:43.551895445 -0500 +@@ -2,7 +2,7 @@ + * This file was generated by qdbusxml2cpp version 0.7 + * Command line was: qdbusxml2cpp -N -m -p nm-manager-clientinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-manager-client.xml + * +- * qdbusxml2cpp is Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++ * qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + * + * This is an auto-generated file. + * Do not edit! All changes made to it will be lost. +@@ -39,6 +39,10 @@ public: + inline QList activeConnections() const + { return qvariant_cast< QList >(internalPropGet("ActiveConnections")); } + ++ Q_PROPERTY(bool NetworkingEnabled READ networkingEnabled) ++ inline bool networkingEnabled() const ++ { return qvariant_cast< bool >(internalPropGet("NetworkingEnabled")); } ++ + Q_PROPERTY(uint State READ state) + inline uint state() const + { return qvariant_cast< uint >(internalPropGet("State")); } +@@ -68,6 +72,13 @@ public Q_SLOTS: // METHODS + return asyncCallWithArgumentList(QLatin1String("DeactivateConnection"), argumentList); + } + ++ inline QDBusPendingReply<> Enable(bool enable) ++ { ++ QList argumentList; ++ argumentList << qVariantFromValue(enable); ++ return asyncCallWithArgumentList(QLatin1String("Enable"), argumentList); ++ } ++ + inline QDBusPendingReply > GetDevices() + { + QList argumentList; +diff -up kdebase-workspace-4.4.85/solid/networkmanager-0.7/manager.cpp.kde238325 kdebase-workspace-4.4.85/solid/networkmanager-0.7/manager.cpp +--- kdebase-workspace-4.4.85/solid/networkmanager-0.7/manager.cpp.kde238325 2010-02-09 08:30:15.000000000 -0600 ++++ kdebase-workspace-4.4.85/solid/networkmanager-0.7/manager.cpp 2010-06-08 14:40:43.552905013 -0500 +@@ -49,6 +49,14 @@ NMNetworkManager::NMNetworkManager(QObje + d->nmState = d->iface.state(); + d->isWirelessHardwareEnabled = d->iface.wirelessHardwareEnabled(); + d->isWirelessEnabled = d->iface.wirelessEnabled(); ++ QVariant netEnabled = d->iface.property("NetworkingEnabled"); ++ if (!netEnabled.isNull()) { ++ d->isNetworkingEnabled = netEnabled.toBool(); ++ d->NetworkingEnabledPropertyAvailable = true; ++ } else { ++ d->isNetworkingEnabled = !(NM_STATE_UNKNOWN == d->nmState || NM_STATE_ASLEEP == d->nmState); ++ d->NetworkingEnabledPropertyAvailable = false; ++ } + connect( &d->iface, SIGNAL(DeviceAdded(const QDBusObjectPath &)), + this, SLOT(deviceAdded(const QDBusObjectPath &))); + connect( &d->iface, SIGNAL(DeviceRemoved(const QDBusObjectPath &)), +@@ -138,7 +146,7 @@ QObject *NMNetworkManager::createNetwork + bool NMNetworkManager::isNetworkingEnabled() const + { + Q_D(const NMNetworkManager); +- return !(NM_STATE_UNKNOWN == d->nmState || NM_STATE_ASLEEP == d->nmState); ++ return d->isNetworkingEnabled; + } + + bool NMNetworkManager::isWirelessEnabled() const +@@ -182,7 +190,14 @@ void NMNetworkManager::deactivateConnect + void NMNetworkManager::setNetworkingEnabled(bool enabled) + { + Q_D(NMNetworkManager); +- d->iface.Sleep(!enabled); ++ ++ QDBusPendingReply<> reply = d->iface.Enable(enabled); ++ reply.waitForFinished(); ++ if (reply.isError()) { ++ kDebug(1441) << "Enable() D-Bus method not available:" << reply.error(); ++ kDebug(1441) << "Calling Sleep() instead"; ++ d->iface.Sleep(!enabled); ++ } + } + + void NMNetworkManager::setWirelessEnabled(bool enabled) +@@ -211,9 +226,19 @@ void NMNetworkManager::stateChanged(uint + { + Q_D(NMNetworkManager); + if ( d->nmState != state ) { ++ ++ // When "NetworkingEnabled" property is not available, set isNetworkingEnabled flag and emit signal here. ++ // It has to be done before emitting statusChanged(), else it would cause infinite status switching. ++ if (!d->NetworkingEnabledPropertyAvailable) { ++ d->isNetworkingEnabled = !(NM_STATE_UNKNOWN == state || NM_STATE_ASLEEP == state); ++ emit networkingEnabledChanged(d->isNetworkingEnabled); ++ } ++ ++ // set new state + d->nmState = state; + emit statusChanged( convertNMState( state ) ); + } ++ + } + + void NMNetworkManager::propertiesChanged(const QVariantMap &properties) +@@ -221,6 +246,7 @@ void NMNetworkManager::propertiesChanged + Q_D(NMNetworkManager); + kDebug(1441) << properties.keys(); + QLatin1String activeConnKey("ActiveConnections"); ++ QLatin1String netEnabledKey("NetworkingEnabled"); + QLatin1String wifiHwKey("WirelessHardwareEnabled"); + QLatin1String wifiEnabledKey("WirelessEnabled"); + QVariantMap::const_iterator it = properties.find(activeConnKey); +@@ -248,6 +274,12 @@ void NMNetworkManager::propertiesChanged + kDebug(1441) << wifiEnabledKey << d->isWirelessEnabled; + emit wirelessEnabledChanged(d->isWirelessEnabled); + } ++ it = properties.find(netEnabledKey); ++ if ( it != properties.end()) { ++ d->isNetworkingEnabled = it->toBool(); ++ kDebug(1441) << netEnabledKey << d->isNetworkingEnabled; ++ emit networkingEnabledChanged(d->isNetworkingEnabled); ++ } + } + + Solid::Networking::Status NMNetworkManager::convertNMState(uint state) +diff -up kdebase-workspace-4.4.85/solid/networkmanager-0.7/manager_p.h.kde238325 kdebase-workspace-4.4.85/solid/networkmanager-0.7/manager_p.h +--- kdebase-workspace-4.4.85/solid/networkmanager-0.7/manager_p.h.kde238325 2008-06-10 06:41:03.000000000 -0500 ++++ kdebase-workspace-4.4.85/solid/networkmanager-0.7/manager_p.h 2010-06-08 14:40:43.552905013 -0500 +@@ -35,6 +35,8 @@ public: + uint nmState; + bool isWirelessEnabled; + bool isWirelessHardwareEnabled; ++ bool isNetworkingEnabled; ++ bool NetworkingEnabledPropertyAvailable; + QStringList networkInterfaces; + QStringList activeConnections; + }; diff --git a/kdebase-workspace.spec b/kdebase-workspace.spec index 829efdd..6f09800 100644 --- a/kdebase-workspace.spec +++ b/kdebase-workspace.spec @@ -16,7 +16,7 @@ Summary: KDE Workspace Name: kdebase-workspace Version: 4.4.4 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Group: User Interface/Desktops @@ -65,6 +65,9 @@ Patch50: kdebase-workspace-4.3.3-kde#171685.patch # FIXME: Not upstreamed yet --Ben (4.3.80) #Patch51: http://bazaar.launchpad.net/~kubuntu-members/kdebase-workspace/ubuntu/annotate/head%3A/debian/patches/kubuntu_101_brightness_fn_keys_and_osd.diff Patch51: kdebase-workspace-4.3.95-brightness_keys.patch +# "Adding "Enable networking" button to knetworkmanager" +# https://bugzilla.redhat.com/598765 https://bugs.kde.org/238325 +Patch52: kdebase-workspace-4.4.85-kdebug238325.patch # 4.4 patches @@ -326,8 +329,9 @@ Requires: akonadi # upstream patches %patch50 -p1 -b .kde#171685 -# kubuntu patches %patch51 -p1 -b .brightness_keys +%patch52 -p1 -b .kdebug238325 + # 4.4 patches @@ -681,6 +685,9 @@ fi %changelog +* Tue Jun 08 2010 Rex Dieter - 4.4.4-2 +- - Adding "Enable networking" button to knetworkmanager (rh#598765, kde#238325) + * Sun May 30 2010 Than Ngo - 4.4.4-1 - 4.4.4