File indexing completed on 2024-06-09 05:25:45

0001 /*
0002     SPDX-FileCopyrightText: 2018 Eike Hein <hein@kde.org>
0003     SPDX-FileCopyrightText: 2018 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include <KQuickManagedConfigModule>
0011 #include <KSharedConfig>
0012 #include <QAbstractItemModel>
0013 
0014 class VirtualDesktopsSettings;
0015 
0016 namespace KWin
0017 {
0018 class VirtualDesktopsData;
0019 class AnimationsModel;
0020 class DesktopsModel;
0021 
0022 class VirtualDesktops : public KQuickManagedConfigModule
0023 {
0024     Q_OBJECT
0025 
0026     Q_PROPERTY(QAbstractItemModel *desktopsModel READ desktopsModel CONSTANT)
0027     Q_PROPERTY(QAbstractItemModel *animationsModel READ animationsModel CONSTANT)
0028     Q_PROPERTY(VirtualDesktopsSettings *virtualDesktopsSettings READ virtualDesktopsSettings CONSTANT)
0029 
0030 public:
0031     explicit VirtualDesktops(QObject *parent, const KPluginMetaData &metaData);
0032     ~VirtualDesktops() override;
0033 
0034     QAbstractItemModel *desktopsModel() const;
0035 
0036     QAbstractItemModel *animationsModel() const;
0037 
0038     VirtualDesktopsSettings *virtualDesktopsSettings() const;
0039 
0040     bool isDefaults() const override;
0041     bool isSaveNeeded() const override;
0042 
0043 public Q_SLOTS:
0044     void load() override;
0045     void save() override;
0046     void defaults() override;
0047 
0048     void configureAnimation();
0049     void showAboutAnimation();
0050 
0051 private:
0052     VirtualDesktopsData *m_data;
0053 };
0054 
0055 }