1#ifndef QEPALETTESMODEL_HPP
2#define QEPALETTESMODEL_HPP
28#include "QePalette.hpp"
29#include <QAbstractListModel>
35struct QePalettesModelData
40 QColor activeTitleBarBackground;
41 QColor activeTitleBarForeground;
45Q_DECLARE_TYPEINFO(QePalettesModelData, Q_MOVABLE_TYPE);
47class QePalettesModel :
public QAbstractListModel
51 Q_PROPERTY(QString selectedScheme READ selectedScheme WRITE setSelectedScheme NOTIFY selectedSchemeChanged)
52 Q_PROPERTY(
int selectedSchemeIndex READ selectedSchemeIndex NOTIFY selectedSchemeIndexChanged)
56 QePalettesModel(QObject *parent);
57 ~QePalettesModel()
override;
60 SchemeNameRole = Qt::UserRole + 1,
63 ActiveTitleBarBackgroundRole,
64 ActiveTitleBarForegroundRole,
69 int rowCount(
const QModelIndex &parent)
const override;
70 QVariant data(
const QModelIndex &index,
int role)
const override;
71 bool setData(
const QModelIndex &index,
const QVariant &value,
int role)
override;
72 QHash<int, QByteArray> roleNames()
const override;
73 QePalette getPalette(
int row);
75 QString selectedScheme()
const;
76 void setSelectedScheme(
const QString &scheme);
78 int indexOfScheme(
const QString &scheme)
const;
79 int selectedSchemeIndex()
const;
81 QStringList pendingDeletions()
const;
82 void removeItemsPendingDeletion();
86 QAction* colorSchemeMenu();
89 void handle_colorSchemesMenuEntry_triggered();
93 void selectedSchemeChanged(
const QString &scheme);
94 void selectedSchemeIndexChanged();
95 void pendingDeletionsChanged();
98 QString m_selectedScheme;
99 QVector<QePalettesModelData> m_data;
100 QAction* m_colors_scheme_menu;
102 QVariant readKdeSetting(
const QString &key, QString file);
103 void readKdeSystemPalette(QString file, QePalette *pal);