Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: I308b964d86ca01916f6af7d6e3f71557e3624eca
This commit is contained in:
commit
bf0603fd03
|
@ -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)
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -165,7 +165,7 @@ public:
|
|||
setFiltering(QSGTexture::Linear);
|
||||
}
|
||||
|
||||
~TextureNode()
|
||||
~TextureNode() override
|
||||
{
|
||||
delete m_texture;
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ public:
|
|||
appendChildNode(textureNode);
|
||||
}
|
||||
|
||||
~SpinnerNode() {
|
||||
~SpinnerNode() override {
|
||||
delete m_texture;
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -56,7 +56,7 @@ Rectangle {
|
|||
width: 120
|
||||
height: 120
|
||||
color: th.pressed ? "steelBlue" : "lightGray"
|
||||
containsMask: ctr
|
||||
containmentMask: ctr
|
||||
|
||||
TapHandler { id: th }
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -65,7 +65,7 @@ public:
|
|||
QQmlQtQuick2Module::defineModule();
|
||||
}
|
||||
|
||||
~QtQuick2Plugin()
|
||||
~QtQuick2Plugin() override
|
||||
{
|
||||
if (moduleDefined)
|
||||
QQmlQtQuick2Module::undefineModule();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -73,7 +73,7 @@ public:
|
|||
:QObject(parent)
|
||||
{}
|
||||
|
||||
~QuickTestUtil()
|
||||
~QuickTestUtil() override
|
||||
{}
|
||||
bool printAvailableFunctions() const
|
||||
{
|
||||
|
|
|
@ -294,7 +294,7 @@ class QV4ParticleDataDeletable : public QV8Engine::Deletable
|
|||
{
|
||||
public:
|
||||
QV4ParticleDataDeletable(QV4::ExecutionEngine *engine);
|
||||
~QV4ParticleDataDeletable();
|
||||
~QV4ParticleDataDeletable() override;
|
||||
|
||||
QV4::PersistentValue proto;
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -63,7 +63,7 @@ class Q_QML_EXPORT QJSEngine
|
|||
public:
|
||||
QJSEngine();
|
||||
explicit QJSEngine(QObject *parent);
|
||||
virtual ~QJSEngine();
|
||||
~QJSEngine() override;
|
||||
|
||||
QJSValue globalObject() const;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -92,7 +92,7 @@ public:
|
|||
QQmlEngine *engine() const { return context() ? context()->engine : nullptr; }
|
||||
|
||||
private:
|
||||
~QQmlBoundSignalExpression();
|
||||
~QQmlBoundSignalExpression() override;
|
||||
|
||||
void init(QQmlContextData *ctxt, QObject *scope);
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -68,7 +68,7 @@ public:
|
|||
|
||||
QQmlContext(QQmlEngine *parent, QObject *objParent = nullptr);
|
||||
QQmlContext(QQmlContext *parent, QObject *objParent = nullptr);
|
||||
virtual ~QQmlContext();
|
||||
~QQmlContext() override;
|
||||
|
||||
bool isValid() const;
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ class QQmlDelayedCallQueue : public QObject
|
|||
Q_OBJECT
|
||||
public:
|
||||
QQmlDelayedCallQueue();
|
||||
~QQmlDelayedCallQueue();
|
||||
~QQmlDelayedCallQueue() override;
|
||||
|
||||
void init(QV4::ExecutionEngine *);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 *);
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ class Q_QML_EXPORT QQmlExtensionPlugin
|
|||
Q_INTERFACES(QQmlTypesExtensionInterface)
|
||||
public:
|
||||
explicit QQmlExtensionPlugin(QObject *parent = nullptr);
|
||||
~QQmlExtensionPlugin();
|
||||
~QQmlExtensionPlugin() override;
|
||||
|
||||
QUrl baseUrl() const;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 &);
|
||||
|
|
|
@ -98,7 +98,7 @@ namespace QQmlPrivate
|
|||
class QQmlElement : public T
|
||||
{
|
||||
public:
|
||||
virtual ~QQmlElement() {
|
||||
~QQmlElement() override {
|
||||
QQmlPrivate::qdeclarativeelement_destructor(this);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 *);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 |
|
@ -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
|
||||
|
|
|
@ -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]
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -96,6 +96,8 @@ Q_SIGNALS:
|
|||
void longPressThresholdChanged();
|
||||
void gesturePolicyChanged();
|
||||
void tapped();
|
||||
void singleTapped();
|
||||
void doubleTapped();
|
||||
void longPressed();
|
||||
|
||||
protected:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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}
|
||||
*/
|
||||
|
||||
/*!
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -149,7 +149,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickOpenGLShaderEffectNode : public QObject, publ
|
|||
Q_OBJECT
|
||||
public:
|
||||
QQuickOpenGLShaderEffectNode();
|
||||
virtual ~QQuickOpenGLShaderEffectNode();
|
||||
~QQuickOpenGLShaderEffectNode() override;
|
||||
|
||||
void preprocess() override;
|
||||
|
||||
|
|
|
@ -675,6 +675,10 @@ QSGTextureProvider *QQuickPaintedItem::textureProvider() const
|
|||
return d->textureProvider;
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
\reimp
|
||||
*/
|
||||
void QQuickPaintedItem::itemChange(ItemChange change, const ItemChangeData &value)
|
||||
{
|
||||
if (change == ItemDevicePixelRatioHasChanged)
|
||||
|
|
|
@ -58,7 +58,7 @@ class Q_QUICK_EXPORT QQuickPaintedItem : public QQuickItem
|
|||
|
||||
public:
|
||||
explicit QQuickPaintedItem(QQuickItem *parent = nullptr);
|
||||
virtual ~QQuickPaintedItem();
|
||||
~QQuickPaintedItem() override;
|
||||
|
||||
enum RenderTarget {
|
||||
Image,
|
||||
|
|
|
@ -123,7 +123,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickGradient : public QObject
|
|||
|
||||
public:
|
||||
QQuickGradient(QObject *parent=nullptr);
|
||||
~QQuickGradient();
|
||||
~QQuickGradient() override;
|
||||
|
||||
QQmlListProperty<QQuickGradientStop> stops();
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -114,7 +114,7 @@ public:
|
|||
Q_ENUM(TextureMirroring)
|
||||
|
||||
QQuickShaderEffectSource(QQuickItem *parent = nullptr);
|
||||
~QQuickShaderEffectSource();
|
||||
~QQuickShaderEffectSource() override;
|
||||
|
||||
WrapMode wrapMode() const;
|
||||
void setWrapMode(WrapMode mode);
|
||||
|
|
|
@ -89,7 +89,7 @@ class Q_QUICK_EXPORT QQuickSprite : public QQuickStochasticState
|
|||
|
||||
public:
|
||||
explicit QQuickSprite(QObject *parent = nullptr);
|
||||
~QQuickSprite();
|
||||
~QQuickSprite() override;
|
||||
|
||||
QUrl source() const
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ public:
|
|||
explicit QQuickWindow(QWindow *parent = nullptr);
|
||||
explicit QQuickWindow(QQuickRenderControl *renderControl);
|
||||
|
||||
virtual ~QQuickWindow();
|
||||
~QQuickWindow() override;
|
||||
|
||||
QQuickItem *contentItem() const;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -67,6 +67,7 @@ public:
|
|||
{
|
||||
m_logName = !logName.isEmpty() ? logName : QByteArrayLiteral("(unknown)");
|
||||
}
|
||||
virtual ~QSGTextureFileHandler() {}
|
||||
|
||||
virtual QQuickTextureFactory *read() = 0;
|
||||
QIODevice *device() const { return m_device; }
|
||||
|
|
|
@ -62,7 +62,7 @@ public:
|
|||
};
|
||||
Q_DECLARE_FLAGS(ClearMode, ClearModeBit)
|
||||
|
||||
virtual ~QSGAbstractRenderer();
|
||||
~QSGAbstractRenderer() override;
|
||||
|
||||
void setRootNode(QSGRootNode *node);
|
||||
QSGRootNode *rootNode() const;
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -80,7 +80,7 @@ public:
|
|||
};
|
||||
|
||||
QSGRenderNode();
|
||||
~QSGRenderNode();
|
||||
~QSGRenderNode() override;
|
||||
|
||||
virtual StateFlags changedStates() const;
|
||||
virtual void render(const RenderState *state) = 0;
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -68,7 +68,7 @@ public:
|
|||
Q_DECLARE_FLAGS(CreateTextureOptions, CreateTextureOption)
|
||||
|
||||
explicit QSGEngine(QObject *parent = nullptr);
|
||||
~QSGEngine();
|
||||
~QSGEngine() override;
|
||||
|
||||
void initialize(QOpenGLContext *context);
|
||||
void invalidate();
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue