18#include <private/qtqmlmodelsglobal_p.h>
19#include <private/qqmlcustomparser_p.h>
21#include <QtCore/QObject>
22#include <QtCore/QStringList>
23#include <QtCore/QHash>
24#include <QtCore/QList>
25#include <QtCore/QVariant>
26#include <QtCore/qabstractitemmodel.h>
28#include <private/qv4engine_p.h>
29#include <private/qpodvector_p.h>
48 Q_PROPERTY(
bool dynamicRoles READ dynamicRoles WRITE setDynamicRoles)
59 int rowCount(const
QModelIndex &parent) const override;
79 bool dynamicRoles()
const {
return m_dynamicRoles; }
80 void setDynamicRoles(
bool enableDynamicRoles);
88 friend class ModelObject;
103 inline bool canMove(
int from,
int to,
int n)
const {
return !(from+
n >
count() || to+
n >
count() || from < 0 || to < 0 ||
n < 0); }
107 QQmlRefPointer<QV4::ExecutableCompilationUnit> m_compilationUnit;
115 std::unique_ptr<QPropertyNotifier> translationChangeHandler;
117 QVector<class DynamicRoleModelNode *> m_modelObjects;
118 QVector<QString> m_roles;
125 int targetIndex = -1;
126 QVector<int> changedRoles;
132 void emitItemsChanged(
int index,
int count,
const QVector<int> &roles);
133 void emitItemsAboutToBeInserted(
int index,
int count);
134 void emitItemsInserted();
136 void removeElements(
int index,
int removeCount);
138 void updateTranslations();
163 void verifyBindings(
const QQmlRefPointer<QV4::ExecutableCompilationUnit> &compilationUnit,
const QList<const QV4::CompiledData::Binding *> &bindings)
override;
164 void applyBindings(
QObject *
obj,
const QQmlRefPointer<QV4::ExecutableCompilationUnit> &compilationUnit,
const QList<const QV4::CompiledData::Binding *> &bindings)
override;
167 bool verifyProperty(
const QQmlRefPointer<QV4::ExecutableCompilationUnit> &compilationUnit,
const QV4::CompiledData::Binding *binding);
171 static bool definesEmptyList(
const QString &);
The QJSValue class acts as a container for Qt/JavaScript data types.
The QQmlCustomParser class allows you to add new arbitrary types to QML.
void verifyBindings(const QQmlRefPointer< QV4::ExecutableCompilationUnit > &compilationUnit, const QList< const QV4::CompiledData::Binding * > &bindings) override
void applyBindings(QObject *obj, const QQmlRefPointer< QV4::ExecutableCompilationUnit > &compilationUnit, const QList< const QV4::CompiledData::Binding * > &bindings) override
\macro QT_RESTRICTED_CAST_FROM_ASCII
list append(new Employee("Blackpool", "Stephen"))
cache insert(employee->id(), employee)
Combined button and popup list for selecting options.
static QDBusError::ErrorType get(const char *name)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum GLenum GLsizei count
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLenum GLsizei void GLsizei void * column
GLenum GLenum GLsizei void * row
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
QQmlCustomParser * qmlCreateCustomParser< QQmlListModel >()
#define QT_REQUIRE_CONFIG(feature)
QSqlQueryModel * model
[16]
QFuture< QSet< QChar > > set
[10]
settings remove("monkey")
mimeData setData("text/csv", csvData)
args<< 1<< 2;QJSValue threeAgain=fun.call(args);QString fileName="helloworld.qs";QFile scriptFile(fileName);if(!scriptFile.open(QIODevice::ReadOnly)) QTextStream stream(&scriptFile);QString contents=stream.readAll();scriptFile.close();myEngine.evaluate(contents, fileName);myEngine.globalObject().setProperty("myNumber", 123);...QJSValue myNumberPlusOne=myEngine.evaluate("myNumber + 1");QJSValue result=myEngine.evaluate(...);if(result.isError()) qDebug()<< "Uncaught exception at line"<< result.property("lineNumber").toInt()<< ":"<< result.toString();QPushButton *button=new QPushButton;QJSValue scriptButton=myEngine.newQObject(button);myEngine.globalObject().setProperty("button", scriptButton);myEngine.evaluate("button.checkable = true");qDebug()<< scriptButton.property("checkable").toBool();scriptButton.property("show").call();QJSEngine engine;QObject *myQObject=new QObject();myQObject- setProperty)("dynamicProperty", 3)