diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-05-28 06:53:43 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-05-29 10:14:35 +0200 |
commit | ec019ce68cf70d42d9857711923f28e79a07656e (patch) | |
tree | be5c31502e0baa9a997529aacb5d15d7ba249beb /src | |
parent | d3d9850a9200c9de898248884da32b510a1d4d4e (diff) |
QAxObject/Widget: Enable overwriting clear() by dumpcpp
Rename virtual QAxObjectInterface::clear() to
resetControl() and change QAxObject/Widget::clear()
to a non-virtual function calling it.
resetControl() is more inline with Qt naming conventions
and making clear() non-virtual prevents clashes
when a control generated by dumpcpp has a clear()
method. It is not a general solution for the issue;
but helps this case.
Fixes: QTBUG-83735
Change-Id: I6aa01db6e95477e0407ba40fbc14f4991edf5f3e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/activeqt/container/qaxobject.cpp | 5 | ||||
-rw-r--r-- | src/activeqt/container/qaxobject.h | 5 | ||||
-rw-r--r-- | src/activeqt/container/qaxobjectinterface.h | 2 | ||||
-rw-r--r-- | src/activeqt/container/qaxobjectinterface.qdoc | 2 | ||||
-rw-r--r-- | src/activeqt/container/qaxwidget.cpp | 11 | ||||
-rw-r--r-- | src/activeqt/container/qaxwidget.h | 5 |
6 files changed, 23 insertions, 7 deletions
diff --git a/src/activeqt/container/qaxobject.cpp b/src/activeqt/container/qaxobject.cpp index d19fede..adce2a2 100644 --- a/src/activeqt/container/qaxobject.cpp +++ b/src/activeqt/container/qaxobject.cpp @@ -250,6 +250,11 @@ bool QAxObject::setControl(const QString &c) void QAxObject::clear() { + resetControl(); +} + +void QAxObject::resetControl() +{ Q_D(QAxObject); d->clear(); } diff --git a/src/activeqt/container/qaxobject.h b/src/activeqt/container/qaxobject.h index c8a465f..ceeb2c4 100644 --- a/src/activeqt/container/qaxobject.h +++ b/src/activeqt/container/qaxobject.h @@ -62,7 +62,7 @@ class QAxBaseObject : public QObject, public QAxObjectInterface { Q_OBJECT Q_PROPERTY(ulong classContext READ classContext WRITE setClassContext) - Q_PROPERTY(QString control READ control WRITE setControl RESET clear) + Q_PROPERTY(QString control READ control WRITE setControl RESET resetControl) Q_SIGNALS: void exception(int code, const QString &source, const QString &desc, const QString &help); @@ -89,7 +89,8 @@ public: QString control() const override; bool setControl(const QString &c) override; - void clear() override; + void resetControl() override; + void clear(); bool doVerb(const QString &verb); diff --git a/src/activeqt/container/qaxobjectinterface.h b/src/activeqt/container/qaxobjectinterface.h index d6e7239..566befa 100644 --- a/src/activeqt/container/qaxobjectinterface.h +++ b/src/activeqt/container/qaxobjectinterface.h @@ -66,7 +66,7 @@ public: virtual void setClassContext(ulong classContext) = 0; virtual QString control() const = 0; - virtual void clear() = 0; + virtual void resetControl() = 0; virtual bool setControl(const QString &c) = 0; }; diff --git a/src/activeqt/container/qaxobjectinterface.qdoc b/src/activeqt/container/qaxobjectinterface.qdoc index f9b2004..bca7ab4 100644 --- a/src/activeqt/container/qaxobjectinterface.qdoc +++ b/src/activeqt/container/qaxobjectinterface.qdoc @@ -104,7 +104,7 @@ */ /*! - \fn virtual void QAxObjectInterface::clear() + \fn virtual void QAxObjectInterface::resetControl() Disconnects and destroys the COM object. diff --git a/src/activeqt/container/qaxwidget.cpp b/src/activeqt/container/qaxwidget.cpp index 5c0a4ac..0850979 100644 --- a/src/activeqt/container/qaxwidget.cpp +++ b/src/activeqt/container/qaxwidget.cpp @@ -2207,11 +2207,20 @@ bool QAxWidget::setControl(const QString &c) } /*! + Shuts down the ActiveX control. + \sa resetControl() +*/ +void QAxWidget::clear() +{ + resetControl(); +} + +/*! \reimp Shuts down the ActiveX control. */ -void QAxWidget::clear() +void QAxWidget::resetControl() { Q_D(QAxWidget); d->clear(); diff --git a/src/activeqt/container/qaxwidget.h b/src/activeqt/container/qaxwidget.h index c58422d..ca5327a 100644 --- a/src/activeqt/container/qaxwidget.h +++ b/src/activeqt/container/qaxwidget.h @@ -66,7 +66,7 @@ class QAxBaseWidget : public QWidget, public QAxObjectInterface { Q_OBJECT Q_PROPERTY(ulong classContext READ classContext WRITE setClassContext) - Q_PROPERTY(QString control READ control WRITE setControl RESET clear) + Q_PROPERTY(QString control READ control WRITE setControl RESET resetControl) public: Q_SIGNALS: @@ -92,7 +92,8 @@ public: QString control() const override; bool setControl(const QString &) override; - void clear() override; + void resetControl() override; + void clear(); bool doVerb(const QString &verb); QSize sizeHint() const override; |