File indexing completed on 2024-05-12 05:36:19

0001 /*
0002     SPDX-FileCopyrightText: 2020 Bhushan Shah <bshah@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 
0007 #ifndef LANGUAGEMODEL_H
0008 #define LANGUAGEMODEL_H
0009 
0010 #include "gsettingsitem.h"
0011 #include <QAbstractListModel>
0012 
0013 struct Data {
0014     QString langCode;
0015     QString langName;
0016     bool enabled;
0017 };
0018 
0019 class LanguageModel : public QAbstractListModel
0020 {
0021     enum ModelRoles {
0022         NameRole = Qt::DisplayRole,
0023         EnabledRole = Qt::UserRole + 1,
0024         LanguageIdRole,
0025     };
0026 
0027     Q_OBJECT
0028 public:
0029     LanguageModel(QObject *parent, GSettingsItem *gsettingsItem);
0030 
0031     QVariant data(const QModelIndex &index, int role) const override;
0032     int rowCount(const QModelIndex &parent = QModelIndex()) const override;
0033     bool setData(const QModelIndex &index, const QVariant &value, int role) override;
0034 
0035     QHash<int, QByteArray> roleNames() const override;
0036 
0037 private:
0038     QVector<Data> m_languages;
0039     void loadPlugins();
0040     GSettingsItem *m_gsettings;
0041 };
0042 
0043 #endif