1#ifndef QPALETTESMODEL_HPP
2#define QPALETTESMODEL_HPP
29#include <QAbstractListModel>
33struct QPalettesModelData
38 QColor activeTitleBarBackground;
39 QColor activeTitleBarForeground;
43Q_DECLARE_TYPEINFO(QPalettesModelData, Q_MOVABLE_TYPE);
45class QPalettesModel :
public QAbstractListModel
49 Q_PROPERTY(QString selectedScheme READ selectedScheme WRITE setSelectedScheme NOTIFY selectedSchemeChanged)
50 Q_PROPERTY(
int selectedSchemeIndex READ selectedSchemeIndex NOTIFY selectedSchemeIndexChanged)
54 QPalettesModel(QObject *parent);
55 ~QPalettesModel()
override;
58 SchemeNameRole = Qt::UserRole + 1,
61 ActiveTitleBarBackgroundRole,
62 ActiveTitleBarForegroundRole,
67 int rowCount(
const QModelIndex &parent)
const override;
68 QVariant data(
const QModelIndex &index,
int role)
const override;
69 bool setData(
const QModelIndex &index,
const QVariant &value,
int role)
override;
70 QHash<int, QByteArray> roleNames()
const override;
71 QPalette getPalette(
int row);
73 QString selectedScheme()
const;
74 void setSelectedScheme(
const QString &scheme);
76 int indexOfScheme(
const QString &scheme)
const;
77 int selectedSchemeIndex()
const;
79 QStringList pendingDeletions()
const;
80 void removeItemsPendingDeletion();
85 void selectedSchemeChanged(
const QString &scheme);
86 void selectedSchemeIndexChanged();
87 void pendingDeletionsChanged();
90 QString m_selectedScheme;
92 QVector<QPalettesModelData> m_data;
94 QVariant readKdeSetting(
const QString &key, QString file);
95 void readKdeSystemPalette(QString file, QPalette *pal);