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