File indexing completed on 2026-07-06 02:58:26

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 <KQuickAddons/ManagedConfigModule>
0011 #include <KSharedConfig>
0012 
0013 class VirtualDesktopsSettings;
0014 
0015 namespace KWin
0016 {
0017 class VirtualDesktopsData;
0018 class AnimationsModel;
0019 class DesktopsModel;
0020 
0021 class VirtualDesktops : public KQuickAddons::ManagedConfigModule
0022 {
0023     Q_OBJECT
0024 
0025     Q_PROPERTY(QAbstractItemModel *desktopsModel READ desktopsModel CONSTANT)
0026     Q_PROPERTY(QAbstractItemModel *animationsModel READ animationsModel CONSTANT)
0027     Q_PROPERTY(VirtualDesktopsSettings *virtualDesktopsSettings READ virtualDesktopsSettings CONSTANT)
0028 
0029 public:
0030     explicit VirtualDesktops(QObject *parent = nullptr, const QVariantList &list = QVariantList());
0031     ~VirtualDesktops() override;
0032 
0033     QAbstractItemModel *desktopsModel() const;
0034 
0035     QAbstractItemModel *animationsModel() const;
0036 
0037     VirtualDesktopsSettings *virtualDesktopsSettings() const;
0038 
0039     bool isDefaults() const override;
0040     bool isSaveNeeded() const override;
0041 
0042 public Q_SLOTS:
0043     void load() override;
0044     void save() override;
0045     void defaults() override;
0046 
0047     void configureAnimation();
0048     void showAboutAnimation();
0049 
0050 private:
0051     VirtualDesktopsData *m_data;
0052 };
0053 
0054 }