File indexing completed on 2024-05-19 05:29:32

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 // Qt
0010 #include <QApplication>
0011 
0012 // Utils
0013 #include <utils/d_ptr.h>
0014 
0015 class Resources;
0016 class Activities;
0017 class Features;
0018 
0019 /**
0020  * Main application object
0021  * This can *not* be a QGuiApplication because
0022  * we need KWindowSystem widgets.
0023  */
0024 class Application : public QApplication
0025 {
0026     Q_OBJECT
0027     Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Application")
0028 
0029 public:
0030     Application(int &argc, char **argv);
0031     ~Application() override;
0032 
0033     virtual int newInstance();
0034 
0035     // static Application * self();
0036     // static void quit();
0037 
0038     Resources &resources() const;
0039     Activities &activities() const;
0040     Features &features() const;
0041 
0042 public Q_SLOTS:
0043     void quit();
0044     QString serviceVersion() const;
0045     bool loadPlugin(const QString &plugin);
0046     QStringList loadedPlugins() const;
0047 
0048 private Q_SLOTS:
0049     void init();
0050     void loadPlugins();
0051 
0052 private:
0053     D_PTR;
0054 
0055     friend int main(int, char **);
0056 };