7#include <QtQml/qtqmlglobal.h>
8#include <QtQml/qqmllist.h>
9#include <QtQml/qjsengine.h>
10#include <QtCore/qobject.h>
11#include <QtCore/qstring.h>
39template<
typename List,
typename Value =
typename List::value_type>
49 return *(m_list->cbegin() +
index);
61 return std::find(m_list->cbegin(), m_list->cend(),
value) != m_list->cend();
66 return std::find(m_list->cbegin() +
clamp(
start, m_list->size()), m_list->cend(),
value)
74 std::for_each(m_list->cbegin(), m_list->cend(), [&](
const Value &
value) {
79 result += m_engine->coerceValue<Value, QString>(value);
91 std::copy(m_list->cbegin() +
clamp(
start, m_list->size()), m_list->cend(),
92 std::back_inserter(
result));
102 std::copy(m_list->cbegin() + clampedStart, m_list->cbegin() + clampedEnd,
103 std::back_inserter(
result));
109 const auto begin = m_list->cbegin();
110 const auto end = m_list->cend();
120 const auto begin = m_list->cbegin();
121 const auto end = m_list->cend();
132 const auto begin = std::make_reverse_iterator(m_list->cend());
133 const auto end = std::make_reverse_iterator(m_list->cbegin());
135 return (
end -
it) - 1;
145 const auto begin = std::make_reverse_iterator(m_list->cbegin() + clampedStart + 1);
147 const auto end = std::make_reverse_iterator(m_list->cbegin());
149 return (
end -
it) - 1;
155 List *m_list =
nullptr;
169 return m_list->at(m_list,
index);
174 return m_list->count(m_list);
179 qsizetype current = m_list->count(m_list);
180 if (current < size && m_list->
append) {
182 m_list->append(m_list,
nullptr);
183 }
while (++current <
size);
184 }
else if (current >
size && m_list->removeLast) {
186 m_list->removeLast(m_list);
187 }
while (--current >
size);
193 if (!m_list->count || !m_list->at)
198 if (m_list->at(m_list,
i) ==
value)
206 if (!m_list->count || !m_list->at)
211 if (m_list->at(m_list,
i) ==
value)
220 if (!m_list->count || !m_list->at)
239 if (!m_list->count || !m_list->at)
247 result.append(m_list->at(m_list,
i));
252 if (!m_list->count || !m_list->at)
261 result.append(m_list->at(m_list,
i));
267 if (!m_list->count || !m_list->at)
272 if (m_list->at(m_list,
i) ==
value)
279 if (!m_list->count || !m_list->at)
284 if (m_list->at(m_list,
i) ==
value)
292 if (!m_list->count || !m_list->at)
295 for (
qsizetype i = m_list->count(m_list) - 1;
i >= 0; --
i) {
296 if (m_list->at(m_list,
i) ==
value)
303 if (!m_list->count || !m_list->at)
312 if (m_list->at(m_list,
i) ==
value)
321 QQmlListProperty<QObject> *m_list =
nullptr;
329 template<
typename List,
typename Value>
336 bool hasNext()
const {
return m_index < m_size; }
345static_assert(std::is_trivial_v<QJSListForInIterator>);
353 template<
typename List,
typename Value>
356 template<
typename List,
typename Value>
364static_assert(std::is_trivial_v<QJSListForOfIterator>);
The QJSEngine class provides an environment for evaluating JavaScript code.
qsizetype size() const noexcept
QList< T > toList() const noexcept
const_reference at(qsizetype i) const noexcept
void reserve(qsizetype size)
The QQmlListProperty class allows applications to expose list-like properties of QObject-derived clas...
\macro QT_RESTRICTED_CAST_FROM_ASCII
list append(new Employee("Blackpool", "Stephen"))
QSet< QString >::iterator it
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
QList< QObject * > QObjectList
GLenum GLuint GLintptr GLsizeiptr size
[1]
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
#define QStringLiteral(str)
void init(const QJSList< List, Value > &list)
Value next(const QJSList< List, Value > &list)
bool hasNext(const QJSList< List, Value > &list) const
static qsizetype clamp(qsizetype start, qsizetype max, qsizetype min=0)
bool includes(const QObject *value, qsizetype start) const
QObjectList slice(qsizetype start, qsizetype end) const
QObjectList slice() const
qsizetype indexOf(const QObject *value, qsizetype start) const
qsizetype lastIndexOf(const QObject *value, qsizetype start) const
QObject * at(qsizetype index) const
bool includes(const QObject *value) const
QString join(const QString &separator=QStringLiteral(",")) const
QObjectList slice(qsizetype start) const
qsizetype indexOf(const QObject *value) const
void resize(qsizetype size)
qsizetype lastIndexOf(const QObject *value) const
bool includes(const Value &value) const
List slice(qsizetype start) const
void resize(qsizetype size)
QString join(const QString &separator=QStringLiteral(",")) const
qsizetype indexOf(const Value &value) const
List slice(qsizetype start, qsizetype end) const
bool includes(const Value &value, qsizetype start) const
qsizetype lastIndexOf(const Value &value) const
qsizetype indexOf(const Value &value, qsizetype start) const
Value at(qsizetype index) const
qsizetype lastIndexOf(const Value &value, qsizetype start) const