diff options
Diffstat (limited to 'tests/auto/qml/qmlcppcodegen/data/sequenceToIterable.h')
-rw-r--r-- | tests/auto/qml/qmlcppcodegen/data/sequenceToIterable.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/auto/qml/qmlcppcodegen/data/sequenceToIterable.h b/tests/auto/qml/qmlcppcodegen/data/sequenceToIterable.h new file mode 100644 index 0000000000..76c72fff36 --- /dev/null +++ b/tests/auto/qml/qmlcppcodegen/data/sequenceToIterable.h @@ -0,0 +1,56 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef SEQUENCETOITERABLE_H +#define SEQUENCETOITERABLE_H + +#include <QtCore/qobject.h> +#include <QtQml/qqml.h> + +class Entry : public QObject { + Q_OBJECT + +public: + explicit Entry(const QString &name, QObject *parent = nullptr) + : QObject(parent), m_name(name) + { + setObjectName(name); + } + +private: + QString m_name; +}; + +class EntryWrapper { + Q_GADGET + QML_FOREIGN(Entry) + QML_NAMED_ELEMENT(Entry) + QML_UNCREATABLE("These are my Entry objects") +}; + +class EntryListRegistration +{ + Q_GADGET + QML_FOREIGN(QList<Entry*>) + QML_ANONYMOUS + QML_SEQUENTIAL_CONTAINER(Entry*) +}; + +class EntrySource : public QObject { + Q_OBJECT + QML_ELEMENT + QML_SINGLETON + +public: + explicit EntrySource(QObject* parent = nullptr) : QObject(parent) { + for (int i = 0; i < 10; i++) { + m_entries.push_back(new Entry(QString("Item %1").arg(i), this)); + } + } + Q_INVOKABLE QList<Entry*> getEntries() const { return m_entries; } + +private: + QList<Entry*> m_entries; +}; + +#endif // SEQUENCETOITERABLE_H |