/* SPDX-FileCopyrightText: 2024 Evgeny Chesnokov SPDX-License-Identifier: GPL-2.0-or-later */ #include "layoutmodel.h" #include "debug.h" #include "keyboardsettings.h" #include "x11_helper.h" #include "xkb_rules.h" LayoutModel::LayoutModel(QObject *parent) noexcept : QAbstractListModel(parent) { for (const LayoutInfo &layoutInfo : std::as_const(Rules::self().layoutInfos)) { m_data.append(Data(layoutInfo.name, layoutInfo.description, QStringLiteral(""))); for (const VariantInfo &variantInfo : layoutInfo.variantInfos) { m_data.append(Data(layoutInfo.name, variantInfo.description, variantInfo.name)); } } } int LayoutModel::rowCount(const QModelIndex &parent) const { return m_data.count(); } QVariant LayoutModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); if (index.row() >= m_data.size()) return QVariant(); const auto &layout = m_data.at(index.row()); if (role == Roles::DescripionRole || role == Qt::DisplayRole) { return layout.description; } else if (role == Roles::ShortNameRole) { return layout.name; } else if (role == Roles::VariantNameRole) { return layout.variantName; } return QVariant(); } QHash LayoutModel::roleNames() const { return { {Qt::DisplayRole, QByteArrayLiteral("display")}, {Roles::ShortNameRole, QByteArrayLiteral("shortName")}, {Roles::DescripionRole, QByteArrayLiteral("description")}, {Roles::VariantNameRole, QByteArrayLiteral("variantName")}, }; } #include "layoutmodel.moc" #include "moc_layoutmodel.cpp"