File indexing completed on 2026-07-12 16:17:44
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 "utils.h" 0009 0010 #include <KDecoration2/DecorationThemeProvider> 0011 #include <QAbstractListModel> 0012 0013 namespace KDecoration2 0014 { 0015 0016 namespace Configuration 0017 { 0018 0019 class DecorationsModel : public QAbstractListModel 0020 { 0021 Q_OBJECT 0022 public: 0023 enum DecorationRole { 0024 PluginNameRole = Qt::UserRole + 1, 0025 ThemeNameRole, 0026 ConfigurationRole, 0027 RecommendedBorderSizeRole, 0028 }; 0029 0030 public: 0031 explicit DecorationsModel(QObject *parent = nullptr); 0032 ~DecorationsModel() override; 0033 0034 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 0035 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0036 QHash<int, QByteArray> roleNames() const override; 0037 0038 QModelIndex findDecoration(const QString &pluginName, const QString &themeName = QString()) const; 0039 0040 QStringList knsProviders() const 0041 { 0042 return m_knsProviders; 0043 } 0044 0045 public Q_SLOTS: 0046 void init(); 0047 0048 private: 0049 std::vector<KDecoration2::DecorationThemeMetaData> m_plugins; 0050 QStringList m_knsProviders; 0051 }; 0052 0053 } 0054 }