File indexing completed on 2026-06-14 05:21:53
0001 /* 0002 SPDX-FileCopyrightText: 2020 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <KQuickManagedConfigModule> 0010 #include <KService> 0011 #include <QAbstractListModel> 0012 0013 class KDesktopFile; 0014 class VirtualKeyboardData; 0015 class VirtualKeyboardSettings; 0016 0017 class VirtualKeyboardsModel : public QAbstractListModel 0018 { 0019 Q_OBJECT 0020 public: 0021 enum Roles { 0022 DesktopFileNameRole = Qt::UserRole + 1, 0023 }; 0024 Q_ENUM(Roles) 0025 0026 VirtualKeyboardsModel(QObject *parent = nullptr); 0027 QVariant data(const QModelIndex &index, int role) const override; 0028 int rowCount(const QModelIndex &parent) const override; 0029 0030 QHash<int, QByteArray> roleNames() const override; 0031 0032 Q_SCRIPTABLE int inputMethodIndex(const QString &desktopFile) const; 0033 0034 private: 0035 KService::List m_services; 0036 }; 0037 0038 class KcmVirtualKeyboard : public KQuickManagedConfigModule 0039 { 0040 Q_OBJECT 0041 Q_PROPERTY(VirtualKeyboardSettings *settings READ settings CONSTANT) 0042 Q_PROPERTY(QAbstractItemModel *model READ keyboardsModel CONSTANT) 0043 0044 public: 0045 explicit KcmVirtualKeyboard(QObject *parent, const KPluginMetaData &metaData); 0046 ~KcmVirtualKeyboard() override; 0047 0048 VirtualKeyboardSettings *settings() const; 0049 VirtualKeyboardsModel *keyboardsModel() const 0050 { 0051 return m_model; 0052 } 0053 0054 private: 0055 VirtualKeyboardData *m_data; 0056 VirtualKeyboardsModel *const m_model; 0057 };