9#include <KApplicationTrader>
10#include <KConfigGroup>
11#include <KDesktopFile>
12#include <KLocalizedString>
13#include <KPluginFactory>
15#include <virtualkeyboarddata.h>
16#include <virtualkeyboardsettings.h>
18K_PLUGIN_FACTORY_WITH_JSON(KcmVirtualKeyboardFactory,
"kcm_virtualkeyboard.json", registerPlugin<KcmVirtualKeyboard>(); registerPlugin<VirtualKeyboardData>();)
21 : KQuickManagedConfigModule(parent, metaData)
22 , m_data(new VirtualKeyboardData(this))
25 qmlRegisterAnonymousType<VirtualKeyboardSettings>(
"org.kde.kwin.virtualkeyboardsettings", 1);
32 return m_data->settings();
36 : QAbstractListModel(parent)
38 m_services = KApplicationTrader::query([](
const KService::Ptr &service) {
39 return service->property<
bool>(
"X-KDE-Wayland-VirtualKeyboard");
42 m_services.prepend({});
47 QHash<int, QByteArray> ret = QAbstractListModel::roleNames();
54 if (!index.isValid() || index.parent().isValid() || index.row() > m_services.count()) {
58 const KService::Ptr service = m_services[index.row()];
61 return service ? service->name() : i18n(
"None");
62 case Qt::DecorationRole:
63 return service ? service->icon() : QStringLiteral(
"edit-none");
65 return service ? service->comment() : i18n(
"Do not use any virtual keyboard");
67 return service ? QStandardPaths::locate(QStandardPaths::ApplicationsLocation, service->desktopEntryName() + QLatin1String(
".desktop")) : QString();
74 if (desktopFile.isEmpty()) {
79 for (
const auto &service : m_services) {
80 if (service && desktopFile.endsWith(service->desktopEntryName() + QLatin1String(
".desktop"))) {
90 return parent.isValid() ? 0 : m_services.count();
93#include "kcmvirtualkeyboard.moc"
94#include "moc_kcmvirtualkeyboard.cpp"
~KcmVirtualKeyboard() override
VirtualKeyboardSettings * settings
KcmVirtualKeyboard(QObject *parent, const KPluginMetaData &metaData)
Q_SCRIPTABLE int inputMethodIndex(const QString &desktopFile) const
VirtualKeyboardsModel(QObject *parent=nullptr)
QHash< int, QByteArray > roleNames() const override
int rowCount(const QModelIndex &parent) const override
QVariant data(const QModelIndex &index, int role) const override
K_PLUGIN_FACTORY_WITH_JSON(KcmVirtualKeyboardFactory, "kcm_virtualkeyboard.json", registerPlugin< KcmVirtualKeyboard >();registerPlugin< VirtualKeyboardData >();) KcmVirtualKeyboard