aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/selectionlistmodel.h
diff options
context:
space:
mode:
authorJarkko Koivikko <jarkko.koivikko@code-q.fi>2015-10-26 11:31:56 +0200
committerJarkko Koivikko <jarkko.koivikko@code-q.fi>2015-10-28 09:44:59 +0000
commit03e2a1036061b82739041911e3827de3cb388d02 (patch)
treee23bb1390d0fba0d69a68dfee70afdc09a496bc5 /src/virtualkeyboard/selectionlistmodel.h
parent2c5d6925ceeee7b216dead5ab87693c0d4cc0ca4 (diff)
Refactor class names
Since the virtual keyboard C++ interface is wrapped inside a namespace, it is possible to get rid of "Declarative" name in the class names, that would otherwise conflict with the QML namespace in the documentation. - Rename DeclarativeSettings to VirtualKeyboardSettings - Remove "Declarative" from class names The rationale for this change is that the name Declarative refers to now obsolete QtQuick1 module. Also, the class names are now the same in C++ and QML name spaces. Change-Id: Ide050d47110443d894d95d35dddf0df5891587be Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src/virtualkeyboard/selectionlistmodel.h')
-rw-r--r--src/virtualkeyboard/selectionlistmodel.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/virtualkeyboard/selectionlistmodel.h b/src/virtualkeyboard/selectionlistmodel.h
new file mode 100644
index 00000000..eccd06b8
--- /dev/null
+++ b/src/virtualkeyboard/selectionlistmodel.h
@@ -0,0 +1,80 @@
+/******************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module.
+**
+** $QT_BEGIN_LICENSE:COMM$
+**
+** 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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** $QT_END_LICENSE$
+**
+******************************************************************************/
+
+#ifndef SELECTIONLISTMODEL_H
+#define SELECTIONLISTMODEL_H
+
+#include <QAbstractListModel>
+
+namespace QtVirtualKeyboard {
+
+class AbstractInputMethod;
+class InputEngine;
+class SelectionListModelPrivate;
+
+class SelectionListModel : public QAbstractListModel
+{
+ Q_OBJECT
+ Q_ENUMS(Type)
+ Q_ENUMS(Role)
+ Q_DECLARE_PRIVATE(SelectionListModel)
+
+ explicit SelectionListModel(QObject *parent = 0);
+
+public:
+ enum Type
+ {
+ WordCandidateList = 0
+ };
+ enum Role
+ {
+ DisplayRole = Qt::DisplayRole,
+ WordCompletionLengthRole = Qt::UserRole + 1
+ };
+
+ ~SelectionListModel();
+ void setDataSource(AbstractInputMethod *dataSource, Type type);
+ AbstractInputMethod *dataSource() const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ QHash<int,QByteArray> roleNames() const;
+
+ Q_INVOKABLE void selectItem(int index);
+ Q_INVOKABLE QVariant dataAt(int index, int role = Qt::DisplayRole) const;
+
+signals:
+ void activeItemChanged(int index);
+ void itemSelected(int index);
+
+protected slots:
+ void selectionListChanged(int type);
+ void selectionListActiveItemChanged(int type, int index);
+
+private:
+ friend class InputEngine;
+};
+
+} // namespace QtVirtualKeyboard
+
+Q_DECLARE_METATYPE(QtVirtualKeyboard::SelectionListModel::Type)
+Q_DECLARE_METATYPE(QtVirtualKeyboard::SelectionListModel::Role)
+
+#endif // SELECTIONLISTMODEL_H