summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-28 06:53:43 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-29 10:14:35 +0200
commitec019ce68cf70d42d9857711923f28e79a07656e (patch)
treebe5c31502e0baa9a997529aacb5d15d7ba249beb /src
parentd3d9850a9200c9de898248884da32b510a1d4d4e (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.cpp5
-rw-r--r--src/activeqt/container/qaxobject.h5
-rw-r--r--src/activeqt/container/qaxobjectinterface.h2
-rw-r--r--src/activeqt/container/qaxobjectinterface.qdoc2
-rw-r--r--src/activeqt/container/qaxwidget.cpp11
-rw-r--r--src/activeqt/container/qaxwidget.h5
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;