Merge remote-tracking branch 'origin/5.11' into dev

Change-Id: I308b964d86ca01916f6af7d6e3f71557e3624eca
This commit is contained in:
Qt Forward Merge Bot 2018-03-03 01:00:13 +01:00
commit bf0603fd03
135 changed files with 1308 additions and 633 deletions

View File

@ -74,7 +74,7 @@ static int proxyPort = 0;
class MyNetworkAccessManagerFactory : public QQmlNetworkAccessManagerFactory
{
public:
virtual QNetworkAccessManager *create(QObject *parent);
QNetworkAccessManager *create(QObject *parent) override;
};
QNetworkAccessManager *MyNetworkAccessManagerFactory::create(QObject *parent)

View File

@ -87,7 +87,7 @@ signals:
void timeChanged();
protected:
void timerEvent(QTimerEvent *)
void timerEvent(QTimerEvent *) override
{
QTime now = QTime::currentTime();
if (now.second() == 59 && now.minute() == time.minute() && now.hour() == time.hour()) {
@ -125,7 +125,7 @@ public:
}
}
~TimeModel()
~TimeModel() override
{
if (--instances == 0) {
timer->stop();
@ -154,7 +154,7 @@ class QExampleQmlPlugin : public QQmlExtensionPlugin
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
void registerTypes(const char *uri)
void registerTypes(const char *uri) override
{
Q_ASSERT(uri == QLatin1String("TimeExample"));
qmlRegisterType<TimeModel>(uri, 1, 0, "Time");

View File

@ -65,7 +65,7 @@ public:
{
}
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) override
{
int width = 100;
int height = 50;
@ -99,12 +99,12 @@ class ImageProviderExtensionPlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
void registerTypes(const char *uri)
void registerTypes(const char *uri) override
{
Q_UNUSED(uri);
}
void initializeEngine(QQmlEngine *engine, const char *uri)
void initializeEngine(QQmlEngine *engine, const char *uri) override
{
Q_UNUSED(uri);
engine->addImageProvider("colors", new ColorImageProvider);

View File

@ -66,12 +66,12 @@ class AsyncImageResponse : public QQuickImageResponse, public QRunnable
setAutoDelete(false);
}
QQuickTextureFactory *textureFactory() const
QQuickTextureFactory *textureFactory() const override
{
return QQuickTextureFactory::textureFactoryForImage(m_image);
}
void run()
void run() override
{
m_image = QImage(50, 50, QImage::Format_RGB32);
if (m_id == "slow") {
@ -97,7 +97,7 @@ class AsyncImageResponse : public QQuickImageResponse, public QRunnable
class AsyncImageProvider : public QQuickAsyncImageProvider
{
public:
QQuickImageResponse *requestImageResponse(const QString &id, const QSize &requestedSize)
QQuickImageResponse *requestImageResponse(const QString &id, const QSize &requestedSize) override
{
AsyncImageResponse *response = new AsyncImageResponse(id, requestedSize);
pool.start(response);
@ -114,12 +114,12 @@ class ImageProviderExtensionPlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
void registerTypes(const char *uri)
void registerTypes(const char *uri) override
{
Q_UNUSED(uri);
}
void initializeEngine(QQmlEngine *engine, const char *uri)
void initializeEngine(QQmlEngine *engine, const char *uri) override
{
Q_UNUSED(uri);
engine->addImageProvider("async", new AsyncImageProvider);

View File

@ -63,11 +63,11 @@ public:
// The lifetime of the FBO and this class depends on how QQuickWidget
// manages the scenegraph and context when it comes to showing and hiding
// the widget. The actual behavior is proven by the debug prints.
~FbRenderer() {
~FbRenderer() override {
qDebug("FbRenderer destroyed");
}
void render() {
void render() override {
QOpenGLFunctions *f = QOpenGLContext::currentContext()->functions();
f->glClearColor(c, 0, 0, 1);
f->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
@ -77,7 +77,7 @@ public:
update();
}
QOpenGLFramebufferObject *createFramebufferObject(const QSize &size) {
QOpenGLFramebufferObject *createFramebufferObject(const QSize &size) override {
qDebug() << "Creating FBO" << size;
QOpenGLFramebufferObjectFormat format;
format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);

View File

@ -71,15 +71,15 @@ public:
setShaderSourceFile(QOpenGLShader::Fragment, ":/scenegraph/graph/shaders/line.fsh");
}
QList<QByteArray> attributes() const { return QList<QByteArray>() << "pos" << "t"; }
QList<QByteArray> attributes() const override { return QList<QByteArray>() << "pos" << "t"; }
void updateState(const LineMaterial *m, const LineMaterial *) {
void updateState(const LineMaterial *m, const LineMaterial *) override {
program()->setUniformValue(id_color, m->color);
program()->setUniformValue(id_spread, m->spread);
program()->setUniformValue(id_size, m->size);
}
void resolveUniforms() {
void resolveUniforms() override {
id_spread = program()->uniformLocation("spread");
id_size = program()->uniformLocation("size");
id_color = program()->uniformLocation("color");

View File

@ -77,9 +77,9 @@ public:
setShaderSourceFile(QOpenGLShader::Fragment, ":/scenegraph/graph/shaders/noisy.fsh");
}
QList<QByteArray> attributes() const { return QList<QByteArray>() << "aVertex" << "aTexCoord"; }
QList<QByteArray> attributes() const override { return QList<QByteArray>() << "aVertex" << "aTexCoord"; }
void updateState(const NoisyMaterial *m, const NoisyMaterial *) {
void updateState(const NoisyMaterial *m, const NoisyMaterial *) override {
// Set the color
program()->setUniformValue(id_color, m->color);
@ -93,7 +93,7 @@ public:
program()->setUniformValue(id_textureSize, QSizeF(1.0 / s.width(), 1.0 / s.height()));
}
void resolveUniforms() {
void resolveUniforms() override {
id_texture = program()->uniformLocation("texture");
id_textureSize = program()->uniformLocation("textureSize");
id_color = program()->uniformLocation("color");

View File

@ -87,7 +87,7 @@ class Shader : public QSGSimpleMaterialShader<State>
//! [2] //! [3]
public:
const char *vertexShader() const {
const char *vertexShader() const override {
return
"attribute highp vec4 aVertex; \n"
"attribute highp vec2 aTexCoord; \n"
@ -99,7 +99,7 @@ public:
"}";
}
const char *fragmentShader() const {
const char *fragmentShader() const override {
return
"uniform lowp float qt_Opacity; \n"
"uniform lowp vec4 color; \n"
@ -110,17 +110,17 @@ public:
"}";
}
//! [3] //! [4]
QList<QByteArray> attributes() const
QList<QByteArray> attributes() const override
{
return QList<QByteArray>() << "aVertex" << "aTexCoord";
}
//! [4] //! [5]
void updateState(const State *state, const State *)
void updateState(const State *state, const State *) override
{
program()->setUniformValue(id_color, state->color);
}
//! [5] //! [6]
void resolveUniforms()
void resolveUniforms() override
{
id_color = program()->uniformLocation("color");
}
@ -184,7 +184,7 @@ private:
//! [8] //! [9]
public:
QSGNode *updatePaintNode(QSGNode *node, UpdatePaintNodeData *)
QSGNode *updatePaintNode(QSGNode *node, UpdatePaintNodeData *) override
{
ColorNode *n = static_cast<ColorNode *>(node);
if (!node)

View File

@ -64,12 +64,12 @@ public:
logo.initialize();
}
void render() {
void render() override {
logo.render();
update();
}
QOpenGLFramebufferObject *createFramebufferObject(const QSize &size) {
QOpenGLFramebufferObject *createFramebufferObject(const QSize &size) override {
QOpenGLFramebufferObjectFormat format;
format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);
format.setSamples(4);

View File

@ -165,7 +165,7 @@ public:
setFiltering(QSGTexture::Linear);
}
~TextureNode()
~TextureNode() override
{
delete m_texture;
}

View File

@ -78,7 +78,7 @@ public:
appendChildNode(textureNode);
}
~SpinnerNode() {
~SpinnerNode() override {
delete m_texture;
}

View File

@ -77,7 +77,7 @@ class XorBlendShader : public QSGSimpleMaterialShader<XorBlendState>
QSG_DECLARE_SIMPLE_SHADER(XorBlendShader, XorBlendState)
public:
const char *vertexShader() const {
const char *vertexShader() const override {
return
"attribute highp vec4 aVertex; \n"
"attribute highp vec2 aTexCoord; \n"
@ -89,7 +89,7 @@ public:
"}";
}
const char *fragmentShader() const {
const char *fragmentShader() const override {
return
"uniform lowp float qt_Opacity; \n"
"uniform lowp sampler2D uSource1; \n"
@ -102,11 +102,11 @@ public:
"}";
}
QList<QByteArray> attributes() const {
QList<QByteArray> attributes() const override {
return QList<QByteArray>() << "aVertex" << "aTexCoord";
}
void updateState(const XorBlendState *state, const XorBlendState *) {
void updateState(const XorBlendState *state, const XorBlendState *) override {
QOpenGLFunctions *f = QOpenGLContext::currentContext()->functions();
// We bind the textures in inverse order so that we leave the updateState
// function with GL_TEXTURE0 as the active texture unit. This is maintain
@ -118,7 +118,7 @@ public:
state->texture1->bind();
}
void resolveUniforms() {
void resolveUniforms() override {
// The texture units never change, only the texturess we bind to them so
// we set these once and for all here.
program()->setUniformValue("uSource1", 0); // GL_TEXTURE0
@ -165,7 +165,7 @@ public:
connect(m_provider2.data(), &QSGTextureProvider::textureChanged, this, &XorNode::textureChange, Qt::DirectConnection);
}
void preprocess() {
void preprocess() override {
XorBlendState *state = m_material->state();
// Update the textures from the providers, calling into QSGDynamicTexture if required
if (m_provider1) {

View File

@ -56,7 +56,7 @@ Rectangle {
width: 120
height: 120
color: th.pressed ? "steelBlue" : "lightGray"
containsMask: ctr
containmentMask: ctr
TapHandler { id: th }

View File

@ -166,10 +166,10 @@ public:
QSize m_size;
QSize m_paddedSize;
QSize textureSize() const { return m_size; }
int textureByteCount() const { return m_data.size(); }
QSize textureSize() const override { return m_size; }
int textureByteCount() const override { return m_data.size(); }
QSGTexture *createTexture(QQuickWindow *) const {
QSGTexture *createTexture(QQuickWindow *) const override {
EtcTexture *texture = new EtcTexture;
texture->m_data = m_data;
texture->m_size = m_size;

View File

@ -50,23 +50,6 @@ static void initResources()
QT_BEGIN_NAMESPACE
/*!
\qmlmodule Qt.labs.handlers 1.0
\title Qt Quick Pointer Handlers
\ingroup qmlmodules
\brief Provides QML types for handling pointer events.
This QML module contains types for handling pointer events, which are an abstraction
of mouse, touch and tablet events.
To use the types in this module, import the module with the following line:
\code
import Qt.labs.handlers 1.0
\endcode
*/
//![class decl]
class QtQuickHandlersPlugin : public QQmlExtensionPlugin
{

View File

@ -97,7 +97,7 @@ class QQmlSqlDatabaseData : public QV8Engine::Deletable
{
public:
QQmlSqlDatabaseData(QV4::ExecutionEngine *engine);
~QQmlSqlDatabaseData();
~QQmlSqlDatabaseData() override;
QV4::PersistentValue databaseProto;
QV4::PersistentValue queryProto;
@ -611,7 +611,15 @@ May throw exception with code property SQLException.DATABASE_ERR or SQLException
See example below.
\snippet qml/localstorage/dbtransaction.js 2
\badcode
var db = LocalStorage.openDatabaseSync("ActivityTrackDB", "", "Database tracking sports activities", 1000000);
if (db.version == "0.1") {
db.changeVersion("0.1", "0.2", function(tx) {
tx.executeSql("INSERT INTO trip_log VALUES(?, ?, ?)",
[ "01/10/2016","Sylling - Vikersund", "53" ]);
}
});
\endcode
\section3 db.transaction(callback(tx))
@ -621,7 +629,10 @@ you can call \e executeSql on \e tx to read and modify the database.
If the callback throws exceptions, the transaction is rolled back.
Below you will find an example of a database transaction which catches exceptions.
\snippet qml/localstorage/dbtransaction.js 0
\quotefromfile localstorage/localstorage/Database.js
\skipuntil dbInit()
\printto dbGetHandle
In the example you can see an \c insert statement where values are assigned to the fields,
and the record is written into the table. That is an \c insert statement with a syntax that is usual
@ -631,15 +642,24 @@ store them in a table.
Let's suppose a simple example where we store trips in JSON format using \c date as the unique key.
An example of a table that could be used for that purpose:
\snippet qml/localstorage/dbtransaction.js 3
\badcode
create table trip_log(date text, data text)
\endcode
The assignment of values to a JSON object:
\snippet qml/localstorage/dbtransaction.js 4
\badcode
var obj = {description = "Vikersund - Noresund", distance = "60"}
\endcode
In that case, the data could be saved in the following way:
\snippet qml/localstorage/dbtransaction.js 5
\badcode
db.transaction(function(tx) {
result = tx.executeSQL("insert into trip_log values (?,?)",
["01/11/2016", JSON.stringify(obj)])
\endcode
\section3 db.readTransaction(callback(tx))
@ -664,7 +684,9 @@ May throw exception with code property SQLException.DATABASE_ERR, SQLException.S
See below for an example:
\snippet qml/localstorage/dbtransaction.js 1
\quotefromfile localstorage/localstorage/Database.js
\skipto dbReadAll()
\printto dbUpdate(Pdate
\section1 Method Documentation
@ -693,7 +715,7 @@ public:
QQuickLocalStorage(QObject *parent=nullptr) : QObject(parent)
{
}
~QQuickLocalStorage() {
~QQuickLocalStorage() override {
}
Q_INVOKABLE void openDatabaseSync(QQmlV4Function* args);

View File

@ -65,7 +65,7 @@ public:
QQmlQtQuick2Module::defineModule();
}
~QtQuick2Plugin()
~QtQuick2Plugin() override
{
if (moduleDefined)
QQmlQtQuick2Module::undefineModule();

View File

@ -1404,7 +1404,7 @@ void QQuickShapeRadialGradient::setFocalRadius(qreal v)
Conical gradients interpolate colors counter-clockwise around a center
point in Shape items.
\note The \l{ShapeGradient.spread}{spread mode} setting has no effect for
\note The \l{ShapeGradient::spread}{spread mode} setting has no effect for
conical gradients.
\note ConicalGradient is only supported in combination with Shape items. It

View File

@ -73,7 +73,7 @@ public:
:QObject(parent)
{}
~QuickTestUtil()
~QuickTestUtil() override
{}
bool printAvailableFunctions() const
{

View File

@ -294,7 +294,7 @@ class QV4ParticleDataDeletable : public QV8Engine::Deletable
{
public:
QV4ParticleDataDeletable(QV4::ExecutionEngine *engine);
~QV4ParticleDataDeletable();
~QV4ParticleDataDeletable() override;
QV4::PersistentValue proto;
};

View File

@ -55,7 +55,7 @@ class QLocalClientConnection : public QQmlDebugServerConnection
public:
QLocalClientConnection();
~QLocalClientConnection();
~QLocalClientConnection() override;
void setServer(QQmlDebugServer *server) override;
bool setPortRange(int portFrom, int portTo, bool block, const QString &hostaddress) override;

View File

@ -54,7 +54,7 @@ class QTcpServerConnection : public QQmlDebugServerConnection
public:
QTcpServerConnection();
~QTcpServerConnection();
~QTcpServerConnection() override;
void setServer(QQmlDebugServer *server) override;
bool setPortRange(int portFrom, int portTo, bool block, const QString &hostaddress) override;

View File

@ -63,7 +63,7 @@ class Q_QML_PRIVATE_EXPORT QAnimationGroupJob : public QAbstractAnimationJob
Q_DISABLE_COPY(QAnimationGroupJob)
public:
QAnimationGroupJob();
~QAnimationGroupJob();
~QAnimationGroupJob() override;
void appendAnimation(QAbstractAnimationJob *animation);
void prependAnimation(QAbstractAnimationJob *animation);

View File

@ -62,7 +62,7 @@ class Q_QML_PRIVATE_EXPORT QPauseAnimationJob : public QAbstractAnimationJob
Q_DISABLE_COPY(QPauseAnimationJob)
public:
explicit QPauseAnimationJob(int duration = 250);
~QPauseAnimationJob();
~QPauseAnimationJob() override;
int duration() const override;
void setDuration(int msecs);

View File

@ -2928,43 +2928,43 @@ public:
return locs;
}
bool visit(ArrayMemberExpression *) Q_DECL_OVERRIDE
bool visit(ArrayMemberExpression *) override
{
locs.setAllVolatile();
return false;
}
bool visit(FieldMemberExpression *) Q_DECL_OVERRIDE
bool visit(FieldMemberExpression *) override
{
locs.setAllVolatile();
return false;
}
bool visit(PostIncrementExpression *e) Q_DECL_OVERRIDE
bool visit(PostIncrementExpression *e) override
{
collectIdentifiers(locs.specificLocations, e->base);
return false;
}
bool visit(PostDecrementExpression *e) Q_DECL_OVERRIDE
bool visit(PostDecrementExpression *e) override
{
collectIdentifiers(locs.specificLocations, e->base);
return false;
}
bool visit(PreIncrementExpression *e) Q_DECL_OVERRIDE
bool visit(PreIncrementExpression *e) override
{
collectIdentifiers(locs.specificLocations, e->expression);
return false;
}
bool visit(PreDecrementExpression *e) Q_DECL_OVERRIDE
bool visit(PreDecrementExpression *e) override
{
collectIdentifiers(locs.specificLocations, e->expression);
return false;
}
bool visit(BinaryExpression *e) Q_DECL_OVERRIDE
bool visit(BinaryExpression *e) override
{
switch (e->op) {
case QSOperator::InplaceAnd:

View File

@ -70,7 +70,7 @@ public:
QQmlAbstractProfilerAdapter(QObject *parent = nullptr) :
QObject(parent), service(nullptr), waiting(true), featuresEnabled(0) {}
virtual ~QQmlAbstractProfilerAdapter() {}
~QQmlAbstractProfilerAdapter() override {}
void setService(QQmlProfilerService *new_service) { service = new_service; }
virtual qint64 sendMessages(qint64 until, QList<QByteArray> &messages) = 0;

View File

@ -126,7 +126,7 @@ class Q_QML_PRIVATE_EXPORT QQmlDebugConnectorFactory : public QObject {
Q_OBJECT
public:
virtual QQmlDebugConnector *create(const QString &key) = 0;
~QQmlDebugConnectorFactory();
~QQmlDebugConnectorFactory() override;
};
#define QQmlDebugConnectorFactory_iid "org.qt-project.Qt.QQmlDebugConnectorFactory"

View File

@ -69,7 +69,7 @@ class Q_QML_PRIVATE_EXPORT QQmlDebugService : public QObject
Q_DECLARE_PRIVATE(QQmlDebugService)
public:
~QQmlDebugService();
~QQmlDebugService() override;
const QString &name() const;
float version() const;

View File

@ -119,131 +119,131 @@ public:
void generate();
void generate_Ret() Q_DECL_OVERRIDE;
void generate_Debug() Q_DECL_OVERRIDE;
void generate_LoadConst(int index) Q_DECL_OVERRIDE;
void generate_LoadZero() Q_DECL_OVERRIDE;
void generate_LoadTrue() Q_DECL_OVERRIDE;
void generate_LoadFalse() Q_DECL_OVERRIDE;
void generate_LoadNull() Q_DECL_OVERRIDE;
void generate_LoadUndefined() Q_DECL_OVERRIDE;
void generate_LoadInt(int value) Q_DECL_OVERRIDE;
void generate_MoveConst(int constIndex, int destTemp) Q_DECL_OVERRIDE;
void generate_LoadReg(int reg) Q_DECL_OVERRIDE;
void generate_StoreReg(int reg) Q_DECL_OVERRIDE;
void generate_MoveReg(int srcReg, int destReg) Q_DECL_OVERRIDE;
void generate_LoadLocal(int index) Q_DECL_OVERRIDE;
void generate_StoreLocal(int index) Q_DECL_OVERRIDE;
void generate_LoadScopedLocal(int scope, int index) Q_DECL_OVERRIDE;
void generate_StoreScopedLocal(int scope, int index) Q_DECL_OVERRIDE;
void generate_LoadRuntimeString(int stringId) Q_DECL_OVERRIDE;
void generate_MoveRegExp(int regExpId, int destReg) Q_DECL_OVERRIDE;
void generate_LoadClosure(int value) Q_DECL_OVERRIDE;
void generate_LoadName(int name) Q_DECL_OVERRIDE;
void generate_LoadGlobalLookup(int index) Q_DECL_OVERRIDE;
void generate_StoreNameSloppy(int name) Q_DECL_OVERRIDE;
void generate_StoreNameStrict(int name) Q_DECL_OVERRIDE;
void generate_LoadElement(int base, int index) Q_DECL_OVERRIDE;
void generate_LoadElementA(int base) Q_DECL_OVERRIDE;
void generate_StoreElement(int base, int index) Q_DECL_OVERRIDE;
void generate_LoadProperty(int name, int base) Q_DECL_OVERRIDE;
void generate_LoadPropertyA(int name) Q_DECL_OVERRIDE;
void generate_GetLookup(int index, int base) Q_DECL_OVERRIDE;
void generate_GetLookupA(int index) Q_DECL_OVERRIDE;
void generate_StoreProperty(int name, int base) Q_DECL_OVERRIDE;
void generate_SetLookup(int index, int base) Q_DECL_OVERRIDE;
void generate_Ret() override;
void generate_Debug() override;
void generate_LoadConst(int index) override;
void generate_LoadZero() override;
void generate_LoadTrue() override;
void generate_LoadFalse() override;
void generate_LoadNull() override;
void generate_LoadUndefined() override;
void generate_LoadInt(int value) override;
void generate_MoveConst(int constIndex, int destTemp) override;
void generate_LoadReg(int reg) override;
void generate_StoreReg(int reg) override;
void generate_MoveReg(int srcReg, int destReg) override;
void generate_LoadLocal(int index) override;
void generate_StoreLocal(int index) override;
void generate_LoadScopedLocal(int scope, int index) override;
void generate_StoreScopedLocal(int scope, int index) override;
void generate_LoadRuntimeString(int stringId) override;
void generate_MoveRegExp(int regExpId, int destReg) override;
void generate_LoadClosure(int value) override;
void generate_LoadName(int name) override;
void generate_LoadGlobalLookup(int index) override;
void generate_StoreNameSloppy(int name) override;
void generate_StoreNameStrict(int name) override;
void generate_LoadElement(int base, int index) override;
void generate_LoadElementA(int base) override;
void generate_StoreElement(int base, int index) override;
void generate_LoadProperty(int name, int base) override;
void generate_LoadPropertyA(int name) override;
void generate_GetLookup(int index, int base) override;
void generate_GetLookupA(int index) override;
void generate_StoreProperty(int name, int base) override;
void generate_SetLookup(int index, int base) override;
void generate_StoreScopeObjectProperty(int base,
int propertyIndex) Q_DECL_OVERRIDE;
int propertyIndex) override;
void generate_StoreContextObjectProperty(int base,
int propertyIndex) Q_DECL_OVERRIDE;
int propertyIndex) override;
void generate_LoadScopeObjectProperty(int propertyIndex, int base,
int captureRequired) Q_DECL_OVERRIDE;
int captureRequired) override;
void generate_LoadContextObjectProperty(int propertyIndex, int base,
int captureRequired) Q_DECL_OVERRIDE;
void generate_LoadIdObject(int index, int base) Q_DECL_OVERRIDE;
void generate_CallValue(int name, int argc, int argv) Q_DECL_OVERRIDE;
void generate_CallProperty(int name, int base, int argc, int argv) Q_DECL_OVERRIDE;
void generate_CallPropertyLookup(int lookupIndex, int base, int argc, int argv) Q_DECL_OVERRIDE;
void generate_CallElement(int base, int index, int argc, int argv) Q_DECL_OVERRIDE;
void generate_CallName(int name, int argc, int argv) Q_DECL_OVERRIDE;
void generate_CallPossiblyDirectEval(int argc, int argv) Q_DECL_OVERRIDE;
void generate_CallGlobalLookup(int index, int argc, int argv) Q_DECL_OVERRIDE;
void generate_CallScopeObjectProperty(int propIdx, int base, int argc, int argv) Q_DECL_OVERRIDE;
void generate_CallContextObjectProperty(int propIdx, int base, int argc, int argv) Q_DECL_OVERRIDE;
void generate_SetExceptionHandler(int offset) Q_DECL_OVERRIDE;
void generate_ThrowException() Q_DECL_OVERRIDE;
void generate_GetException() Q_DECL_OVERRIDE;
void generate_SetException() Q_DECL_OVERRIDE;
void generate_CreateCallContext() Q_DECL_OVERRIDE;
void generate_PushCatchContext(int name, int reg) Q_DECL_OVERRIDE;
void generate_PushWithContext(int reg) Q_DECL_OVERRIDE;
void generate_PopContext(int reg) Q_DECL_OVERRIDE;
void generate_ForeachIteratorObject() Q_DECL_OVERRIDE;
void generate_ForeachNextPropertyName() Q_DECL_OVERRIDE;
void generate_DeleteMember(int member, int base) Q_DECL_OVERRIDE;
void generate_DeleteSubscript(int base, int index) Q_DECL_OVERRIDE;
void generate_DeleteName(int name) Q_DECL_OVERRIDE;
void generate_TypeofName(int name) Q_DECL_OVERRIDE;
void generate_TypeofValue() Q_DECL_OVERRIDE;
void generate_DeclareVar(int varName, int isDeletable) Q_DECL_OVERRIDE;
void generate_DefineArray(int argc, int args) Q_DECL_OVERRIDE;
int captureRequired) override;
void generate_LoadIdObject(int index, int base) override;
void generate_CallValue(int name, int argc, int argv) override;
void generate_CallProperty(int name, int base, int argc, int argv) override;
void generate_CallPropertyLookup(int lookupIndex, int base, int argc, int argv) override;
void generate_CallElement(int base, int index, int argc, int argv) override;
void generate_CallName(int name, int argc, int argv) override;
void generate_CallPossiblyDirectEval(int argc, int argv) override;
void generate_CallGlobalLookup(int index, int argc, int argv) override;
void generate_CallScopeObjectProperty(int propIdx, int base, int argc, int argv) override;
void generate_CallContextObjectProperty(int propIdx, int base, int argc, int argv) override;
void generate_SetExceptionHandler(int offset) override;
void generate_ThrowException() override;
void generate_GetException() override;
void generate_SetException() override;
void generate_CreateCallContext() override;
void generate_PushCatchContext(int name, int reg) override;
void generate_PushWithContext(int reg) override;
void generate_PopContext(int reg) override;
void generate_ForeachIteratorObject() override;
void generate_ForeachNextPropertyName() override;
void generate_DeleteMember(int member, int base) override;
void generate_DeleteSubscript(int base, int index) override;
void generate_DeleteName(int name) override;
void generate_TypeofName(int name) override;
void generate_TypeofValue() override;
void generate_DeclareVar(int varName, int isDeletable) override;
void generate_DefineArray(int argc, int args) override;
void generate_DefineObjectLiteral(int internalClassId, int arrayValueCount,
int arrayGetterSetterCountAndFlags,
int args) Q_DECL_OVERRIDE;
void generate_CreateMappedArgumentsObject() Q_DECL_OVERRIDE;
void generate_CreateUnmappedArgumentsObject() Q_DECL_OVERRIDE;
void generate_ConvertThisToObject() Q_DECL_OVERRIDE;
void generate_Construct(int func, int argc, int argv) Q_DECL_OVERRIDE;
void generate_Jump(int offset) Q_DECL_OVERRIDE;
void generate_JumpTrue(int offset) Q_DECL_OVERRIDE;
void generate_JumpFalse(int offset) Q_DECL_OVERRIDE;
void generate_CmpEqNull() Q_DECL_OVERRIDE;
void generate_CmpNeNull() Q_DECL_OVERRIDE;
void generate_CmpEqInt(int lhs) Q_DECL_OVERRIDE;
void generate_CmpNeInt(int lhs) Q_DECL_OVERRIDE;
void generate_CmpEq(int lhs) Q_DECL_OVERRIDE;
void generate_CmpNe(int lhs) Q_DECL_OVERRIDE;
void generate_CmpGt(int lhs) Q_DECL_OVERRIDE;
void generate_CmpGe(int lhs) Q_DECL_OVERRIDE;
void generate_CmpLt(int lhs) Q_DECL_OVERRIDE;
void generate_CmpLe(int lhs) Q_DECL_OVERRIDE;
void generate_CmpStrictEqual(int lhs) Q_DECL_OVERRIDE;
void generate_CmpStrictNotEqual(int lhs) Q_DECL_OVERRIDE;
void generate_CmpIn(int lhs) Q_DECL_OVERRIDE;
void generate_CmpInstanceOf(int lhs) Q_DECL_OVERRIDE;
int args) override;
void generate_CreateMappedArgumentsObject() override;
void generate_CreateUnmappedArgumentsObject() override;
void generate_ConvertThisToObject() override;
void generate_Construct(int func, int argc, int argv) override;
void generate_Jump(int offset) override;
void generate_JumpTrue(int offset) override;
void generate_JumpFalse(int offset) override;
void generate_CmpEqNull() override;
void generate_CmpNeNull() override;
void generate_CmpEqInt(int lhs) override;
void generate_CmpNeInt(int lhs) override;
void generate_CmpEq(int lhs) override;
void generate_CmpNe(int lhs) override;
void generate_CmpGt(int lhs) override;
void generate_CmpGe(int lhs) override;
void generate_CmpLt(int lhs) override;
void generate_CmpLe(int lhs) override;
void generate_CmpStrictEqual(int lhs) override;
void generate_CmpStrictNotEqual(int lhs) override;
void generate_CmpIn(int lhs) override;
void generate_CmpInstanceOf(int lhs) override;
void generate_JumpStrictEqualStackSlotInt(int lhs, int rhs,
int offset) Q_DECL_OVERRIDE;
int offset) override;
void generate_JumpStrictNotEqualStackSlotInt(int lhs, int rhs,
int offset) Q_DECL_OVERRIDE;
void generate_UNot() Q_DECL_OVERRIDE;
void generate_UPlus() Q_DECL_OVERRIDE;
void generate_UMinus() Q_DECL_OVERRIDE;
void generate_UCompl() Q_DECL_OVERRIDE;
void generate_Increment() Q_DECL_OVERRIDE;
void generate_Decrement() Q_DECL_OVERRIDE;
void generate_Add(int lhs) Q_DECL_OVERRIDE;
void generate_BitAnd(int lhs) Q_DECL_OVERRIDE;
void generate_BitOr(int lhs) Q_DECL_OVERRIDE;
void generate_BitXor(int lhs) Q_DECL_OVERRIDE;
void generate_UShr(int lhs) Q_DECL_OVERRIDE;
void generate_Shr(int lhs) Q_DECL_OVERRIDE;
void generate_Shl(int lhs) Q_DECL_OVERRIDE;
void generate_BitAndConst(int rhs) Q_DECL_OVERRIDE;
void generate_BitOrConst(int rhs) Q_DECL_OVERRIDE;
void generate_BitXorConst(int rhs) Q_DECL_OVERRIDE;
void generate_UShrConst(int rhs) Q_DECL_OVERRIDE;
void generate_ShrConst(int rhs) Q_DECL_OVERRIDE;
void generate_ShlConst(int rhs) Q_DECL_OVERRIDE;
void generate_Mul(int lhs) Q_DECL_OVERRIDE;
void generate_Div(int lhs) Q_DECL_OVERRIDE;
void generate_Mod(int lhs) Q_DECL_OVERRIDE;
void generate_Sub(int lhs) Q_DECL_OVERRIDE;
void generate_LoadQmlContext(int result) Q_DECL_OVERRIDE;
void generate_LoadQmlImportedScripts(int result) Q_DECL_OVERRIDE;
void generate_LoadQmlSingleton(int name) Q_DECL_OVERRIDE;
int offset) override;
void generate_UNot() override;
void generate_UPlus() override;
void generate_UMinus() override;
void generate_UCompl() override;
void generate_Increment() override;
void generate_Decrement() override;
void generate_Add(int lhs) override;
void generate_BitAnd(int lhs) override;
void generate_BitOr(int lhs) override;
void generate_BitXor(int lhs) override;
void generate_UShr(int lhs) override;
void generate_Shr(int lhs) override;
void generate_Shl(int lhs) override;
void generate_BitAndConst(int rhs) override;
void generate_BitOrConst(int rhs) override;
void generate_BitXorConst(int rhs) override;
void generate_UShrConst(int rhs) override;
void generate_ShrConst(int rhs) override;
void generate_ShlConst(int rhs) override;
void generate_Mul(int lhs) override;
void generate_Div(int lhs) override;
void generate_Mod(int lhs) override;
void generate_Sub(int lhs) override;
void generate_LoadQmlContext(int result) override;
void generate_LoadQmlImportedScripts(int result) override;
void generate_LoadQmlSingleton(int name) override;
void startInstruction(Moth::Instr::Type instr) Q_DECL_OVERRIDE;
void endInstruction(Moth::Instr::Type instr) Q_DECL_OVERRIDE;
void startInstruction(Moth::Instr::Type instr) override;
void endInstruction(Moth::Instr::Type instr) override;
protected:
bool hasLabel() const

View File

@ -63,7 +63,7 @@ class Q_QML_EXPORT QJSEngine
public:
QJSEngine();
explicit QJSEngine(QObject *parent);
virtual ~QJSEngine();
~QJSEngine() override;
QJSValue globalObject() const;

View File

@ -75,7 +75,7 @@ public:
static QJSEnginePrivate* get(QV4::ExecutionEngine *e);
QJSEnginePrivate() : mutex(QMutex::Recursive) {}
~QJSEnginePrivate();
~QJSEnginePrivate() override;
static void addToDebugServer(QJSEngine *q);
static void removeFromDebugServer(QJSEngine *q);

View File

@ -78,7 +78,7 @@ class Q_QML_EXPORT Debugger : public QObject
Q_OBJECT
public:
virtual ~Debugger() {}
~Debugger() override {}
virtual bool pauseAtNextOpportunity() const = 0;
virtual void maybeBreakAtInstruction() = 0;
virtual void enteringFunction() = 0;

View File

@ -920,7 +920,7 @@ void ExecutionEngine::requireArgumentsAccessors(int n)
nArgumentsAccessors = qMax(8, n);
argumentsAccessors = new Property[nArgumentsAccessors];
if (oldAccessors) {
memcpy(argumentsAccessors, oldAccessors, oldSize*sizeof(Property));
memcpy(static_cast<void *>(argumentsAccessors), static_cast<const void *>(oldAccessors), oldSize*sizeof(Property));
delete [] oldAccessors;
}
ExecutionContext *global = rootContext();

View File

@ -221,7 +221,7 @@ void Heap::String::append(const String *data, QChar *ch)
memcpy(ch, cs->left->toQString().constData() + cs->from, cs->len*sizeof(QChar));
ch += cs->len;
} else {
memcpy(ch, item->text->data(), item->text->size * sizeof(QChar));
memcpy(static_cast<void *>(ch), static_cast<const void *>(item->text->data()), item->text->size * sizeof(QChar));
ch += item->text->size;
}
}

View File

@ -79,7 +79,7 @@ void Parser::reallocateStack()
sym_stack = reinterpret_cast<Value*> (realloc(sym_stack, stack_size * sizeof(Value)));
state_stack = reinterpret_cast<int*> (realloc(state_stack, stack_size * sizeof(int)));
location_stack = reinterpret_cast<AST::SourceLocation*> (realloc(location_stack, stack_size * sizeof(AST::SourceLocation)));
string_stack = reinterpret_cast<QStringRef*> (realloc(string_stack, stack_size * sizeof(QStringRef)));
string_stack = reinterpret_cast<QStringRef*> (realloc(static_cast<void *>(string_stack), stack_size * sizeof(QStringRef)));
}
Parser::Parser(Engine *engine):

View File

@ -87,11 +87,11 @@ public:
void insert(int idx, const T &v) {
if (m_count == m_capacity) {
m_capacity += Increment;
m_data = (T *)realloc(m_data, m_capacity * sizeof(T));
m_data = (T *)realloc(static_cast<void *>(m_data), m_capacity * sizeof(T));
}
int moveCount = m_count - idx;
if (moveCount)
::memmove(m_data + idx + 1, m_data + idx, moveCount * sizeof(T));
::memmove(static_cast<void *>(m_data + idx + 1), static_cast<const void *>(m_data + idx), moveCount * sizeof(T));
m_count++;
m_data[idx] = v;
}
@ -99,7 +99,7 @@ public:
void reserve(int count) {
if (count >= m_capacity) {
m_capacity = (count + (Increment-1)) & (0xFFFFFFFF - Increment + 1);
m_data = (T *)realloc(m_data, m_capacity * sizeof(T));
m_data = (T *)realloc(static_cast<void *>(m_data), m_capacity * sizeof(T));
}
}
@ -108,7 +108,7 @@ public:
reserve(newSize);
int moveCount = m_count - idx;
if (moveCount)
::memmove(m_data + idx + count, m_data + idx,
::memmove(static_cast<void *>(m_data + idx + count), static_cast<const void *>(m_data + idx),
moveCount * sizeof(T));
m_count = newSize;
}
@ -116,7 +116,7 @@ public:
void remove(int idx, int count = 1) {
int moveCount = m_count - (idx + count);
if (moveCount)
::memmove(m_data + idx, m_data + idx + count,
::memmove(static_cast<void *>(m_data + idx), static_cast<const void *>(m_data + idx + count),
moveCount * sizeof(T));
m_count -= count;
}

View File

@ -56,7 +56,7 @@ public:
QQmlApplicationEngine(QObject *parent = nullptr);
QQmlApplicationEngine(const QUrl &url, QObject *parent = nullptr);
QQmlApplicationEngine(const QString &filePath, QObject *parent = nullptr);
~QQmlApplicationEngine();
~QQmlApplicationEngine() override;
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
QList<QObject*> rootObjects(); // ### Qt 6: remove

View File

@ -79,7 +79,7 @@ public:
QObject *obj, QQmlContextData *ctxt, QV4::ExecutionContext *scope);
static QQmlBinding *createTranslationBinding(QV4::CompiledData::CompilationUnit *unit, const QV4::CompiledData::Binding *binding,
QObject *obj, QQmlContextData *ctxt);
~QQmlBinding();
~QQmlBinding() override;
void setTarget(const QQmlProperty &);
void setTarget(QObject *, const QQmlPropertyData &, const QQmlPropertyData *valueType);

View File

@ -92,7 +92,7 @@ public:
QQmlEngine *engine() const { return context() ? context()->engine : nullptr; }
private:
~QQmlBoundSignalExpression();
~QQmlBoundSignalExpression() override;
void init(QQmlContextData *ctxt, QObject *scope);

View File

@ -83,7 +83,7 @@ public:
QQmlComponent(QQmlEngine *, const QString &fileName, CompilationMode mode, QObject *parent = nullptr);
QQmlComponent(QQmlEngine *, const QUrl &url, QObject *parent = nullptr);
QQmlComponent(QQmlEngine *, const QUrl &url, CompilationMode mode, QObject *parent = nullptr);
virtual ~QQmlComponent();
~QQmlComponent() override;
enum Status { Null, Ready, Loading, Error };
Q_ENUM(Status)

View File

@ -68,7 +68,7 @@ public:
QQmlContext(QQmlEngine *parent, QObject *objParent = nullptr);
QQmlContext(QQmlContext *parent, QObject *objParent = nullptr);
virtual ~QQmlContext();
~QQmlContext() override;
bool isValid() const;

View File

@ -65,7 +65,7 @@ class QQmlDelayedCallQueue : public QObject
Q_OBJECT
public:
QQmlDelayedCallQueue();
~QQmlDelayedCallQueue();
~QQmlDelayedCallQueue() override;
void init(QV4::ExecutionEngine *);

View File

@ -97,7 +97,7 @@ class Q_QML_EXPORT QQmlEngine : public QJSEngine
Q_OBJECT
public:
explicit QQmlEngine(QObject *p = nullptr);
virtual ~QQmlEngine();
~QQmlEngine() override;
QQmlContext *rootContext() const;

View File

@ -122,7 +122,7 @@ class Q_QML_PRIVATE_EXPORT QQmlEnginePrivate : public QJSEnginePrivate
Q_DECLARE_PUBLIC(QQmlEngine)
public:
QQmlEnginePrivate(QQmlEngine *);
~QQmlEnginePrivate();
~QQmlEnginePrivate() override;
void init();
// No mutex protecting baseModulesUninitialized, because use outside QQmlEngine
@ -341,7 +341,7 @@ void QQmlEnginePrivate::deleteInEngineThread(T *value)
} else {
struct I : public Deletable {
I(T *value) : value(value) {}
~I() { delete value; }
~I() override { delete value; }
T *value;
};
I *i = new I(value);

View File

@ -62,7 +62,7 @@ public:
QQmlExpression();
QQmlExpression(QQmlContext *, QObject *, const QString &, QObject * = nullptr);
explicit QQmlExpression(const QQmlScriptString &, QQmlContext * = nullptr, QObject * = nullptr, QObject * = nullptr);
virtual ~QQmlExpression();
~QQmlExpression() override;
QQmlEngine *engine() const;
QQmlContext *context() const;

View File

@ -68,7 +68,7 @@ class QQmlExpressionPrivate : public QObjectPrivate,
Q_DECLARE_PUBLIC(QQmlExpression)
public:
QQmlExpressionPrivate();
~QQmlExpressionPrivate();
~QQmlExpressionPrivate() override;
void init(QQmlContextData *, const QString &, QObject *);
void init(QQmlContextData *, QV4::Function *runtimeFunction, QObject *);

View File

@ -58,7 +58,7 @@ public:
class Q_QML_EXPORT QQmlExtensionInterface : public QQmlTypesExtensionInterface
{
public:
virtual ~QQmlExtensionInterface() {}
~QQmlExtensionInterface() override {}
virtual void initializeEngine(QQmlEngine *engine, const char *uri) = 0;
};

View File

@ -59,7 +59,7 @@ class Q_QML_EXPORT QQmlExtensionPlugin
Q_INTERFACES(QQmlTypesExtensionInterface)
public:
explicit QQmlExtensionPlugin(QObject *parent = nullptr);
~QQmlExtensionPlugin();
~QQmlExtensionPlugin() override;
QUrl baseUrl() const;

View File

@ -55,7 +55,7 @@ class Q_QML_EXPORT QQmlFileSelector : public QObject
Q_DECLARE_PRIVATE(QQmlFileSelector)
public:
explicit QQmlFileSelector(QQmlEngine *engine, QObject *parent = nullptr);
~QQmlFileSelector();
~QQmlFileSelector() override;
QFileSelector *selector() const Q_DECL_NOTHROW;
void setSelector(QFileSelector *selector);
void setExtraSelectors(QStringList &strings); // TODO Qt6: remove

View File

@ -69,7 +69,7 @@ class Q_QML_PRIVATE_EXPORT QQmlOpenMetaObjectType : public QQmlRefCount, public
{
public:
QQmlOpenMetaObjectType(const QMetaObject *base, QQmlEngine *engine);
~QQmlOpenMetaObjectType();
~QQmlOpenMetaObjectType() override;
void createProperties(const QVector<QByteArray> &names);
int createProperty(const QByteArray &name);
@ -97,7 +97,7 @@ class Q_QML_PRIVATE_EXPORT QQmlOpenMetaObject : public QAbstractDynamicMetaObjec
public:
QQmlOpenMetaObject(QObject *, const QMetaObject * = nullptr, bool = true);
QQmlOpenMetaObject(QObject *, QQmlOpenMetaObjectType *, bool = true);
~QQmlOpenMetaObject();
~QQmlOpenMetaObject() override;
QVariant value(const QByteArray &) const;
bool setValue(const QByteArray &, const QVariant &);

View File

@ -98,7 +98,7 @@ namespace QQmlPrivate
class QQmlElement : public T
{
public:
virtual ~QQmlElement() {
~QQmlElement() override {
QQmlPrivate::qdeclarativeelement_destructor(this);
}
};

View File

@ -394,7 +394,7 @@ class Q_QML_PRIVATE_EXPORT QQmlPropertyCache : public QQmlRefCount
public:
QQmlPropertyCache();
QQmlPropertyCache(const QMetaObject *);
virtual ~QQmlPropertyCache();
~QQmlPropertyCache() override;
void update(const QMetaObject *);
void invalidate(const QMetaObject *);

View File

@ -3015,7 +3015,7 @@ void QQmlScriptBlob::dataReceived(const SourceCodeData &data)
// The js unit owns the data and will free the qml unit.
unit->data = unitData;
if (!disableDiskCache() || forceDiskCache()) {
if ((!disableDiskCache() || forceDiskCache()) && !isDebugging()) {
QString errorString;
if (!unit->saveToDisk(url(), &errorString)) {
qCDebug(DBG_DISK_CACHE()) << "Error saving cached version of" << unit->fileName() << "to disk:" << errorString;

View File

@ -110,7 +110,7 @@ public:
};
QQmlDataBlob(const QUrl &, Type, QQmlTypeLoader* manager);
virtual ~QQmlDataBlob();
~QQmlDataBlob() override;
void startLoading();
@ -262,7 +262,7 @@ public:
{
public:
Blob(const QUrl &url, QQmlDataBlob::Type type, QQmlTypeLoader *loader);
~Blob();
~Blob() override;
const QQmlImports &imports() const { return m_importCache; }
@ -438,7 +438,7 @@ private:
QQmlTypeData(const QUrl &, QQmlTypeLoader *);
public:
~QQmlTypeData();
~QQmlTypeData() override;
const QList<ScriptReference> &resolvedScripts() const;
@ -523,7 +523,7 @@ private:
QQmlScriptData();
public:
~QQmlScriptData();
~QQmlScriptData() override;
QUrl url;
QString urlString;
@ -554,7 +554,7 @@ private:
QQmlScriptBlob(const QUrl &, QQmlTypeLoader *);
public:
~QQmlScriptBlob();
~QQmlScriptBlob() override;
struct ScriptReference
{

View File

@ -85,7 +85,7 @@ class Q_QML_PRIVATE_EXPORT QQmlTypeNameCache : public QQmlRefCount
{
public:
QQmlTypeNameCache(const QQmlImports &imports);
virtual ~QQmlTypeNameCache();
~QQmlTypeNameCache() override;
inline bool isEmpty() const;

View File

@ -67,7 +67,7 @@ class Q_QML_PRIVATE_EXPORT QQmlValueType : public QObject, public QAbstractDynam
{
public:
QQmlValueType(int userType, const QMetaObject *metaObject);
~QQmlValueType();
~QQmlValueType() override;
void read(QObject *, int);
void write(QObject *, int, QQmlPropertyData::WriteFlags flags);
QVariant value();

View File

@ -81,7 +81,7 @@ class QQmlVMEVariantQObjectPtr : public QQmlGuard<QObject>
{
public:
inline QQmlVMEVariantQObjectPtr();
inline ~QQmlVMEVariantQObjectPtr();
inline ~QQmlVMEVariantQObjectPtr() override;
inline void objectDestroyed(QObject *) override;
inline void setGuardedValue(QObject *obj, QQmlVMEMetaObject *target, int index);
@ -95,7 +95,7 @@ class Q_QML_PRIVATE_EXPORT QQmlInterceptorMetaObject : public QAbstractDynamicMe
{
public:
QQmlInterceptorMetaObject(QObject *obj, QQmlPropertyCache *cache);
~QQmlInterceptorMetaObject();
~QQmlInterceptorMetaObject() override;
void registerInterceptor(QQmlPropertyIndex index, QQmlPropertyValueInterceptor *interceptor);
@ -147,7 +147,7 @@ class Q_QML_PRIVATE_EXPORT QQmlVMEMetaObject : public QQmlInterceptorMetaObject
{
public:
QQmlVMEMetaObject(QV4::ExecutionEngine *engine, QObject *obj, QQmlPropertyCache *cache, QV4::CompiledData::CompilationUnit *qmlCompilationUnit, int qmlObjectId);
~QQmlVMEMetaObject();
~QQmlVMEMetaObject() override;
bool aliasTarget(int index, QObject **target, int *coreIndex, int *valueTypeIndex) const;
QV4::ReturnedValue vmeMethod(int index) const;

View File

@ -56,7 +56,7 @@ class Q_QML_EXPORT QQmlPropertyMap : public QObject
Q_OBJECT
public:
explicit QQmlPropertyMap(QObject *parent = nullptr);
virtual ~QQmlPropertyMap();
~QQmlPropertyMap() override;
QVariant value(const QString &key) const;
void insert(const QString &key, const QVariant &value);

View File

@ -97,7 +97,7 @@ struct QQmlProfilerEvent : public QQmlProfilerDefinitions {
QQmlProfilerEvent(QQmlProfilerEvent &&other)
{
memcpy(this, &other, sizeof(QQmlProfilerEvent));
memcpy(static_cast<void *>(this), static_cast<const void *>(&other), sizeof(QQmlProfilerEvent));
other.m_dataType = Inline8Bit; // prevent dtor from deleting the pointer
}
@ -117,7 +117,7 @@ struct QQmlProfilerEvent : public QQmlProfilerDefinitions {
QQmlProfilerEvent &operator=(QQmlProfilerEvent &&other)
{
if (this != &other) {
memcpy(this, &other, sizeof(QQmlProfilerEvent));
memcpy(static_cast<void *>(this), static_cast<const void *>(&other), sizeof(QQmlProfilerEvent));
other.m_dataType = Inline8Bit;
}
return *this;

View File

@ -1,35 +1,35 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
project = QtQuickTest
project = QtQmlTest
description = Qt Quick Test Reference Documentation
version = $QT_VERSION
moduleheader = QtQuickTest
qhp.projects = QtQmlTest
qhp.projects = QtQuickTest
qhp.QtQmlTest.file = qtqmltest.qhp
qhp.QtQmlTest.namespace = org.qt-project.qtqmltest.$QT_VERSION_TAG
qhp.QtQmlTest.virtualFolder = qtqmltest
qhp.QtQmlTest.indexTitle = Qt Quick Test
qhp.QtQmlTest.indexRoot =
qhp.QtQuickTest.file = qtqmltest.qhp
qhp.QtQuickTest.namespace = org.qt-project.qtquicktest.$QT_VERSION_TAG
qhp.QtQuickTest.virtualFolder = qtquicktest
qhp.QtQuickTest.indexTitle = Qt Quick Test
qhp.QtQuickTest.indexRoot =
qhp.QtQuickTest.filterAttributes = qtquicktest $QT_VERSION qtrefdoc
qhp.QtQuickTest.customFilters.Qt.name = QtQuickTest $QT_VERSION
qhp.QtQuickTest.customFilters.Qt.filterAttributes = qtquicktest $QT_VERSION
qhp.QtQuickTest.subprojects = qmltypes classes examples
qhp.QtQuickTest.subprojects.classes.title = C++ Classes
qhp.QtQuickTest.subprojects.classes.indexTitle = Qt Quick Test C++ Classes
qhp.QtQuickTest.subprojects.classes.selectors = class doc:headerfile
qhp.QtQuickTest.subprojects.classes.sortPages = true
qhp.QtQuickTest.subprojects.examples.title = Examples
qhp.QtQuickTest.subprojects.examples.indexTitle = Qt Quick Test Examples
qhp.QtQuickTest.subprojects.examples.selectors = doc:example
qhp.QtQuickTest.subprojects.qmltypes.title = QML Types
qhp.QtQuickTest.subprojects.qmltypes.indexTitle = Qt Quick Test QML Types
qhp.QtQuickTest.subprojects.qmltypes.selectors = qmlclass
qhp.QtQuickTest.subprojects.qmltypes.sortPages = true
qhp.QtQmlTest.filterAttributes = qtqmltest $QT_VERSION qtrefdoc
qhp.QtQmlTest.customFilters.Qt.name = QtQmlTest $QT_VERSION
qhp.QtQmlTest.customFilters.Qt.filterAttributes = qtqmltest $QT_VERSION
qhp.QtQmlTest.subprojects = qmltypes classes examples
qhp.QtQmlTest.subprojects.classes.title = C++ Classes
qhp.QtQmlTest.subprojects.classes.indexTitle = Qt Quick Test C++ Classes
qhp.QtQmlTest.subprojects.classes.selectors = class doc:headerfile
qhp.QtQmlTest.subprojects.classes.sortPages = true
qhp.QtQmlTest.subprojects.examples.title = Examples
qhp.QtQmlTest.subprojects.examples.indexTitle = Qt Quick Test Examples
qhp.QtQmlTest.subprojects.examples.selectors = doc:example
qhp.QtQmlTest.subprojects.qmltypes.title = QML Types
qhp.QtQmlTest.subprojects.qmltypes.indexTitle = Qt Quick Test QML Types
qhp.QtQmlTest.subprojects.qmltypes.selectors = qmlclass
qhp.QtQmlTest.subprojects.qmltypes.sortPages = true
tagfile = ../../../doc/qtquicktest/qtquicktest.tags
tagfile = ../../../doc/qtqmltest/qtqmltest.tags
depends += qtcore qtxmlpatterns qtgui qttestlib qtqml qtquick qtdoc

View File

@ -82,7 +82,7 @@ class Q_QUICK_TEST_EXPORT QuickTestEvent : public QObject
Q_PROPERTY(int defaultMouseDelay READ defaultMouseDelay FINAL)
public:
QuickTestEvent(QObject *parent = nullptr);
~QuickTestEvent();
~QuickTestEvent() override;
int defaultMouseDelay() const;
public Q_SLOTS:

View File

@ -78,7 +78,7 @@ class Q_QUICK_TEST_EXPORT QuickTestResult : public QObject
Q_PROPERTY(QStringList functionsToRun READ functionsToRun)
public:
QuickTestResult(QObject *parent = nullptr);
~QuickTestResult();
~QuickTestResult() override;
// Values must match QBenchmarkIterationController::RunMode.
enum RunMode

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

View File

@ -33,7 +33,7 @@ qhp.QtQuick.subprojects.examples.selectors = fake:example
tagfile = ../../../doc/qtquick/qtquick.tags
depends += qtcore qtxmlpatterns qtqml qtgui qtlinguist qtquickcontrols qtdoc qtquickdialogs qtsensors qtwidgets qmake qtmultimedia qtgraphicaleffects qtsql
depends += qtcore qtxmlpatterns qtqml qtqmltest qtgui qtlinguist qtquickcontrols qtquickcontrols2 qtdoc qtquickdialogs qtsensors qtwidgets qmake qtmultimedia qtgraphicaleffects qtsql
headerdirs += ..\
../../quickwidgets

View File

@ -1,107 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** 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 https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** BSD License Usage
** Alternatively, you may use this file under the terms of the BSD license
** as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
//![0]
var db = LocalStorage.openDatabaseSync("ActivityTrackDB", "", "Database tracking sports activities", 1000000);
db.transaction(
try {
function(tx) {
tx.executeSql("INSERT INTO trip_log VALUES(?, ?, ?)",
[ "01/10/2016","Sylling - Vikersund", "53" ]);
}
} catch (err) {
console.log("Error inserting into table trip_log: " + err);
}
)
//![0]
//![1]
// Retrieve activity date, description and distance based on minimum
// distance parameter Pdistance
function db_distance_select(Pdistance)
{
var db = LocalStorage.openDatabaseSync("ActivityTrackDB", "", "Database tracking sports activities", 1000000);
db.transaction(
function(tx) {
var results = tx.executeSql("SELECT rowid,
date,
trip_desc,
distance FROM trip_log
where distance >= ?",[Pdistance]);
for (var i = 0; i < results.rows.length; i++) {
listModel.append({"id": results.rows.item(i).rowid,
"date": results.rows.item(i).date,
"trip_desc": results.rows.item(i).trip_desc,
"distance": results.rows.item(i).distance});
}
}
}
//![1]
//![2]
var db = LocalStorage.openDatabaseSync("ActivityTrackDB", "", "Database tracking sports activities", 1000000);
if (db.version == "0.1") {
db.changeVersion("0.1", "0.2", function(tx) {
tx.executeSql("INSERT INTO trip_log VALUES(?, ?, ?)",
[ "01/10/2016","Sylling - Vikersund", "53" ]);
}
});
//![2]
//![3]
create table trip_log(date text, data text)
//![3]
//![4]
var obj = {description = "Vikersund - Noresund", distance = "60"}
//![4]
//![5]
db.transaction(function(tx) {
result = tx.executeSQL("insert into trip_log values (?,?)",
["01/11/2016", JSON.stringify(obj)])
}
//![5]

View File

@ -67,7 +67,7 @@
\list
\li \l{Qt Quick}
\li \l{Qt Quick Pointer Handlers Overview}
\li \l{Qt Quick Pointer Handlers}
\li \l{Qt Quick Pointer Handlers QML Types}{Qt Quick Pointer Handlers QML Types}
\endlist
*/

View File

@ -53,20 +53,20 @@ QT_BEGIN_NAMESPACE
DragHandler is a handler that is used to interactively move an Item.
Like other Pointer Handlers, by default it is fully functional, and
manipulates its \l target.
manipulates its \l {PointerHandler::target} {target}.
\snippet pointerHandlers/dragHandler.qml 0
It has properties to restrict the range of dragging.
If it is declared within one Item but is assigned a different
\l {PointerHandler::target}, then it handles events within the
bounds of the \l {PointerHandler::parent} Item but
\l {PointerHandler::target} {target}, then it handles events within the
bounds of the \l {PointerHandler::parent} {parent} Item but
manipulates the \c target Item instead:
\snippet pointerHandlers/dragHandlerDifferentTarget.qml 0
A third way to use it is to set \l {PointerHandler::target} to
A third way to use it is to set \l {PointerHandler::target} {target} to
\c null and react to property changes in some other way:
\snippet pointerHandlers/dragHandlerNullTarget.qml 0
@ -108,15 +108,15 @@ QPointF QQuickDragHandler::localTargetPosition(QQuickEventPoint *point)
void QQuickDragHandler::onGrabChanged(QQuickPointerHandler *grabber, QQuickEventPoint::GrabState stateChange, QQuickEventPoint *point)
{
if (!target() || !target()->parentItem())
return;
if (grabber == this && stateChange == QQuickEventPoint::GrabExclusive) {
// In case the grab got handed over from another grabber, we might not get the Press.
if (!m_pressedInsideTarget) {
m_pressTargetPos = QPointF(target()->width(), target()->height()) / 2;
if (target())
m_pressTargetPos = QPointF(target()->width(), target()->height()) / 2;
m_pressScenePos = point->scenePosition();
} else if (m_pressTargetPos.isNull()) {
m_pressTargetPos = localTargetPosition(point);
if (target())
m_pressTargetPos = localTargetPosition(point);
m_pressScenePos = point->scenePosition();
}
}
@ -137,8 +137,10 @@ void QQuickDragHandler::handleEventPoint(QQuickEventPoint *point)
point->setAccepted();
switch (point->state()) {
case QQuickEventPoint::Pressed:
m_pressedInsideTarget = targetContains(point);
m_pressTargetPos = localTargetPosition(point);
if (target()) {
m_pressedInsideTarget = targetContains(point);
m_pressTargetPos = localTargetPosition(point);
}
m_pressScenePos = point->scenePosition();
setPassiveGrab(point);
break;
@ -214,23 +216,33 @@ void QQuickDragHandler::setTranslation(const QVector2D &trans)
/*!
\qmlpropertygroup QtQuick::DragHandler::xAxis
\qmlproperty real QtQuick::DragHandler::xAxis.minimum
\qmlproperty real QtQuick::DragHandler::xAxis.maximum
\qmlproperty bool QtQuick::DragHandler::xAxis.enabled
\c xAxis controls the constraints for horizontal dragging.
\c minimum is the minimum acceptable value of \l {Item::x}{x} to be
applied to the \l {PointerHandler::target} {target}.
\c maximum is the maximum acceptable value of \l {Item::x}{x} to be
applied to the \l {PointerHandler::target} {target}.
If \c enabled is true, horizontal dragging is allowed.
*/
/*!
\qmlpropertygroup QtQuick::DragHandler::yAxis
\qmlproperty real QtQuick::DragHandler::DragAxis::minimum
\qmlproperty real QtQuick::DragHandler::DragAxis::maximum
\qmlproperty real QtQuick::DragHandler::DragAxis::enabled
\qmlproperty real QtQuick::DragHandler::yAxis.minimum
\qmlproperty real QtQuick::DragHandler::yAxis.maximum
\qmlproperty bool QtQuick::DragHandler::yAxis.enabled
\c xAxis and yAxis control the constraints for horizontal and vertical
dragging, respectively.
\c yAxis controls the constraints for vertical dragging.
\value minimum
The minimum acceptable value of \l {Item::x}{x} or \l {Item::y}{y}
to be applied to the \l target
\value maximum
The maximum acceptable value of \l {Item::x}{x} or \l {Item::y}{y}
to be applied to the \l target
\value enabled
Whether dragging in this direction is allowed at all
*/
\c minimum is the minimum acceptable value of \l {Item::y}{y} to be
applied to the \l {PointerHandler::target} {target}.
\c maximum is the maximum acceptable value of \l {Item::y}{y} to be
applied to the \l {PointerHandler::target} {target}.
If \c enabled is true, vertical dragging is allowed.
*/
QQuickDragAxis::QQuickDragAxis()
: m_minimum(-DBL_MAX)
, m_maximum(DBL_MAX)

View File

@ -470,7 +470,7 @@ void QQuickHandlerPoint::reset()
If the contact patch is unknown, or the device is not a touchscreen,
these values will be zero.
\sa QtQuick::EventPoint::ellipseDiameters, QtQuick::TouchPoint::ellipseDiameters, QTouchEvent::TouchPoint::ellipseDiameters
\sa QtQuick::EventTouchPoint::ellipseDiameters, QtQuick::TouchPoint::ellipseDiameters, QTouchEvent::TouchPoint::ellipseDiameters
*/
QT_END_NAMESPACE

View File

@ -171,7 +171,7 @@ void QQuickTapHandler::handleEventPoint(QQuickEventPoint *point)
}
/*!
\qmlproperty real TapHandler::longPressThreshold
\qmlproperty real QtQuick::TapHandler::longPressThreshold
The time in seconds that an event point must be pressed in order to
trigger a long press gesture and emit the \l longPressed() signal.
@ -209,39 +209,53 @@ void QQuickTapHandler::timerEvent(QTimerEvent *event)
}
/*!
\qmlproperty enumeration TapHandler::gesturePolicy
\qmlsignal QtQuick::TapHandler::tapped()
This signal is emitted when the pointer device taps the item.
*/
/*!
\qmlsignal QtQuick::TapHandler::longPressed()
This signal is emitted when a press occurs that is longer than the
\l {TapHandler::longPressThreshold} {long press threshold}.
*/
/*!
\qmlproperty enumeration QtQuick::TapHandler::gesturePolicy
The spatial constraint for a tap or long press gesture to be recognized,
in addition to the constraint that the release must occur before
\l longPressThreshold has elapsed. If these constraints are not satisfied,
the \l tapped signal is not emitted, and \l tapCount is not incremented.
If the spatial constraint is violated, \l isPressed transitions immediately
If the spatial constraint is violated, \l pressed transitions immediately
from true to false, regardless of the time held.
\value TapHandler.DragThreshold
The event point must not move significantly. If the mouse, finger
or stylus moves past the system-wide drag threshold
(QStyleHints::startDragDistance), the tap gesture is canceled, even
if the button or finger is still pressed. This policy can be useful
whenever TapHandler needs to cooperate with other pointer handlers
(for example \l DragHandler), because in this case TapHandler will
never grab.
(the default value) The event point must not move significantly.
If the mouse, finger or stylus moves past the system-wide drag
threshold (QStyleHints::startDragDistance), the tap gesture is
canceled, even if the button or finger is still pressed. This policy
can be useful whenever TapHandler needs to cooperate with other
pointer handlers (for example \l DragHandler) or event-handling Items
(for example QtQuick Controls), because in this case TapHandler
will not take the exclusive grab, but merely a passive grab.
\value TapHandler.WithinBounds
If the event point leaves the bounds of the \l target item, the tap
gesture is canceled. The TapHandler will grab on press, but release
the grab as soon as the boundary constraint is no longer satisfied.
gesture is canceled. The TapHandler will take the exclusive grab on
press, but will release the grab as soon as the boundary constraint
is no longer satisfied.
\value TapHandler.ReleaseWithinBounds
(the default value) At the time of release (the mouse button is
released or the finger is lifted), if the event point is outside
the bounds of the \l target item, a tap gesture is not recognized.
This is the default value, because it corresponds to typical button
behavior: you can cancel a click by dragging outside the button,
and you can also change your mind by dragging back inside the button
before release. Note that it's necessary for TapHandler to grab on
press and retain it until release (greedy grab) in order to detect
this gesture.
At the time of release (the mouse button is released or the finger
is lifted), if the event point is outside the bounds of the
\l target item, a tap gesture is not recognized. This corresponds to
typical behavior for button widgets: you can cancel a click by
dragging outside the button, and you can also change your mind by
dragging back inside the button before release. Note that it's
necessary for TapHandler take the exclusive grab on press and retain
it until release in order to detect this gesture.
*/
void QQuickTapHandler::setGesturePolicy(QQuickTapHandler::GesturePolicy gesturePolicy)
{
@ -253,7 +267,7 @@ void QQuickTapHandler::setGesturePolicy(QQuickTapHandler::GesturePolicy gestureP
}
/*!
\qmlproperty bool TapHandler::pressed
\qmlproperty bool QtQuick::TapHandler::pressed
\readonly
Holds true whenever the mouse or touch point is pressed,
@ -296,6 +310,10 @@ void QQuickTapHandler::setPressed(bool press, bool cancel, QQuickEventPoint *poi
qCDebug(lcTapHandler) << objectName() << "tapped" << m_tapCount << "times";
emit tapped();
emit tapCountChanged();
if (m_tapCount == 1)
emit singleTapped();
else if (m_tapCount == 2)
emit doubleTapped();
m_lastTapTimestamp = ts;
m_lastTapPos = point->scenePosition();
} else {
@ -334,27 +352,27 @@ void QQuickTapHandler::updateTimeHeld()
}
/*!
\qmlproperty int TapHandler::tapCount
\qmlproperty int QtQuick::TapHandler::tapCount
\readonly
The number of taps which have occurred within the time and space
constraints to be considered a single gesture. For example, to detect
a double-tap, you can write:
a triple-tap, you can write:
\qml
Rectangle {
width: 100; height: 30
signal doubleTap
signal tripleTap
TapHandler {
acceptedButtons: Qt.AllButtons
onTapped: if (tapCount == 2) doubleTap()
onTapped: if (tapCount == 3) tripleTap()
}
}
\endqml
*/
/*!
\qmlproperty real TapHandler::timeHeld
\qmlproperty real QtQuick::TapHandler::timeHeld
\readonly
The amount of time in seconds that a pressed point has been held, without
@ -368,4 +386,24 @@ void QQuickTapHandler::updateTimeHeld()
handler's \l [QML] Item.
*/
/*!
\qmlsignal TapHandler::singleTapped
\since 5.11
This signal is emitted when the \l target is tapped once. After an amount
of time greater than QStyleHints::mouseDoubleClickInterval, it can be
tapped again; but if the time until the next tap is less, \l tapCount
will increase.
*/
/*!
\qmlsignal TapHandler::doubleTapped
\since 5.11
This signal is emitted when the \l target is tapped twice within a short
span of time (QStyleHints::mouseDoubleClickInterval) and distance
(QPlatformTheme::MouseDoubleClickDistance or
QPlatformTheme::TouchDoubleTapDistance). This signal always occurs
after singleTapped, tapped and tapCountChanged.
*/
QT_END_NAMESPACE

View File

@ -96,6 +96,8 @@ Q_SIGNALS:
void longPressThresholdChanged();
void gesturePolicyChanged();
void tapped();
void singleTapped();
void doubleTapped();
void longPressed();
protected:

View File

@ -87,7 +87,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickAnchors : public QObject
public:
QQuickAnchors(QQuickItem *item, QObject *parent=nullptr);
virtual ~QQuickAnchors();
~QQuickAnchors() override;
enum Anchor
#if defined(Q_CC_CLANG) || !defined(Q_CC_GNU) // meaning: clang and msvc, but NOT gcc proper (because, you know, Q_CC_CLANG implies Q_CC_GNU)

View File

@ -69,9 +69,67 @@ QT_BEGIN_NAMESPACE
as multiple frames in the same image file. You can play it at a fixed speed, at the
frame rate of your display, or manually advance and control the progress.
For details of how a sprite animation is defined see the \l{Sprite Animations} overview.
Note that the AnimatedSprite type does not use Sprite types to define multiple animations,
but instead encapsulates a single animation itself.
Consider the following sprite sheet:
\image animatedsprite-loading.png
It can be divided up into four frames:
\image animatedsprite-loading-frames.png
To play each of these frames at a speed of 500 milliseconds per frame, the
following code can be used:
\table
\header
\li Code
\li Result
\row
\li
\code
AnimatedSprite {
source: "loading.png"
frameWidth: 64
frameHeight: 64
frameCount: 4
frameDuration: 500
}
\endcode
\li
\image animatedsprite-loading-interpolated.gif
\endtable
By default, the frames are interpolated (blended together) to make the
animation appear smoother. To disable this, set \l interpolate to \c false:
\table
\header
\li Code
\li Result
\row
\li
\code
AnimatedSprite {
source: "loading.png"
frameWidth: 64
frameHeight: 64
frameCount: 4
frameDuration: 500
interpolate: false
}
\endcode
\li
\image animatedsprite-loading.gif
\endtable
To control how AnimatedSprite responds to being scaled, use the
\l {Item::}{smooth} property.
Note that unlike \l SpriteSequence, the AnimatedSprite type does not use
\l Sprite to define multiple animations, but instead encapsulates a
single animation itself.
\sa {Sprite Animations}
*/
/*!

View File

@ -395,7 +395,7 @@ public:
, m_pressedButtons(Qt::NoButton)
{}
virtual ~QQuickPointerEvent();
~QQuickPointerEvent() override;
public: // property accessors
QQuickPointerDevice *device() const { return m_device; }
@ -566,7 +566,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickPointerDevice : public QObject
Q_PROPERTY(QPointingDeviceUniqueId uniqueId READ uniqueId CONSTANT)
public:
enum DeviceType {
enum DeviceType : qint16 {
UnknownDevice = 0x0000,
Mouse = 0x0001,
TouchScreen = 0x0002,
@ -574,25 +574,25 @@ public:
Puck = 0x0008,
Stylus = 0x0010,
Airbrush = 0x0020,
AllDevices = 0x003F
AllDevices = 0x7FFF
};
Q_DECLARE_FLAGS(DeviceTypes, DeviceType)
Q_ENUM(DeviceType)
Q_FLAG(DeviceTypes)
enum PointerType {
enum PointerType : qint16 {
GenericPointer = 0x0001,
Finger = 0x0002,
Pen = 0x0004,
Eraser = 0x0008,
Cursor = 0x0010,
AllPointerTypes = 0x001F
AllPointerTypes = 0x7FFF
};
Q_DECLARE_FLAGS(PointerTypes, PointerType)
Q_ENUM(PointerType)
Q_FLAG(PointerTypes)
enum CapabilityFlag {
enum CapabilityFlag : qint16 {
Position = QTouchDevice::Position,
Area = QTouchDevice::Area,
Pressure = QTouchDevice::Pressure,
@ -610,7 +610,7 @@ public:
DeviceType type() const { return m_deviceType; }
PointerType pointerType() const { return m_pointerType; }
Capabilities capabilities() const { return m_capabilities; }
Capabilities capabilities() const { return static_cast<Capabilities>(m_capabilities); }
bool hasCapability(CapabilityFlag cap) { return m_capabilities & cap; }
int maximumTouchPoints() const { return m_maximumTouchPoints; }
int buttonCount() const { return m_buttonCount; }
@ -626,19 +626,21 @@ public:
private:
QQuickPointerDevice(DeviceType devType, PointerType pType, Capabilities caps, int maxPoints, int buttonCount, const QString &name, qint64 uniqueId = 0)
: m_deviceType(devType), m_pointerType(pType), m_capabilities(caps)
, m_maximumTouchPoints(maxPoints), m_buttonCount(buttonCount), m_name(name)
: m_deviceType(devType), m_pointerType(pType), m_capabilities(static_cast<qint16>(caps))
, m_maximumTouchPoints(static_cast<qint8>(maxPoints)), m_buttonCount(static_cast<qint8>(buttonCount)), m_name(name)
, m_uniqueId(QPointingDeviceUniqueId::fromNumericId(uniqueId))
{
}
~QQuickPointerDevice() { }
~QQuickPointerDevice() override { }
private:
// begin 64-bit field
DeviceType m_deviceType;
PointerType m_pointerType;
Capabilities m_capabilities;
int m_maximumTouchPoints;
int m_buttonCount;
qint16 m_capabilities;
qint8 m_maximumTouchPoints;
qint8 m_buttonCount;
// end 64-bit field
QString m_name;
QPointingDeviceUniqueId m_uniqueId;
QVector<QQuickPointerHandler *> m_eventDeliveryTargets; // during delivery, handlers which have already seen the event

View File

@ -2068,7 +2068,7 @@ void QQuickItemPrivate::updateSubFocusItem(QQuickItem *scope, bool focus)
In the QPainter / QWidget world, it is some times favorable to
cache complex content in a pixmap, image or texture. In Qt Quick,
because of the techniques already applied by the \l {Qt Quick
Scene Graph Renderer} {scene graph renderer}, this will in most
Scene Graph OpenGL Renderer} {scene graph renderer}, this will in most
cases not be the case. Excessive draw calls are already reduced
because of batching and a cache will in most cases end up blending
more pixels than the original content. The overhead of rendering
@ -3956,8 +3956,8 @@ void QQuickItem::inputMethodEvent(QInputMethodEvent *event)
/*!
This event handler can be reimplemented in a subclass to receive focus-in
events for an item. The event information is provided by the
\a event parameter.
events for an item. The event information is provided by the \c event
parameter.
*/
void QQuickItem::focusInEvent(QFocusEvent * /*event*/)
{
@ -3973,8 +3973,8 @@ void QQuickItem::focusInEvent(QFocusEvent * /*event*/)
/*!
This event handler can be reimplemented in a subclass to receive focus-out
events for an item. The event information is provided by the
\a event parameter.
events for an item. The event information is provided by the \c event
parameter.
*/
void QQuickItem::focusOutEvent(QFocusEvent * /*event*/)
{
@ -5179,8 +5179,8 @@ void QQuickItem::updateInputMethod(Qt::InputMethodQueries queries)
}
#endif // im
/*! \internal */
// XXX todo - do we want/need this anymore?
/*! \internal */
QRectF QQuickItem::boundingRect() const
{
Q_D(const QQuickItem);
@ -7616,7 +7616,7 @@ bool QQuickItem::contains(const QPointF &point) const
}
/*!
\qmlproperty QObject * QtQuick::Item::containsMask
\qmlproperty QObject* QtQuick::Item::containmentMask
\since 5.11
This property holds an optional mask for the Item to be used in the
QtQuick::Item::contains method.
@ -7624,25 +7624,25 @@ bool QQuickItem::contains(const QPointF &point) const
an input event has landed into the item or not.
By default the \l contains method will return true for any point
within the Item's bounding box. \c containsMask allows for a
within the Item's bounding box. \c containmentMask allows for a
more fine-grained control. For example, the developer could
define and use an AnotherItem element as containsMask,
define and use an AnotherItem element as containmentMask,
which has a specialized contains method, like:
\code
Item { id: item; containsMask: AnotherItem { id: anotherItem } }
Item { id: item; containmentMask: AnotherItem { id: anotherItem } }
\endcode
\e{item}'s contains method would then return true only if
\e{anotherItem}'s contains implementation returns true.
*/
QObject *QQuickItem::containsMask() const
QObject *QQuickItem::containmentMask() const
{
Q_D(const QQuickItem);
return d->mask.data();
}
void QQuickItem::setContainsMask(QObject *mask)
void QQuickItem::setContainmentMask(QObject *mask)
{
Q_D(QQuickItem);
// an Item can't mask itself (to prevent infinite loop in contains())
@ -7652,7 +7652,7 @@ void QQuickItem::setContainsMask(QObject *mask)
QQuickItem *quickMask = qobject_cast<QQuickItem *>(d->mask);
if (quickMask) {
QQuickItemPrivate *maskPrivate = QQuickItemPrivate::get(quickMask);
maskPrivate->registerAsContainsMask(this, false); // removed from use as my mask
maskPrivate->registerAsContainmentMask(this, false); // removed from use as my mask
}
if (mask) {
@ -7667,9 +7667,9 @@ void QQuickItem::setContainsMask(QObject *mask)
quickMask = qobject_cast<QQuickItem *>(mask);
if (quickMask) {
QQuickItemPrivate *maskPrivate = QQuickItemPrivate::get(quickMask);
maskPrivate->registerAsContainsMask(this, true); // telling maskPrivate that "this" is using it as mask
maskPrivate->registerAsContainmentMask(this, true); // telling maskPrivate that "this" is using it as mask
}
emit containsMaskChanged();
emit containmentMaskChanged();
}
/*!

View File

@ -60,7 +60,7 @@ class Q_QUICK_EXPORT QQuickTransform : public QObject
Q_OBJECT
public:
explicit QQuickTransform(QObject *parent = nullptr);
~QQuickTransform();
~QQuickTransform() override;
void appendToItem(QQuickItem *);
void prependToItem(QQuickItem *);
@ -144,7 +144,7 @@ class Q_QUICK_EXPORT QQuickItem : public QObject, public QQmlParserStatus
Q_PROPERTY(bool antialiasing READ antialiasing WRITE setAntialiasing NOTIFY antialiasingChanged RESET resetAntialiasing)
Q_PROPERTY(qreal implicitWidth READ implicitWidth WRITE setImplicitWidth NOTIFY implicitWidthChanged)
Q_PROPERTY(qreal implicitHeight READ implicitHeight WRITE setImplicitHeight NOTIFY implicitHeightChanged)
Q_PROPERTY(QObject *containsMask READ containsMask WRITE setContainsMask NOTIFY containsMaskChanged REVISION 11)
Q_PROPERTY(QObject *containmentMask READ containmentMask WRITE setContainmentMask NOTIFY containmentMaskChanged REVISION 11)
Q_PRIVATE_PROPERTY(QQuickItem::d_func(), QQuickItemLayer *layer READ layer DESIGNABLE false CONSTANT FINAL)
@ -198,7 +198,7 @@ public:
Q_ENUM(TransformOrigin)
explicit QQuickItem(QQuickItem *parent = nullptr);
virtual ~QQuickItem();
~QQuickItem() override;
QQuickWindow *window() const;
QQuickItem *parentItem() const;
@ -321,8 +321,8 @@ public:
QSharedPointer<QQuickItemGrabResult> grabToImage(const QSize &targetSize = QSize());
Q_INVOKABLE virtual bool contains(const QPointF &point) const;
QObject *containsMask() const;
void setContainsMask(QObject *mask);
QObject *containmentMask() const;
void setContainmentMask(QObject *mask);
QTransform itemTransform(QQuickItem *, bool *) const;
QPointF mapToItem(const QQuickItem *item, const QPointF &point) const;
@ -393,7 +393,7 @@ Q_SIGNALS:
void zChanged();
void implicitWidthChanged();
void implicitHeightChanged();
Q_REVISION(11) void containsMaskChanged();
Q_REVISION(11) void containmentMaskChanged();
protected:
bool event(QEvent *) override;

View File

@ -93,7 +93,7 @@ class QQuickContents : public QQuickItemChangeListener
{
public:
QQuickContents(QQuickItem *item);
~QQuickContents();
~QQuickContents() override;
QRectF rectF() const { return m_contents; }
@ -154,7 +154,7 @@ class QQuickItemLayer : public QObject, public QQuickItemChangeListener
public:
QQuickItemLayer(QQuickItem *item);
~QQuickItemLayer();
~QQuickItemLayer() override;
void classBegin();
void componentComplete();
@ -255,7 +255,7 @@ public:
static const QQuickItemPrivate* get(const QQuickItem *item) { return item->d_func(); }
QQuickItemPrivate();
~QQuickItemPrivate();
~QQuickItemPrivate() override;
void init(QQuickItem *parent);
QQmlListProperty<QObject> data();
@ -390,7 +390,7 @@ public:
// Contains mask
QPointer<QObject> mask;
// If the mask is an Item, inform it that it's being used as a mask (true) or is no longer being used (false)
virtual void registerAsContainsMask(QQuickItem * /* maskedItem */, bool /* set */) { }
virtual void registerAsContainmentMask(QQuickItem * /* maskedItem */, bool /* set */) { }
QQuickAnchors *anchors() const;
mutable QQuickAnchors *_anchors;
@ -807,7 +807,7 @@ class QQuickKeysAttached : public QObject, public QQuickItemKeyFilter
public:
QQuickKeysAttached(QObject *parent=nullptr);
~QQuickKeysAttached();
~QQuickKeysAttached() override;
bool enabled() const { Q_D(const QQuickKeysAttached); return d->enabled; }
void setEnabled(bool enabled) {

View File

@ -121,7 +121,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickOpenGLShaderEffect : public QObject
public:
QQuickOpenGLShaderEffect(QQuickShaderEffect *item, QObject *parent = nullptr);
~QQuickOpenGLShaderEffect();
~QQuickOpenGLShaderEffect() override;
QByteArray fragmentShader() const { return m_common.source.sourceCode[Key::FragmentShader]; }
void setFragmentShader(const QByteArray &code);

View File

@ -149,7 +149,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickOpenGLShaderEffectNode : public QObject, publ
Q_OBJECT
public:
QQuickOpenGLShaderEffectNode();
virtual ~QQuickOpenGLShaderEffectNode();
~QQuickOpenGLShaderEffectNode() override;
void preprocess() override;

View File

@ -675,6 +675,10 @@ QSGTextureProvider *QQuickPaintedItem::textureProvider() const
return d->textureProvider;
}
/*!
\reimp
*/
void QQuickPaintedItem::itemChange(ItemChange change, const ItemChangeData &value)
{
if (change == ItemDevicePixelRatioHasChanged)

View File

@ -58,7 +58,7 @@ class Q_QUICK_EXPORT QQuickPaintedItem : public QQuickItem
public:
explicit QQuickPaintedItem(QQuickItem *parent = nullptr);
virtual ~QQuickPaintedItem();
~QQuickPaintedItem() override;
enum RenderTarget {
Image,

View File

@ -123,7 +123,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickGradient : public QObject
public:
QQuickGradient(QObject *parent=nullptr);
~QQuickGradient();
~QQuickGradient() override;
QQmlListProperty<QQuickGradientStop> stops();

View File

@ -56,7 +56,7 @@ class Q_QUICK_EXPORT QQuickRenderControl : public QObject
public:
explicit QQuickRenderControl(QObject *parent = nullptr);
~QQuickRenderControl();
~QQuickRenderControl() override;
void prepareThread(QThread *targetThread);
void initialize(QOpenGLContext *gl);

View File

@ -114,7 +114,7 @@ public:
Q_ENUM(TextureMirroring)
QQuickShaderEffectSource(QQuickItem *parent = nullptr);
~QQuickShaderEffectSource();
~QQuickShaderEffectSource() override;
WrapMode wrapMode() const;
void setWrapMode(WrapMode mode);

View File

@ -89,7 +89,7 @@ class Q_QUICK_EXPORT QQuickSprite : public QQuickStochasticState
public:
explicit QQuickSprite(QObject *parent = nullptr);
~QQuickSprite();
~QQuickSprite() override;
QUrl source() const
{

View File

@ -192,7 +192,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickStochasticEngine : public QObject
public:
explicit QQuickStochasticEngine(QObject *parent = nullptr);
QQuickStochasticEngine(const QList<QQuickStochasticState*> &states, QObject *parent = nullptr);
~QQuickStochasticEngine();
~QQuickStochasticEngine() override;
QQmlListProperty<QQuickStochasticState> states()
{
@ -269,7 +269,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickSpriteEngine : public QQuickStochasticEngine
public:
explicit QQuickSpriteEngine(QObject *parent = nullptr);
QQuickSpriteEngine(const QList<QQuickSprite*> &sprites, QObject *parent = nullptr);
~QQuickSpriteEngine();
~QQuickSpriteEngine() override;
QQmlListProperty<QQuickSprite> sprites()
{
return QQmlListProperty<QQuickSprite>(this, m_sprites);

View File

@ -103,7 +103,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickText : public QQuickImplicitSizeItem
public:
QQuickText(QQuickItem *parent=nullptr);
~QQuickText();
~QQuickText() override;
enum HAlignment { AlignLeft = Qt::AlignLeft,
AlignRight = Qt::AlignRight,

View File

@ -63,7 +63,7 @@ public:
QQuickView(QQmlEngine* engine, QWindow *parent);
explicit QQuickView(const QUrl &source, QWindow *parent = nullptr);
QQuickView(const QUrl &source, QQuickRenderControl *renderControl);
virtual ~QQuickView();
~QQuickView() override;
QUrl source() const;

View File

@ -110,7 +110,7 @@ public:
explicit QQuickWindow(QWindow *parent = nullptr);
explicit QQuickWindow(QQuickRenderControl *renderControl);
virtual ~QQuickWindow();
~QQuickWindow() override;
QQuickItem *contentItem() const;

View File

@ -114,7 +114,7 @@ public:
static inline QQuickWindowPrivate *get(QQuickWindow *c) { return c->d_func(); }
QQuickWindowPrivate();
virtual ~QQuickWindowPrivate();
~QQuickWindowPrivate() override;
void init(QQuickWindow *, QQuickRenderControl *control = nullptr);

View File

@ -95,10 +95,9 @@ QQuickTextureFactory *QSGPkmHandler::read()
texData->hasAlpha = !QSGCompressedTexture::formatIsOpaque(texData->format);
// texture size
/* Actual data length depends on format; for now just use 0, i.e. rest-of-file
const int bpb = (texData->format == QOpenGLTexture::RGBA8_ETC2_EAC) ? 16 : 8;
QSize paddedSize(qFromBigEndian<quint16>(rawData + 8), qFromBigEndian<quint16>(rawData + 10));
texData->dataLength = (paddedSize.width() / 4) * (paddedSize.height() / 4) * 8;
*/
texData->dataLength = (paddedSize.width() / 4) * (paddedSize.height() / 4) * bpb;
QSize texSize(qFromBigEndian<quint16>(rawData + 12), qFromBigEndian<quint16>(rawData + 14));
texData->size = texSize;

View File

@ -67,6 +67,7 @@ public:
{
m_logName = !logName.isEmpty() ? logName : QByteArrayLiteral("(unknown)");
}
virtual ~QSGTextureFileHandler() {}
virtual QQuickTextureFactory *read() = 0;
QIODevice *device() const { return m_device; }

View File

@ -62,7 +62,7 @@ public:
};
Q_DECLARE_FLAGS(ClearMode, ClearModeBit)
virtual ~QSGAbstractRenderer();
~QSGAbstractRenderer() override;
void setRootNode(QSGRootNode *node);
QSGRootNode *rootNode() const;

View File

@ -190,7 +190,7 @@ void Q_QUICK_EXPORT qsgnode_set_description(QSGNode *node, const QString &descri
class Q_QUICK_EXPORT QSGBasicGeometryNode : public QSGNode
{
public:
~QSGBasicGeometryNode();
~QSGBasicGeometryNode() override;
void setGeometry(QSGGeometry *geometry);
const QSGGeometry *geometry() const { return m_geometry; }
@ -224,7 +224,7 @@ class Q_QUICK_EXPORT QSGGeometryNode : public QSGBasicGeometryNode
{
public:
QSGGeometryNode();
~QSGGeometryNode();
~QSGGeometryNode() override;
void setMaterial(QSGMaterial *material);
QSGMaterial *material() const { return m_material; }
@ -257,7 +257,7 @@ class Q_QUICK_EXPORT QSGClipNode : public QSGBasicGeometryNode
{
public:
QSGClipNode();
~QSGClipNode();
~QSGClipNode() override;
void setIsRectangular(bool rectHint);
bool isRectangular() const { return m_is_rectangular; }
@ -277,7 +277,7 @@ class Q_QUICK_EXPORT QSGTransformNode : public QSGNode
{
public:
QSGTransformNode();
~QSGTransformNode();
~QSGTransformNode() override;
void setMatrix(const QMatrix4x4 &matrix);
const QMatrix4x4 &matrix() const { return m_matrix; }
@ -295,7 +295,7 @@ class Q_QUICK_EXPORT QSGRootNode : public QSGNode
{
public:
QSGRootNode();
~QSGRootNode();
~QSGRootNode() override;
private:
void notifyNodeChange(QSGNode *node, DirtyState state);
@ -312,7 +312,7 @@ class Q_QUICK_EXPORT QSGOpacityNode : public QSGNode
{
public:
QSGOpacityNode();
~QSGOpacityNode();
~QSGOpacityNode() override;
void setOpacity(qreal opacity);
qreal opacity() const { return m_opacity; }

View File

@ -80,7 +80,7 @@ public:
};
QSGRenderNode();
~QSGRenderNode();
~QSGRenderNode() override;
virtual StateFlags changedStates() const;
virtual void render(const RenderState *state) = 0;

View File

@ -111,7 +111,7 @@ public:
};
explicit QSGContext(QObject *parent = nullptr);
virtual ~QSGContext();
~QSGContext() override;
virtual void renderContextInitialized(QSGRenderContext *renderContext);
virtual void renderContextInvalidated(QSGRenderContext *renderContext);
@ -159,7 +159,7 @@ public:
};
QSGRenderContext(QSGContext *context);
virtual ~QSGRenderContext();
~QSGRenderContext() override;
QSGContext *sceneGraphContext() const { return m_sg; }
virtual bool isValid() const { return true; }

View File

@ -68,7 +68,7 @@ public:
Q_DECLARE_FLAGS(CreateTextureOptions, CreateTextureOption)
explicit QSGEngine(QObject *parent = nullptr);
~QSGEngine();
~QSGEngine() override;
void initialize(QOpenGLContext *context);
void invalidate();

View File

@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE
class Q_QUICK_EXPORT QSGImageNode : public QSGGeometryNode
{
public:
virtual ~QSGImageNode() { }
~QSGImageNode() override { }
virtual void setRect(const QRectF &rect) = 0;
inline void setRect(qreal x, qreal y, qreal w, qreal h) { setRect(QRectF(x, y, w, h)); }

Some files were not shown because too many files have changed in this diff Show More