File indexing completed on 2024-05-12 16:59:20

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