File indexing completed on 2024-05-19 04:48:08
0001 #pragma once 0002 #include <QObject> 0003 #include <QAbstractListModel> 0004 #include <QQmlParserStatus> 0005 0006 #if defined Q_OS_MACOS || defined Q_OS_WIN32 0007 #include <KF5/KSyntaxHighlighting/Repository> 0008 #include <KF5/KSyntaxHighlighting/Theme> 0009 #else 0010 #include <KSyntaxHighlighting/Repository> 0011 #include <KSyntaxHighlighting/Theme> 0012 #endif 0013 0014 0015 class ColorSchemesModel : public QAbstractListModel, public QQmlParserStatus 0016 { 0017 Q_INTERFACES(QQmlParserStatus) 0018 Q_OBJECT 0019 public: 0020 0021 enum Role 0022 { 0023 Name, 0024 Foreground, 0025 Background, 0026 Highlight, 0027 Color3, 0028 Color4, 0029 Color5 0030 }; 0031 0032 0033 ColorSchemesModel(QObject * parent = nullptr); 0034 0035 // QQmlParserStatus interface 0036 public: 0037 void classBegin() override final; 0038 void componentComplete() override final; 0039 0040 private: 0041 QVector<KSyntaxHighlighting::Theme> m_list; 0042 void setList(); 0043 0044 // QAbstractItemModel interface 0045 public: 0046 int rowCount(const QModelIndex &parent) const override final; 0047 QVariant data(const QModelIndex &index, int role) const override final; 0048 QHash<int, QByteArray> roleNames() const override final; 0049 }; 0050