File indexing completed on 2024-04-28 16:55:02

0001 /*
0002     SPDX-FileCopyrightText: 2014 Bhushan Shah <bhush94@gmail.com>
0003     SPDX-FileCopyrightText: 2014 Marco Martin <notmart@gmail.com>
0004 
0005     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0006 */
0007 
0008 #pragma once
0009 
0010 #include "desktopview.h"
0011 #include <plasma/corona.h>
0012 
0013 namespace KActivities
0014 {
0015 class Consumer;
0016 }
0017 
0018 class StandaloneAppCorona : public Plasma::Corona
0019 {
0020     Q_OBJECT
0021 
0022 public:
0023     explicit StandaloneAppCorona(const QString &coronaPlugin, QObject *parent = nullptr);
0024     ~StandaloneAppCorona() override;
0025 
0026     QRect screenGeometry(int id) const override;
0027 
0028     void loadDefaultLayout() override;
0029 
0030     Plasma::Containment *createContainmentForActivity(const QString &activity, int screenNum);
0031 
0032     void insertActivity(const QString &id, const QString &plugin);
0033     Plasma::Containment *addPanel(const QString &plugin);
0034 
0035     Q_INVOKABLE QStringList availableActivities() const;
0036 
0037 public Q_SLOTS:
0038     void load();
0039 
0040     void currentActivityChanged(const QString &newActivity);
0041     void activityAdded(const QString &id);
0042     void activityRemoved(const QString &id);
0043     void toggleWidgetExplorer();
0044 
0045 protected Q_SLOTS:
0046     int screenForContainment(const Plasma::Containment *containment) const override;
0047 
0048 private:
0049     QString m_coronaPlugin;
0050     KActivities::Consumer *m_activityConsumer;
0051     KConfigGroup m_desktopDefaultsConfig;
0052     DesktopView *m_view;
0053     QHash<QString, QString> m_activityContainmentPlugins;
0054 };