File indexing completed on 2024-05-26 05:30:52

0001 /*
0002  *   SPDX-FileCopyrightText: 2012-2016 Ivan Cukic <ivan.cukic@kde.org>
0003  *
0004  *   SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #pragma once
0008 
0009 // Self
0010 #include "KSMServer.h"
0011 
0012 // Qt
0013 #include <QPair>
0014 
0015 // STD
0016 #include <memory>
0017 
0018 class QDBusServiceWatcher;
0019 class QDBusInterface;
0020 class QDBusPendingCallWatcher;
0021 
0022 class KSMServer::Private : public QObject
0023 {
0024     Q_OBJECT
0025 
0026 public:
0027     Private(KSMServer *parent);
0028 
0029     void processLater(const QString &activity, bool start);
0030 
0031 private Q_SLOTS:
0032     void process();
0033     void makeRunning(bool value);
0034 
0035     void startCallFinished(QDBusPendingCallWatcher *watcher);
0036     void stopCallFinished(QDBusPendingCallWatcher *watcher);
0037 
0038     void subSessionSendEvent(int event);
0039 
0040 private:
0041     QDBusInterface *kwin;
0042 
0043     bool processing;
0044     QString processingActivity;
0045     QList<QPair<QString, bool>> queue;
0046 
0047     KSMServer *const q;
0048 };