PURPOSE "Needed to enable advanced features of the calculator runner"
)
-macro_optional_find_package(NetworkManager)
-set_package_properties(NetworkManager PROPERTIES
- DESCRIPTION "The NetworkManager headers"
- URL "http://projects.gnome.org/NetworkManager"
- TYPE OPTIONAL
- PURPOSE "Needed for kded's networkstatus module"
-)
-
macro_optional_find_package(LightDM)
set_package_properties(LightDM PROPERTIES
DESCRIPTION "Cross-desktop display manager"
sudo apt-get update -qq
sudo apt-get install -qq cmake katie-dev katanalibs \
- katana-baseapps xorg-dev libnm-dev libqalculate-dev libxxf86vm-dev \
+ katana-baseapps xorg-dev libqalculate-dev libxxf86vm-dev \
libx11-xcb-dev libxcb-icccm4-dev libxcb-composite0-dev libxcb-damage0-dev \
libxcb-xfixes0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-shape0-dev \
libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-image0-dev \
wicdcustomtypes.cpp
connmanstatus.cpp
toolkitstatus.cpp
+ networkmanagerstatus.cpp
)
-if(NETWORKMANAGER_FOUND)
- if(${NETWORKMANAGER_VERSION} VERSION_EQUAL "0.7.0"
- OR ${NETWORKMANAGER_VERSION} VERSION_GREATER "0.7.0")
- MESSAGE(STATUS "Adding in-process NetworkManager service-wart to kded module")
- set(kded_networkstatus_PART_SRCS ${kded_networkstatus_PART_SRCS} networkmanagerstatus.cpp)
- include_directories(${NETWORKMANAGER_INCLUDE_DIRS} ${NM-GLIB_INCLUDE_DIRS})
- add_definitions(-DNM_BACKEND_ENABLED -DQT_NO_KEYWORDS)
- endif()
-endif(NETWORKMANAGER_FOUND)
-
qt4_add_dbus_adaptor(kded_networkstatus_PART_SRCS ../org.kde.Solid.Networking.Service.xml
networkstatus.h NetworkStatusModule)
m_connman(CONNMAN_DBUS_SERVICE, CONNMAN_DBUS_PATH, CONNMAN_DBUS_INTERFACE, QDBusConnection::systemBus())
{
if (isSupported()) {
- QDBusConnection::systemBus().connect(CONNMAN_DBUS_SERVICE, CONNMAN_DBUS_PATH, CONNMAN_DBUS_INTERFACE,
- "PropertyChanged", this, SLOT(connmanStateChanged()));
+ connect(&m_connman, SIGNAL(PropertyChanged()), this, SLOT(connmanStateChanged()));
connmanStateChanged();
}
}
ConnmanStatus(QObject *parent = 0);
// reimplementations
- Solid::Networking::Status status() const;
- bool isSupported() const;
- QString serviceName() const;
+ Solid::Networking::Status status() const final;
+ bool isSupported() const final;
+ QString serviceName() const final;
private Q_SLOTS:
void connmanStateChanged();
/* This file is part of the KDE project
- Copyright (c) 2010 Klarälvdalens Datakonsult AB,
+ Copyright (c) 2010 Klarälvdalens Datakonsult AB,
a KDAB Group company <info@kdab.com>
Author: Kevin Ottens <kevin.ottens@kdab.com>
#include <QtDBus/QDBusReply>
-#include <NetworkManager.h>
+#include <KDebug>
-#if !defined(NM_CHECK_VERSION)
- #define NM_CHECK_VERSION(x,y,z) 0
-#endif
+#define NM_DBUS_SERVICE "org.freedesktop.NetworkManager"
+#define NM_DBUS_PATH "/org/freedesktop/NetworkManager"
+#define NM_DBUS_INTERFACE "org.freedesktop.NetworkManager"
-NetworkManagerStatus::NetworkManagerStatus( QObject *parent )
- : SystemStatusInterface( parent ),
- m_status( Solid::Networking::Unknown ),
- m_manager( NM_DBUS_SERVICE,
- NM_DBUS_PATH,
- NM_DBUS_INTERFACE,
- QDBusConnection::systemBus() )
+NetworkManagerStatus::NetworkManagerStatus(QObject *parent)
+ : SystemStatusInterface(parent),
+ m_status(Solid::Networking::Unknown),
+ m_nm(NM_DBUS_SERVICE, NM_DBUS_PATH, NM_DBUS_INTERFACE, QDBusConnection::systemBus())
{
if (isSupported()) {
- connect( &m_manager, SIGNAL(StateChanged(uint)),
- this, SLOT(nmStateChanged(uint)));
+ connect(&m_nm, SIGNAL(StateChanged(uint)), this, SLOT(nmStateChanged(uint)));
- QDBusReply<uint> reply = m_manager.call( "state" );
-
- if ( reply.isValid() ) {
- m_status = convertNmState( reply );
+ QDBusReply<uint> reply = m_nm.call("state");
+ if (reply.isValid()) {
+ nmStateChanged(reply.value());
}
}
}
bool NetworkManagerStatus::isSupported() const
{
- return m_manager.isValid();
+ return m_nm.isValid();
}
QString NetworkManagerStatus::serviceName() const
{
- return QString(NM_DBUS_SERVICE);
-}
-
-void NetworkManagerStatus::nmStateChanged( uint nmState )
-{
- m_status = convertNmState( nmState );
- Q_EMIT statusChanged( m_status );
+ return QString::fromLatin1(NM_DBUS_SERVICE);
}
-Solid::Networking::Status NetworkManagerStatus::convertNmState( uint nmState )
+void NetworkManagerStatus::nmStateChanged(uint nmState)
{
- Solid::Networking::Status status = Solid::Networking::Unknown;
-
+ m_status = Solid::Networking::Unknown;
+ // for reference:
+ // https://developer-old.gnome.org/NetworkManager/stable/gdbus-org.freedesktop.NetworkManager.html
switch (nmState) {
- case NM_STATE_UNKNOWN:
- case NM_STATE_ASLEEP:
+ case 0:
+ case 10:
break;
- case NM_STATE_CONNECTING:
- status = Solid::Networking::Connecting;
+ case 20:
+ m_status = Solid::Networking::Unconnected;
break;
-#if NM_CHECK_VERSION(0,8,992)
- case NM_STATE_CONNECTED_LOCAL:
- case NM_STATE_CONNECTED_SITE:
- case NM_STATE_CONNECTED_GLOBAL:
-#else
- case NM_STATE_CONNECTED:
-#endif
- status = Solid::Networking::Connected;
+ case 30:
+ m_status = Solid::Networking::Disconnecting;
break;
- case NM_STATE_DISCONNECTED:
- status = Solid::Networking::Unconnected;
+ case 40:
+ m_status = Solid::Networking::Connecting;
break;
-#if NM_CHECK_VERSION(0,8,992)
- case NM_STATE_DISCONNECTING:
- status = Solid::Networking::Disconnecting;
+ case 50:
+ case 60:
+ case 70:
+ m_status = Solid::Networking::Connected;
break;
-#endif
+ default:
+ kWarning() << "unknown state" << nmState;
}
-
- return status;
+ Q_EMIT statusChanged(m_status);
}
#include "moc_networkmanagerstatus.cpp"
/* This file is part of the KDE project
- Copyright (c) 2010 Klarälvdalens Datakonsult AB,
+ Copyright (c) 2010 Klarlvdalens Datakonsult AB,
a KDAB Group company <info@kdab.com>
Author: Kevin Ottens <kevin.ottens@kdab.com>
{
Q_OBJECT
public:
- NetworkManagerStatus( QObject *parent = 0 );
+ NetworkManagerStatus(QObject *parent = 0);
- /* reimp */ Solid::Networking::Status status() const;
- /* reimp */ bool isSupported() const;
- /* reimp */ QString serviceName() const;
+ // reimplementations
+ Solid::Networking::Status status() const final;
+ bool isSupported() const final;
+ QString serviceName() const final;
private Q_SLOTS:
- void nmStateChanged( uint nmState );
+ void nmStateChanged(uint nmState);
private:
- static Solid::Networking::Status convertNmState( uint nmState );
-
Solid::Networking::Status m_status;
- QDBusInterface m_manager;
+ QDBusInterface m_nm;
};
#endif
#include "systemstatusinterface.h"
-#ifdef NM_BACKEND_ENABLED
#include "networkmanagerstatus.h"
-#endif
-
#include "wicdstatus.h"
#include "connmanstatus.h"
#include "toolkitstatus.h"
void NetworkStatusModule::init()
{
if (backends.isEmpty()) {
-#ifdef NM_BACKEND_ENABLED
backends << new NetworkManagerStatus( this );
-#endif
backends << new WicdStatus( this );
backends << new ConnmanStatus( this );
backends << new ToolkitStatus( this );
{
qDBusRegisterMetaType<WicdConnectionInfo>();
if (isSupported()) {
- QDBusConnection::systemBus().connect(WICD_DBUS_SERVICE, WICD_DAEMON_DBUS_PATH, WICD_DAEMON_DBUS_INTERFACE,
- "StatusChanged", this, SLOT(wicdStateChanged()));
+ connect(&m_wicd, SIGNAL(StatusChanged()), this, SLOT(wicdStateChanged()));
wicdStateChanged();
}
}
{
Q_OBJECT
public:
- WicdStatus( QObject *parent = 0 );
+ WicdStatus(QObject *parent = 0);
- /* reimp */ Solid::Networking::Status status() const;
- /* reimp */ bool isSupported() const;
- /* reimp */ QString serviceName() const;
+ // reimplementations
+ Solid::Networking::Status status() const final;
+ bool isSupported() const final;
+ QString serviceName() const final;
private Q_SLOTS:
void wicdStateChanged();