diff options
author | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2015-10-26 11:31:56 +0200 |
---|---|---|
committer | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2015-10-28 09:44:59 +0000 |
commit | 03e2a1036061b82739041911e3827de3cb388d02 (patch) | |
tree | e23bb1390d0fba0d69a68dfee70afdc09a496bc5 /src/virtualkeyboard/selectionlistmodel.h | |
parent | 2c5d6925ceeee7b216dead5ab87693c0d4cc0ca4 (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.h | 80 |
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 |