File indexing completed on 2026-06-07 05:41:21
0001 /* 0002 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 #pragma once 0007 0008 #include <KDecoration2/DecorationThemeProvider> 0009 #include <QAbstractListModel> 0010 0011 namespace KDecoration2 0012 { 0013 0014 namespace Configuration 0015 { 0016 0017 class DecorationsModel : public QAbstractListModel 0018 { 0019 Q_OBJECT 0020 public: 0021 enum DecorationRole { 0022 PluginNameRole = Qt::UserRole + 1, 0023 ThemeNameRole, 0024 ConfigurationRole, 0025 RecommendedBorderSizeRole, 0026 KcmoduleNameRole, 0027 }; 0028 0029 public: 0030 explicit DecorationsModel(QObject *parent = nullptr); 0031 ~DecorationsModel() override; 0032 0033 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 0034 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0035 QHash<int, QByteArray> roleNames() const override; 0036 0037 QModelIndex findDecoration(const QString &pluginName, const QString &themeName = QString()) const; 0038 0039 QStringList knsProviders() const 0040 { 0041 return m_knsProviders; 0042 } 0043 0044 public Q_SLOTS: 0045 void init(); 0046 0047 private: 0048 std::vector<KDecoration2::DecorationThemeMetaData> m_plugins; 0049 QStringList m_knsProviders; 0050 }; 0051 0052 } 0053 }