17#ifndef KEYBOARDLAYOUTSMODEL_H
18#define KEYBOARDLAYOUTSMODEL_H
20#include <QAbstractListModel>
22struct KeyboardLayoutInfo {
28class KeyboardLayoutsModel:
public QAbstractListModel
32 Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
35 explicit KeyboardLayoutsModel(QObject * parent =
nullptr);
36 ~KeyboardLayoutsModel() =
default;
39 LayoutIdRole = Qt::UserRole + 1,
44 QString language()
const;
45 void setLanguage(
const QString &language);
47 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
48 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
49 QHash<int, QByteArray> roleNames()
const override;
52 void languageChanged(
const QString &language);
61 QHash<int, QByteArray> m_roleNames;
62 QVector<KeyboardLayoutInfo> m_layouts;
63 QVector<KeyboardLayoutInfo> m_db;