13#include "kscreenlocker_interface.h" 
   14#include "screenlocker_interface.h" 
   19static const QString SCREEN_LOCKER_SERVICE_NAME = QStringLiteral(
"org.freedesktop.ScreenSaver");
 
   22    : m_serviceWatcher(new QDBusServiceWatcher(this))
 
 
   32void ScreenLockerWatcher::initialize()
 
   34    connect(m_serviceWatcher, &QDBusServiceWatcher::serviceOwnerChanged, 
this, &ScreenLockerWatcher::serviceOwnerChanged);
 
   35    m_serviceWatcher->setWatchMode(QDBusServiceWatcher::WatchForOwnerChange);
 
   36    m_serviceWatcher->addWatchedService(SCREEN_LOCKER_SERVICE_NAME);
 
   38    m_interface = 
new OrgFreedesktopScreenSaverInterface(SCREEN_LOCKER_SERVICE_NAME, QStringLiteral(
"/ScreenSaver"), QDBusConnection::sessionBus(), 
this);
 
   39    m_kdeInterface = 
new OrgKdeScreensaverInterface(SCREEN_LOCKER_SERVICE_NAME, QStringLiteral(
"/ScreenSaver"), QDBusConnection::sessionBus(), 
this);
 
   40    connect(m_interface, &OrgFreedesktopScreenSaverInterface::ActiveChanged,
 
   41            this, &ScreenLockerWatcher::setLocked);
 
   47void ScreenLockerWatcher::serviceOwnerChanged(
const QString &serviceName, 
const QString &oldOwner, 
const QString &newOwner)
 
   51    if (!newOwner.isEmpty()) {
 
   56void ScreenLockerWatcher::queryActive()
 
   58    QDBusPendingCallWatcher *watcher = 
new QDBusPendingCallWatcher(m_interface->GetActive(), 
this);
 
   59    connect(watcher, &QDBusPendingCallWatcher::finished,
 
   60            this, &ScreenLockerWatcher::activeQueried);
 
   63void ScreenLockerWatcher::activeQueried(QDBusPendingCallWatcher *watcher)
 
   65    QDBusPendingReply<bool> reply = *watcher;
 
   66    if (!reply.isError()) {
 
   67        setLocked(reply.value());
 
   69    watcher->deleteLater();
 
   72void ScreenLockerWatcher::setLocked(
bool activated)
 
   74    if (m_locked == activated) {
 
   87#include "moc_screenlockerwatcher.cpp" 
WaylandServer * waylandServer()