aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarkko Koivikko <jarkko.koivikko@code-q.fi>2021-01-27 13:56:37 +0200
committerJarkko Koivikko <jarkko.koivikko@code-q.fi>2021-01-29 13:30:43 +0200
commit87d6c20c9c8025a9a293e62ea94c47a23454bda8 (patch)
tree23f6b55be5ba4559f53086395e82d932f1139b5a
parent6e83e31eeba0df1adc97a129a29dbf179370e41e (diff)
Add generic dictionary API for the virtual keyboard v2
- Dictionary manager API provides applications methods to create custom dictionaries for use in the virtual keyboard input methods. - The dictionaries can be activated from both C++ and QML. v2: Update CMake project [ChangeLog] Added a generic dictionary API. The API allows applications to create/update/remove dictionaries at runtime. The desired dictionaries can be activated from the application. The implementation of the dictionaries depends on the input method. A typical use case for this API would be a phone book. Change-Id: I8fcb931eff2adff80b4a458a676ba25d51df2ec9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/import/qtquickvirtualkeyboardplugin.cpp4
-rw-r--r--src/virtualkeyboard/.prev_CMakeLists.txt4
-rw-r--r--src/virtualkeyboard/CMakeLists.txt4
-rw-r--r--src/virtualkeyboard/qvirtualkeyboarddictionary.cpp59
-rw-r--r--src/virtualkeyboard/qvirtualkeyboarddictionary.h64
-rw-r--r--src/virtualkeyboard/qvirtualkeyboarddictionarymanager.cpp155
-rw-r--r--src/virtualkeyboard/qvirtualkeyboarddictionarymanager.h80
-rw-r--r--src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp13
-rw-r--r--src/virtualkeyboard/virtualkeyboard.cpp77
-rw-r--r--src/virtualkeyboard/virtualkeyboard.pro8
-rw-r--r--src/virtualkeyboard/virtualkeyboard_p.h65
-rw-r--r--src/virtualkeyboard/virtualkeyboardattachedtype.cpp59
-rw-r--r--src/virtualkeyboard/virtualkeyboardattachedtype_p.h72
-rw-r--r--tests/auto/.prev_CMakeLists.txt1
-rw-r--r--tests/auto/CMakeLists.txt1
-rw-r--r--tests/auto/auto.pro1
-rw-r--r--tests/auto/dictionarymanager/.prev_CMakeLists.txt26
-rw-r--r--tests/auto/dictionarymanager/CMakeLists.txt26
-rw-r--r--tests/auto/dictionarymanager/dictionarymanager.pro13
-rw-r--r--tests/auto/dictionarymanager/tst_dictionarymanager.cpp95
-rw-r--r--tests/auto/layoutfilesystem/.prev_CMakeLists.txt33
-rw-r--r--tests/auto/layoutresources/.prev_CMakeLists.txt45
-rw-r--r--tests/auto/styles/.prev_CMakeLists.txt38
-rw-r--r--tests/manual/quickcontrols2/.prev_CMakeLists.txt31
-rw-r--r--tests/manual/x11vkbtest/.prev_CMakeLists.txt31
-rw-r--r--tests/manual/x11vkbtest/CMakeLists.txt2
-rw-r--r--tests/manual/x11vkbwrapper/.prev_CMakeLists.txt74
-rw-r--r--tests/manual/x11vkbwrapper/vkbnativehost/.prev_CMakeLists.txt19
28 files changed, 1098 insertions, 2 deletions
diff --git a/src/import/qtquickvirtualkeyboardplugin.cpp b/src/import/qtquickvirtualkeyboardplugin.cpp
index ce4dd7bd..216efbab 100644
--- a/src/import/qtquickvirtualkeyboardplugin.cpp
+++ b/src/import/qtquickvirtualkeyboardplugin.cpp
@@ -42,6 +42,8 @@
#include <QtVirtualKeyboard/private/qvirtualkeyboard_staticplugin_p.h>
#include <QtVirtualKeyboard/qvirtualkeyboardobserver.h>
#include <QtVirtualKeyboard/qvirtualkeyboard_namespace.h>
+#include <QtVirtualKeyboard/private/virtualkeyboard_p.h>
+#include <QtVirtualKeyboard/private/virtualkeyboardattachedtype_p.h>
QT_BEGIN_NAMESPACE
@@ -89,6 +91,8 @@ void QtQuickVirtualKeyboardPlugin::registerTypes(const char *uri)
qmlRegisterUncreatableType<ShadowInputContext>(uri, 2, 2, "ShadowInputContext", QLatin1String("Cannot create shadow input context"));
qmlRegisterType<QVirtualKeyboardObserver>(uri, 6, 1, "KeyboardObserver");
qmlRegisterUncreatableMetaObject(QtVirtualKeyboard::staticMetaObject, uri, 6, 1, "QtVirtualKeyboard", "Cannot create namespace");
+ qmlRegisterAnonymousType<VirtualKeyboardAttachedType>(uri, 6);
+ qmlRegisterType<VirtualKeyboard>(uri, 6, 1, "VirtualKeyboard");
const QString path(QStringLiteral("qrc:///QtQuick/VirtualKeyboard/content/"));
qmlRegisterType(QUrl(path + QLatin1String("InputPanel.qml")), uri, 1, 0, "InputPanel");
diff --git a/src/virtualkeyboard/.prev_CMakeLists.txt b/src/virtualkeyboard/.prev_CMakeLists.txt
index b536120f..04447107 100644
--- a/src/virtualkeyboard/.prev_CMakeLists.txt
+++ b/src/virtualkeyboard/.prev_CMakeLists.txt
@@ -18,12 +18,16 @@ qt_internal_add_module(VirtualKeyboard
handwritinggesturerecognizer.cpp handwritinggesturerecognizer_p.h
inputmethod.cpp inputmethod_p.h
inputselectionhandle.cpp inputselectionhandle_p.h
+ virtualkeyboard.cpp virtualkeyboard_p.h
+ virtualkeyboardattachedtype.cpp virtualkeyboardattachedtype_p.h
plaininputmethod.cpp plaininputmethod_p.h
platforminputcontext.cpp platforminputcontext_p.h
qvirtualkeyboard_global.h qvirtualkeyboard_global_p.h
qvirtualkeyboard_namespace.h
qvirtualkeyboard_staticplugin_p.h
qvirtualkeyboardabstractinputmethod.cpp qvirtualkeyboardabstractinputmethod.h
+ qvirtualkeyboarddictionary.cpp qvirtualkeyboarddictionary.h
+ qvirtualkeyboarddictionarymanager.cpp qvirtualkeyboarddictionarymanager.h
qvirtualkeyboardextensionplugin.cpp qvirtualkeyboardextensionplugin.h
qvirtualkeyboardinputcontext.cpp qvirtualkeyboardinputcontext.h qvirtualkeyboardinputcontext_p.cpp qvirtualkeyboardinputcontext_p.h
qvirtualkeyboardinputengine.cpp qvirtualkeyboardinputengine.h
diff --git a/src/virtualkeyboard/CMakeLists.txt b/src/virtualkeyboard/CMakeLists.txt
index 279341c4..7025c725 100644
--- a/src/virtualkeyboard/CMakeLists.txt
+++ b/src/virtualkeyboard/CMakeLists.txt
@@ -30,12 +30,16 @@ qt_internal_add_module(VirtualKeyboard
handwritinggesturerecognizer.cpp handwritinggesturerecognizer_p.h
inputmethod.cpp inputmethod_p.h
inputselectionhandle.cpp inputselectionhandle_p.h
+ virtualkeyboard.cpp virtualkeyboard_p.h
+ virtualkeyboardattachedtype.cpp virtualkeyboardattachedtype_p.h
plaininputmethod.cpp plaininputmethod_p.h
platforminputcontext.cpp platforminputcontext_p.h
qvirtualkeyboard_global.h qvirtualkeyboard_global_p.h
qvirtualkeyboard_namespace.h
qvirtualkeyboard_staticplugin_p.h
qvirtualkeyboardabstractinputmethod.cpp qvirtualkeyboardabstractinputmethod.h
+ qvirtualkeyboarddictionary.cpp qvirtualkeyboarddictionary.h
+ qvirtualkeyboarddictionarymanager.cpp qvirtualkeyboarddictionarymanager.h
qvirtualkeyboardextensionplugin.cpp qvirtualkeyboardextensionplugin.h
qvirtualkeyboardinputcontext.cpp qvirtualkeyboardinputcontext.h qvirtualkeyboardinputcontext_p.cpp qvirtualkeyboardinputcontext_p.h
qvirtualkeyboardinputengine.cpp qvirtualkeyboardinputengine.h
diff --git a/src/virtualkeyboard/qvirtualkeyboarddictionary.cpp b/src/virtualkeyboard/qvirtualkeyboarddictionary.cpp
new file mode 100644
index 00000000..d8983b05
--- /dev/null
+++ b/src/virtualkeyboard/qvirtualkeyboarddictionary.cpp
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtVirtualKeyboard/qvirtualkeyboarddictionary.h>
+
+QVirtualKeyboardDictionary::QVirtualKeyboardDictionary(const QString &name, QObject *parent) :
+ QObject(parent),
+ _name(name)
+{
+
+}
+
+QString QVirtualKeyboardDictionary::name() const
+{
+ return _name;
+}
+
+QStringList QVirtualKeyboardDictionary::contents() const
+{
+ return _wordList;
+}
+
+void QVirtualKeyboardDictionary::setContents(const QStringList &wordList)
+{
+ if (_wordList != wordList) {
+ _wordList = wordList;
+ emit contentsChanged();
+ }
+}
+
+QT_BEGIN_NAMESPACE
+
+QT_END_NAMESPACE
diff --git a/src/virtualkeyboard/qvirtualkeyboarddictionary.h b/src/virtualkeyboard/qvirtualkeyboarddictionary.h
new file mode 100644
index 00000000..18d0b433
--- /dev/null
+++ b/src/virtualkeyboard/qvirtualkeyboarddictionary.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QVIRTUALKEYBOARDDICTIONARY_H
+#define QVIRTUALKEYBOARDDICTIONARY_H
+
+#include <QtVirtualKeyboard/qvirtualkeyboard_global.h>
+#include <QStringList>
+#include <QObject>
+
+QT_BEGIN_NAMESPACE
+
+class QVIRTUALKEYBOARD_EXPORT QVirtualKeyboardDictionary : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QString name READ name CONSTANT)
+ Q_PROPERTY(QStringList contents READ contents WRITE setContents NOTIFY contentsChanged)
+
+ explicit QVirtualKeyboardDictionary(const QString &name, QObject *parent = nullptr);
+ friend class QVirtualKeyboardDictionaryManager;
+
+public:
+ QString name() const;
+
+ QStringList contents() const;
+ void setContents(const QStringList &contents);
+
+Q_SIGNALS:
+ void contentsChanged();
+
+private:
+ const QString _name;
+ QStringList _wordList;
+};
+
+QT_END_NAMESPACE
+
+#endif // QVIRTUALKEYBOARDDICTIONARY_H
diff --git a/src/virtualkeyboard/qvirtualkeyboarddictionarymanager.cpp b/src/virtualkeyboard/qvirtualkeyboarddictionarymanager.cpp
new file mode 100644
index 00000000..730b4772
--- /dev/null
+++ b/src/virtualkeyboard/qvirtualkeyboarddictionarymanager.cpp
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtVirtualKeyboard/qvirtualkeyboarddictionarymanager.h>
+#include <QtVirtualKeyboard/qvirtualkeyboarddictionary.h>
+#include <QtGlobal>
+#include <QSet>
+
+#include <QtCore/private/qobject_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QVirtualKeyboardDictionaryManagerPrivate : public QObjectPrivate
+{
+ Q_DECLARE_PUBLIC(QVirtualKeyboardDictionaryManager)
+public:
+ QVirtualKeyboardDictionaryManagerPrivate(QVirtualKeyboardDictionaryManager *q)
+ {
+ q_ptr = q;
+ }
+
+ void updateActiveDictionaries()
+ {
+ Q_Q(QVirtualKeyboardDictionaryManager);
+ QSet<QString> newActiveDictionaries(baseDictionaries);
+ newActiveDictionaries.unite(extraDictionaries);
+ if (activeDictionaries != newActiveDictionaries) {
+ activeDictionaries = newActiveDictionaries;
+ emit q->activeDictionariesChanged();
+ }
+ }
+
+ QSet<QString> baseDictionaries;
+ QSet<QString> extraDictionaries;
+ QSet<QString> activeDictionaries;
+ QMap<QString, QVirtualKeyboardDictionary *> dictionaries;
+};
+
+struct QVirtualKeyboardDictionaryManagerSingleton {
+ QVirtualKeyboardDictionaryManager instance;
+};
+
+Q_GLOBAL_STATIC(QVirtualKeyboardDictionaryManagerSingleton, singleton)
+
+QVirtualKeyboardDictionaryManager::QVirtualKeyboardDictionaryManager(QObject *parent) :
+ QObject(*new QVirtualKeyboardDictionaryManagerPrivate(this), parent)
+{
+ Q_D(QVirtualKeyboardDictionaryManager);
+ connect(this, &QVirtualKeyboardDictionaryManager::baseDictionariesChanged,
+ [=](){ d->updateActiveDictionaries(); });
+ connect(this, &QVirtualKeyboardDictionaryManager::extraDictionariesChanged,
+ [=](){ d->updateActiveDictionaries(); });
+}
+
+QVirtualKeyboardDictionaryManager *QVirtualKeyboardDictionaryManager::instance()
+{
+ return &singleton->instance;
+}
+
+QStringList QVirtualKeyboardDictionaryManager::availableDictionaries() const
+{
+ Q_D(const QVirtualKeyboardDictionaryManager);
+ return d->dictionaries.keys();
+}
+
+QStringList QVirtualKeyboardDictionaryManager::baseDictionaries() const
+{
+ Q_D(const QVirtualKeyboardDictionaryManager);
+ return d->baseDictionaries.values();
+}
+
+void QVirtualKeyboardDictionaryManager::setBaseDictionaries(const QStringList &baseDictionaries)
+{
+ Q_D(QVirtualKeyboardDictionaryManager);
+ QSet<QString> newBaseDictionaries(baseDictionaries.begin(), baseDictionaries.end());
+ const QStringList availableDict = availableDictionaries();
+ newBaseDictionaries.intersect(QSet<QString>(availableDict.begin(), availableDict.end()));
+ if (d->baseDictionaries != newBaseDictionaries) {
+ d->baseDictionaries = newBaseDictionaries;
+ emit baseDictionariesChanged();
+ }
+}
+
+QStringList QVirtualKeyboardDictionaryManager::extraDictionaries() const
+{
+ Q_D(const QVirtualKeyboardDictionaryManager);
+ return d->extraDictionaries.values();
+}
+
+void QVirtualKeyboardDictionaryManager::setExtraDictionaries(const QStringList &extraDictionaries)
+{
+ Q_D(QVirtualKeyboardDictionaryManager);
+ QSet<QString> newExtraDictionaries(extraDictionaries.begin(), extraDictionaries.end());
+ const QStringList availableDict = availableDictionaries();
+ newExtraDictionaries.intersect(QSet<QString>(availableDict.begin(), availableDict.end()));
+ if (d->extraDictionaries != newExtraDictionaries) {
+ d->extraDictionaries = newExtraDictionaries;
+ emit extraDictionariesChanged();
+ }
+}
+
+QStringList QVirtualKeyboardDictionaryManager::activeDictionaries() const
+{
+ Q_D(const QVirtualKeyboardDictionaryManager);
+ return d->activeDictionaries.values();
+}
+
+QVirtualKeyboardDictionary *QVirtualKeyboardDictionaryManager::createDictionary(const QString &name)
+{
+ Q_D(QVirtualKeyboardDictionaryManager);
+
+ QVirtualKeyboardDictionary *dictionary = d->dictionaries.value(name);
+ if (!dictionary) {
+ dictionary = new QVirtualKeyboardDictionary(name, this);
+ d->dictionaries[name] = dictionary;
+ emit availableDictionariesChanged();
+ }
+
+ return dictionary;
+}
+
+QVirtualKeyboardDictionary *QVirtualKeyboardDictionaryManager::dictionary(const QString &name) const
+{
+ Q_D(const QVirtualKeyboardDictionaryManager);
+
+ return d->dictionaries.value(name);
+}
+
+QT_END_NAMESPACE
diff --git a/src/virtualkeyboard/qvirtualkeyboarddictionarymanager.h b/src/virtualkeyboard/qvirtualkeyboarddictionarymanager.h
new file mode 100644
index 00000000..09122583
--- /dev/null
+++ b/src/virtualkeyboard/qvirtualkeyboarddictionarymanager.h
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QVIRTUALKEYBOARDDICTIONARYMANAGER_H
+#define QVIRTUALKEYBOARDDICTIONARYMANAGER_H
+
+#include <QtVirtualKeyboard/qvirtualkeyboard_global.h>
+#include <QStringList>
+#include <QObject>
+
+QT_BEGIN_NAMESPACE
+
+class QVirtualKeyboardDictionary;
+class QVirtualKeyboardDictionaryManagerPrivate;
+
+class QVIRTUALKEYBOARD_EXPORT QVirtualKeyboardDictionaryManager : public QObject
+{
+ Q_OBJECT
+ Q_DISABLE_COPY(QVirtualKeyboardDictionaryManager)
+ Q_DECLARE_PRIVATE(QVirtualKeyboardDictionaryManager)
+ Q_PROPERTY(QStringList availableDictionaries READ availableDictionaries NOTIFY availableDictionariesChanged)
+ Q_PROPERTY(QStringList baseDictionaries READ baseDictionaries WRITE setBaseDictionaries NOTIFY baseDictionariesChanged)
+ Q_PROPERTY(QStringList extraDictionaries READ extraDictionaries WRITE setExtraDictionaries NOTIFY extraDictionariesChanged)
+ Q_PROPERTY(QStringList activeDictionaries READ activeDictionaries NOTIFY activeDictionariesChanged)
+
+ explicit QVirtualKeyboardDictionaryManager(QObject *parent = nullptr);
+ friend struct QVirtualKeyboardDictionaryManagerSingleton;
+
+public:
+ static QVirtualKeyboardDictionaryManager *instance();
+
+ QStringList availableDictionaries() const;
+
+ QStringList baseDictionaries() const;
+ void setBaseDictionaries(const QStringList &baseDictionaries);
+
+ QStringList extraDictionaries() const;
+ void setExtraDictionaries(const QStringList &extraDictionaries);
+
+ QStringList activeDictionaries() const;
+
+ QVirtualKeyboardDictionary *createDictionary(const QString &name);
+ QVirtualKeyboardDictionary *dictionary(const QString &name) const;
+
+Q_SIGNALS:
+ void availableDictionariesChanged();
+ void baseDictionariesChanged();
+ void extraDictionariesChanged();
+ void activeDictionariesChanged();
+};
+
+QT_END_NAMESPACE
+
+#endif // QVIRTUALKEYBOARDDICTIONARYMANAGER_H
diff --git a/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp b/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
index f19392f0..8aaf9dec 100644
--- a/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
+++ b/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
@@ -35,6 +35,8 @@
#include <QtVirtualKeyboard/private/enterkeyaction_p.h>
#include <QtVirtualKeyboard/qvirtualkeyboardinputengine.h>
#include <QtVirtualKeyboard/qvirtualkeyboardobserver.h>
+#include <QtVirtualKeyboard/private/virtualkeyboardattachedtype_p.h>
+#include <QtVirtualKeyboard/qvirtualkeyboarddictionarymanager.h>
#include <QFile>
#include <QGuiApplication>
@@ -272,7 +274,8 @@ void QVirtualKeyboardInputContextPrivate::forceCursorPosition(int anchorPosition
void QVirtualKeyboardInputContextPrivate::onInputItemChanged()
{
- if (QObject *item = inputItem()) {
+ QObject *item = inputItem();
+ if (item) {
if (QQuickItem *vkbPanel = qobject_cast<QQuickItem*>(inputPanel)) {
if (QQuickItem *quickItem = qobject_cast<QQuickItem*>(item)) {
const QVariant isDesktopPanel = vkbPanel->property("desktopPanel");
@@ -292,6 +295,14 @@ void QVirtualKeyboardInputContextPrivate::onInputItemChanged()
}
}
clearState(State::InputMethodClick);
+
+ QStringList extraDictionaries;
+ if (item) {
+ VirtualKeyboardAttachedType *virtualKeyboardAttachedType = static_cast<VirtualKeyboardAttachedType *>(qmlAttachedPropertiesObject<VirtualKeyboard>(item, false));
+ if (virtualKeyboardAttachedType)
+ extraDictionaries = virtualKeyboardAttachedType->extraDictionaries();
+ }
+ QVirtualKeyboardDictionaryManager::instance()->setExtraDictionaries(extraDictionaries);
}
void QVirtualKeyboardInputContextPrivate::sendPreedit(const QString &text, const QList<QInputMethodEvent::Attribute> &attributes, int replaceFrom, int replaceLength)
diff --git a/src/virtualkeyboard/virtualkeyboard.cpp b/src/virtualkeyboard/virtualkeyboard.cpp
new file mode 100644
index 00000000..5da978fe
--- /dev/null
+++ b/src/virtualkeyboard/virtualkeyboard.cpp
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtVirtualKeyboard/private/virtualkeyboard_p.h>
+#include <QtVirtualKeyboard/private/virtualkeyboardattachedtype_p.h>
+
+QT_BEGIN_NAMESPACE
+namespace QtVirtualKeyboard {
+
+/*!
+ \qmltype VirtualKeyboard
+ \inqmlmodule QtQuick.VirtualKeyboard
+ \ingroup qtvirtualkeyboard-qml
+ \brief Provides attached properties for customizing the virtual keyboard.
+ \since QtQuick.VirtualKeyboard 6.1
+
+ The VirtualKeyboard type provides attached properties which allow
+ customizing the virtual keyboard, such as attaching custom dictionaries.
+
+ The VirtualKeyboard must be used directly inside the item
+ receiving input focus, e.g. TextInput.
+
+ For example:
+ \code
+ TextInput {
+ VirtualKeyboard.dictionaries: ["myDictionary"]
+ }
+ \endcode
+*/
+
+/*!
+ \class QtVirtualKeyboard::VirtualKeyboard
+ \internal
+*/
+
+/*!
+ \internal
+*/
+VirtualKeyboardAttachedType *VirtualKeyboard::qmlAttachedProperties(QObject *object)
+{
+ return new VirtualKeyboardAttachedType(object);
+}
+
+/*!
+ \qmlattachedproperty list VirtualKeyboard::dictionaries
+
+ Sets active user dictionaries in this context.
+*/
+
+} // namespace QtVirtualKeyboard
+QT_END_NAMESPACE
diff --git a/src/virtualkeyboard/virtualkeyboard.pro b/src/virtualkeyboard/virtualkeyboard.pro
index 22b049ac..a823b3ba 100644
--- a/src/virtualkeyboard/virtualkeyboard.pro
+++ b/src/virtualkeyboard/virtualkeyboard.pro
@@ -18,7 +18,11 @@ qtConfig(vkb-sensitive-debug) {
DEFINES += QVIRTUALKEYBOARD_LIBRARY
SOURCES += \
+ virtualkeyboard.cpp \
+ virtualkeyboardattachedtype.cpp \
platforminputcontext.cpp \
+ qvirtualkeyboarddictionary.cpp \
+ qvirtualkeyboarddictionarymanager.cpp \
qvirtualkeyboardinputcontext.cpp \
qvirtualkeyboardinputcontext_p.cpp \
qvirtualkeyboardabstractinputmethod.cpp \
@@ -44,8 +48,12 @@ SOURCES += \
qvirtualkeyboardextensionplugin.cpp
HEADERS += \
+ virtualkeyboard_p.h \
+ virtualkeyboardattachedtype_p.h \
platforminputcontext_p.h \
qvirtualkeyboard_namespace.h \
+ qvirtualkeyboarddictionary.h \
+ qvirtualkeyboarddictionarymanager.h \
qvirtualkeyboardinputcontext.h \
qvirtualkeyboardinputcontext_p.h \
qvirtualkeyboardabstractinputmethod.h \
diff --git a/src/virtualkeyboard/virtualkeyboard_p.h b/src/virtualkeyboard/virtualkeyboard_p.h
new file mode 100644
index 00000000..bf2e0082
--- /dev/null
+++ b/src/virtualkeyboard/virtualkeyboard_p.h
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef VIRTUALKEYBOARD_P_H
+#define VIRTUALKEYBOARD_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <qqml.h>
+#include <QtVirtualKeyboard/qvirtualkeyboard_global.h>
+
+QT_BEGIN_NAMESPACE
+namespace QtVirtualKeyboard {
+
+class VirtualKeyboardAttachedType;
+
+class QVIRTUALKEYBOARD_EXPORT VirtualKeyboard : public QObject
+{
+ Q_OBJECT
+
+public:
+ static VirtualKeyboardAttachedType *qmlAttachedProperties(QObject *object);
+};
+
+} // namespace QtVirtualKeyboard
+QT_END_NAMESPACE
+
+QML_DECLARE_TYPEINFO(QT_PREPEND_NAMESPACE(QtVirtualKeyboard)::VirtualKeyboard, QML_HAS_ATTACHED_PROPERTIES)
+
+#endif
diff --git a/src/virtualkeyboard/virtualkeyboardattachedtype.cpp b/src/virtualkeyboard/virtualkeyboardattachedtype.cpp
new file mode 100644
index 00000000..4ba40ce8
--- /dev/null
+++ b/src/virtualkeyboard/virtualkeyboardattachedtype.cpp
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtVirtualKeyboard/private/virtualkeyboardattachedtype_p.h>
+
+QT_BEGIN_NAMESPACE
+namespace QtVirtualKeyboard {
+
+/*!
+ \class QtVirtualKeyboard::VirtualKeyboardAttachedType
+ \internal
+*/
+
+VirtualKeyboardAttachedType::VirtualKeyboardAttachedType(QObject *parent) :
+ QObject(parent)
+{
+}
+
+QStringList QtVirtualKeyboard::VirtualKeyboardAttachedType::extraDictionaries() const
+{
+ return _extraDictionaries;
+}
+
+void QtVirtualKeyboard::VirtualKeyboardAttachedType::setExtraDictionaries(const QStringList &extraDictionaries)
+{
+ if (_extraDictionaries != extraDictionaries) {
+ _extraDictionaries = extraDictionaries;
+ emit extraDictionariesChanged();
+ }
+}
+
+} // namespace QtVirtualKeyboard
+QT_END_NAMESPACE
diff --git a/src/virtualkeyboard/virtualkeyboardattachedtype_p.h b/src/virtualkeyboard/virtualkeyboardattachedtype_p.h
new file mode 100644
index 00000000..fa922d2c
--- /dev/null
+++ b/src/virtualkeyboard/virtualkeyboardattachedtype_p.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef VIRTUALKEYBOARDATTACHEDTYPE_P_H
+#define VIRTUALKEYBOARDATTACHEDTYPE_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QObject>
+#include <QtVirtualKeyboard/private/virtualkeyboard_p.h>
+#include <QtVirtualKeyboard/qvirtualkeyboard_global.h>
+
+QT_BEGIN_NAMESPACE
+namespace QtVirtualKeyboard {
+
+class QVIRTUALKEYBOARD_EXPORT VirtualKeyboardAttachedType : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QStringList extraDictionaries READ extraDictionaries WRITE setExtraDictionaries NOTIFY extraDictionariesChanged)
+
+public:
+ explicit VirtualKeyboardAttachedType(QObject *parent);
+
+ QStringList extraDictionaries() const;
+ void setExtraDictionaries(const QStringList& dictionaries);
+
+signals:
+ void extraDictionariesChanged();
+
+private:
+ QStringList _extraDictionaries;
+};
+
+} // namespace QtVirtualKeyboard
+QT_END_NAMESPACE
+
+#endif
diff --git a/tests/auto/.prev_CMakeLists.txt b/tests/auto/.prev_CMakeLists.txt
index 57ca438e..ee546e20 100644
--- a/tests/auto/.prev_CMakeLists.txt
+++ b/tests/auto/.prev_CMakeLists.txt
@@ -5,3 +5,4 @@ add_subdirectory(styles)
add_subdirectory(layoutfilesystem)
add_subdirectory(layoutresources)
add_subdirectory(cmake)
+add_subdirectory(dictionarymanager)
diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt
index 3777778c..9aab75f9 100644
--- a/tests/auto/CMakeLists.txt
+++ b/tests/auto/CMakeLists.txt
@@ -5,3 +5,4 @@ add_subdirectory(styles)
add_subdirectory(layoutfilesystem)
add_subdirectory(layoutresources)
# add_subdirectory(cmake) # special case
+add_subdirectory(dictionarymanager)
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 15685d5f..3004804c 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -6,3 +6,4 @@ SUBDIRS += \
layoutfilesystem \
layoutresources \
cmake \
+ dictionarymanager \
diff --git a/tests/auto/dictionarymanager/.prev_CMakeLists.txt b/tests/auto/dictionarymanager/.prev_CMakeLists.txt
new file mode 100644
index 00000000..e5666c10
--- /dev/null
+++ b/tests/auto/dictionarymanager/.prev_CMakeLists.txt
@@ -0,0 +1,26 @@
+# Generated from dictionarymanager.pro.
+
+#####################################################################
+## tst_dictionarymanager Test:
+#####################################################################
+
+qt_internal_add_test(tst_dictionarymanager
+ SOURCES
+ tst_dictionarymanager.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::VirtualKeyboard
+)
+
+## Scopes:
+#####################################################################
+
+qt_internal_extend_target(tst_dictionarymanager CONDITION static
+ PUBLIC_LIBRARIES
+ Qt::Svg
+)
+
+#### Keys ignored in scope 3:.:.:dictionarymanager.pro:static:
+# QTPLUGIN = "qtvirtualkeyboardplugin"
diff --git a/tests/auto/dictionarymanager/CMakeLists.txt b/tests/auto/dictionarymanager/CMakeLists.txt
new file mode 100644
index 00000000..9b97f861
--- /dev/null
+++ b/tests/auto/dictionarymanager/CMakeLists.txt
@@ -0,0 +1,26 @@
+# Generated from dictionarymanager.pro.
+
+#####################################################################
+## tst_dictionarymanager Test:
+#####################################################################
+
+qt_internal_add_test(tst_dictionarymanager
+ SOURCES
+ tst_dictionarymanager.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::VirtualKeyboard
+)
+
+## Scopes:
+#####################################################################
+
+qt_internal_extend_target(tst_dictionarymanager CONDITION NOT QT_BUILD_SHARED_LIBS
+ PUBLIC_LIBRARIES
+ Qt::Svg
+)
+
+#### Keys ignored in scope 3:.:.:dictionarymanager.pro:static:
+# QTPLUGIN = "qtvirtualkeyboardplugin"
diff --git a/tests/auto/dictionarymanager/dictionarymanager.pro b/tests/auto/dictionarymanager/dictionarymanager.pro
new file mode 100644
index 00000000..8d346f0a
--- /dev/null
+++ b/tests/auto/dictionarymanager/dictionarymanager.pro
@@ -0,0 +1,13 @@
+CONFIG += testcase
+TARGET = tst_dictionarymanager
+
+macos:CONFIG -= app_bundle
+
+QT += testlib qml quick virtualkeyboard
+
+static {
+ QT += svg
+ QTPLUGIN += qtvirtualkeyboardplugin
+}
+
+SOURCES += tst_dictionarymanager.cpp
diff --git a/tests/auto/dictionarymanager/tst_dictionarymanager.cpp b/tests/auto/dictionarymanager/tst_dictionarymanager.cpp
new file mode 100644
index 00000000..df2d291e
--- /dev/null
+++ b/tests/auto/dictionarymanager/tst_dictionarymanager.cpp
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/qtest.h>
+#include <QtTest/QSignalSpy>
+#include <QtVirtualKeyboard/QVirtualKeyboardDictionary>
+#include <QtVirtualKeyboard/QVirtualKeyboardDictionaryManager>
+
+static bool moduleEnv = qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
+
+class tst_dictionarymanager : public QObject
+{
+ Q_OBJECT
+
+public:
+
+private slots:
+ void testCreateDictionary();
+ void testDictionarySets();
+};
+
+void tst_dictionarymanager::testCreateDictionary()
+{
+ QVirtualKeyboardDictionaryManager *dictionaryManager = QVirtualKeyboardDictionaryManager::instance();
+ QVERIFY(dictionaryManager != nullptr);
+
+ QVirtualKeyboardDictionary *dictionary = dictionaryManager->createDictionary("custom");
+ QSignalSpy dictionarySpy(dictionary, SIGNAL(contentsChanged()));
+ QVERIFY(dictionarySpy.isValid());
+ QStringList wordList = QStringList() << "myword";
+ dictionary->setContents(wordList);
+ QCOMPARE(dictionarySpy.count(), 1);
+
+ QVERIFY(dictionaryManager->availableDictionaries().contains("custom"));
+}
+
+void tst_dictionarymanager::testDictionarySets()
+{
+ QVirtualKeyboardDictionaryManager *dictionaryManager = QVirtualKeyboardDictionaryManager::instance();
+ QVERIFY(dictionaryManager != nullptr);
+
+ dictionaryManager->setBaseDictionaries(QStringList() << "non-existent");
+ QVERIFY(dictionaryManager->baseDictionaries().isEmpty());
+
+ dictionaryManager->setExtraDictionaries(QStringList() << "non-existent");
+ QVERIFY(dictionaryManager->extraDictionaries().isEmpty());
+
+ dictionaryManager->createDictionary("custom1");
+ dictionaryManager->createDictionary("custom2");
+ dictionaryManager->setBaseDictionaries(QStringList() << "custom1");
+ dictionaryManager->setExtraDictionaries(QStringList() << "custom2");
+ QCOMPARE(dictionaryManager->baseDictionaries(), QStringList() << "custom1");
+ QCOMPARE(dictionaryManager->extraDictionaries(), QStringList() << "custom2");
+ QVERIFY(dictionaryManager->activeDictionaries().contains("custom1"));
+ QVERIFY(dictionaryManager->activeDictionaries().contains("custom2"));
+
+ dictionaryManager->setBaseDictionaries(QStringList() << "custom1" << "custom2");
+ dictionaryManager->setExtraDictionaries(QStringList() << "custom2" << "custom1");
+ QVERIFY(dictionaryManager->baseDictionaries().contains("custom1"));
+ QVERIFY(dictionaryManager->baseDictionaries().contains("custom2"));
+ QVERIFY(dictionaryManager->extraDictionaries().contains("custom1"));
+ QVERIFY(dictionaryManager->extraDictionaries().contains("custom2"));
+ QVERIFY(dictionaryManager->activeDictionaries().contains("custom1"));
+ QVERIFY(dictionaryManager->activeDictionaries().contains("custom2"));
+}
+
+QTEST_MAIN(tst_dictionarymanager)
+
+#include "tst_dictionarymanager.moc"
diff --git a/tests/auto/layoutfilesystem/.prev_CMakeLists.txt b/tests/auto/layoutfilesystem/.prev_CMakeLists.txt
new file mode 100644
index 00000000..90311e55
--- /dev/null
+++ b/tests/auto/layoutfilesystem/.prev_CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from layoutfilesystem.pro.
+
+#####################################################################
+## tst_layoutfilesystem Test:
+#####################################################################
+
+qt_internal_add_test(tst_layoutfilesystem
+ SOURCES
+ ../shared/layouttesthelper.cpp ../shared/layouttesthelper.h
+ tst_layoutfilesystem.cpp
+ DEFINES
+ SRC_DIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}\\\"
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+#### Keys ignored in scope 1:.:.:layoutfilesystem.pro:<TRUE>:
+# OTHER_FILES = "data/layouts/en_GB/main.qml"
+
+## Scopes:
+#####################################################################
+
+qt_internal_extend_target(tst_layoutfilesystem CONDITION static
+ PUBLIC_LIBRARIES
+ Qt::Svg
+)
+
+#### Keys ignored in scope 3:.:.:layoutfilesystem.pro:static:
+# QTPLUGIN = "qtvirtualkeyboardplugin"
diff --git a/tests/auto/layoutresources/.prev_CMakeLists.txt b/tests/auto/layoutresources/.prev_CMakeLists.txt
new file mode 100644
index 00000000..b49360f0
--- /dev/null
+++ b/tests/auto/layoutresources/.prev_CMakeLists.txt
@@ -0,0 +1,45 @@
+# Generated from layoutresources.pro.
+
+#####################################################################
+## tst_layoutresources Test:
+#####################################################################
+
+qt_internal_add_test(tst_layoutresources
+ SOURCES
+ ../shared/layouttesthelper.cpp ../shared/layouttesthelper.h
+ tst_layoutresources.cpp
+ DEFINES
+ SRC_DIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}\\\"
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+# Resources:
+set(resourceslayout_resource_files
+ "layouts/en_GB/main.qml"
+)
+
+qt_internal_add_resource(tst_layoutresources "resourceslayout"
+ PREFIX
+ "/resource"
+ BASE
+ "data"
+ FILES
+ ${resourceslayout_resource_files}
+)
+
+
+## Scopes:
+#####################################################################
+
+qt_internal_extend_target(tst_layoutresources CONDITION static
+ PUBLIC_LIBRARIES
+ Qt::Svg
+)
+
+#### Keys ignored in scope 3:.:.:layoutresources.pro:static:
+# QTPLUGIN = "qtvirtualkeyboardplugin"
diff --git a/tests/auto/styles/.prev_CMakeLists.txt b/tests/auto/styles/.prev_CMakeLists.txt
new file mode 100644
index 00000000..d7d1995e
--- /dev/null
+++ b/tests/auto/styles/.prev_CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from styles.pro.
+
+#####################################################################
+## tst_styles Test:
+#####################################################################
+
+# Collect test data
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/data/*)
+list(APPEND test_data ${test_data_glob})
+
+qt_internal_add_test(tst_styles
+ QMLTEST
+ SOURCES
+ tst_styles.cpp
+ DEFINES
+ TESTDATA_DIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/data\\\"
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ TESTDATA ${test_data}
+)
+
+#### Keys ignored in scope 1:.:.:styles.pro:<TRUE>:
+# DISTFILES = "data/tst_styles.qml" "data/QtQuick/VirtualKeyboard/Styles/test/style.qml"
+# OTHER_FILES = "$$PWD/data/tst_styles.qml"
+# TEMPLATE = "app"
+
+## Scopes:
+#####################################################################
+
+qt_internal_extend_target(tst_styles CONDITION static
+ PUBLIC_LIBRARIES
+ Qt::Svg
+)
+
+#### Keys ignored in scope 2:.:.:styles.pro:static:
+# QTPLUGIN = "qtvirtualkeyboardplugin"
diff --git a/tests/manual/quickcontrols2/.prev_CMakeLists.txt b/tests/manual/quickcontrols2/.prev_CMakeLists.txt
new file mode 100644
index 00000000..948504c7
--- /dev/null
+++ b/tests/manual/quickcontrols2/.prev_CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from quickcontrols2.pro.
+
+#####################################################################
+## quickcontrols2 Binary:
+#####################################################################
+
+qt_internal_add_executable(quickcontrols2
+ GUI
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+# Resources:
+set(main_resource_files
+ "main.qml"
+)
+
+qt_internal_add_resource(quickcontrols2 "main"
+ PREFIX
+ "/"
+ FILES
+ ${main_resource_files}
+)
+
+
+#### Keys ignored in scope 1:.:.:quickcontrols2.pro:<TRUE>:
+# QML_IMPORT_PATH = <EMPTY>
diff --git a/tests/manual/x11vkbtest/.prev_CMakeLists.txt b/tests/manual/x11vkbtest/.prev_CMakeLists.txt
new file mode 100644
index 00000000..b16e51f7
--- /dev/null
+++ b/tests/manual/x11vkbtest/.prev_CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from x11vkbtest.pro.
+
+#####################################################################
+## x11vkbtest Binary:
+#####################################################################
+
+qt_internal_add_executable(x11vkbtest
+ GUI
+ SOURCES
+ colors.h
+ filehelper.cpp filehelper.h
+ main.cpp
+ memorymonitor.cpp memorymonitor.h
+ mousesimulator.cpp mousesimulator.h
+ processhandler.cpp processhandler.h
+ startclose.cpp startclose.h
+ testbase.cpp testbase.h
+ testenglishletters.cpp testenglishletters.h
+ testlanguagechange.cpp testlanguagechange.h
+ testreporter.cpp testreporter.h
+ testthread.cpp testthread.h
+ windowhelper.cpp windowhelper.h
+ DEFINES
+ QT_DEPRECATED_WARNINGS
+ PUBLIC_LIBRARIES
+ Qt::Charts
+ Qt::Gui
+ X11
+ Xtst
+ xdo
+)
diff --git a/tests/manual/x11vkbtest/CMakeLists.txt b/tests/manual/x11vkbtest/CMakeLists.txt
index 4586e656..cd971d9c 100644
--- a/tests/manual/x11vkbtest/CMakeLists.txt
+++ b/tests/manual/x11vkbtest/CMakeLists.txt
@@ -23,9 +23,9 @@ qt_internal_add_manual_test(x11vkbtest
DEFINES
QT_DEPRECATED_WARNINGS
PUBLIC_LIBRARIES
+ Qt::Charts
Qt::Gui
X11
Xtst
- charts
xdo
)
diff --git a/tests/manual/x11vkbwrapper/.prev_CMakeLists.txt b/tests/manual/x11vkbwrapper/.prev_CMakeLists.txt
new file mode 100644
index 00000000..9440dc39
--- /dev/null
+++ b/tests/manual/x11vkbwrapper/.prev_CMakeLists.txt
@@ -0,0 +1,74 @@
+# Generated from x11vkbwrapper.pro.
+
+#####################################################################
+## x11vkbwrapper Binary:
+#####################################################################
+
+qt_internal_add_executable(x11vkbwrapper
+ GUI
+ SOURCES
+ common_defs.h
+ handleatspievents.cpp handleatspievents.h
+ handledbusforchrome.cpp handledbusforchrome.h
+ handlekeyevents.cpp handlekeyevents.h
+ handlelanguagechange.cpp handlelanguagechange.h
+ keysymmapsforfakeinput.h
+ main.cpp
+ vkbhidetimer.cpp vkbhidetimer.h
+ xcbkeyboard.h
+ DEFINES
+ QT_DEPRECATED_WARNINGS
+ INCLUDE_DIRECTORIES
+ /usr/include/X11
+ /usr/include/at-spi-2.0
+ /usr/include/dbus-1.0
+ /usr/include/glib-2.0
+ /usr/lib/x86_64-linux-gnu/dbus-1.0/include
+ /usr/lib/x86_64-linux-gnu/glib-2.0/include
+ PUBLIC_LIBRARIES
+ PkgConfig::ATSPI2
+ Qt::DBus
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::Svg
+ Qt::VirtualKeyboard
+ Qt::Widgets
+ X11
+ Xtst
+ xdo
+)
+
+# Resources:
+set(qml_resource_files
+ "Keyboard.qml"
+ "graphics/Qt_logo.png"
+ "main.qml"
+)
+
+qt_internal_add_resource(x11vkbwrapper "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+
+#### Keys ignored in scope 1:.:.:x11vkbwrapper.pro:<TRUE>:
+# TEMPLATE = "app"
+
+## Scopes:
+#####################################################################
+
+qt_internal_extend_target(x11vkbwrapper CONDITION static
+ PUBLIC_LIBRARIES
+ Qt::Svg
+)
+
+#### Keys ignored in scope 2:.:.:x11vkbwrapper.pro:static:
+# QTPLUGIN = "qtvirtualkeyboardplugin"
+
+qt_internal_extend_target(x11vkbwrapper CONDITION CMAKE_BUILD_TYPE STREQUAL Release
+ DEFINES
+ QT_NO_DEBUG_OUTPUT
+)
diff --git a/tests/manual/x11vkbwrapper/vkbnativehost/.prev_CMakeLists.txt b/tests/manual/x11vkbwrapper/vkbnativehost/.prev_CMakeLists.txt
new file mode 100644
index 00000000..53f91b6a
--- /dev/null
+++ b/tests/manual/x11vkbwrapper/vkbnativehost/.prev_CMakeLists.txt
@@ -0,0 +1,19 @@
+# Generated from vkbnativehost.pro.
+
+#####################################################################
+## x11vkbnativehost Binary:
+#####################################################################
+
+qt_internal_add_executable(x11vkbnativehost
+ SOURCES
+ common_defs.h
+ main.cpp
+ sendertodbus.cpp sendertodbus.h
+ DEFINES
+ QT_DEPRECATED_WARNINGS
+ PUBLIC_LIBRARIES
+ Qt::DBus
+)
+
+#### Keys ignored in scope 1:.:.:vkbnativehost.pro:<TRUE>:
+# DISTFILES = "install_host.sh" "x11vkb.host.json"