diff options
26 files changed, 223 insertions, 230 deletions
diff --git a/.qmake.conf b/.qmake.conf index 76c202a..097d8b9 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,3 +1,3 @@ load(qt_build_config) -MODULE_VERSION = 5.11.2 +MODULE_VERSION = 5.12.0 diff --git a/src/activeqt/container/qaxbase.cpp b/src/activeqt/container/qaxbase.cpp index 294d8dd..722a389 100644 --- a/src/activeqt/container/qaxbase.cpp +++ b/src/activeqt/container/qaxbase.cpp @@ -256,6 +256,7 @@ static const char *const type_conversion[][2] = class QAxEventSink : public IDispatch, public IPropertyNotifySink { + Q_DISABLE_COPY(QAxEventSink) public: QAxEventSink(QAxBase *com) : cpoint(0), ciid(IID_NULL), combase(com), ref(1) @@ -327,11 +328,11 @@ public: } // IUnknown - unsigned long __stdcall AddRef() + unsigned long __stdcall AddRef() override { return InterlockedIncrement(&ref); } - unsigned long __stdcall Release() + unsigned long __stdcall Release() override { LONG refCount = InterlockedDecrement(&ref); if (!refCount) @@ -339,7 +340,7 @@ public: return refCount; } - HRESULT __stdcall QueryInterface(REFIID riid, void **ppvObject) + HRESULT __stdcall QueryInterface(REFIID riid, void **ppvObject) override { *ppvObject = 0; if (riid == IID_IUnknown) @@ -356,18 +357,17 @@ public: } // IDispatch - HRESULT __stdcall GetTypeInfoCount(unsigned int *) { return E_NOTIMPL; } - HRESULT __stdcall GetTypeInfo(UINT, LCID, ITypeInfo **) { return E_NOTIMPL; } - HRESULT __stdcall GetIDsOfNames(const _GUID &, wchar_t **, unsigned int, unsigned long, long *) { return E_NOTIMPL; } - - HRESULT __stdcall Invoke(DISPID dispIdMember, - REFIID riid, - LCID, - WORD wFlags, - DISPPARAMS *pDispParams, - VARIANT*, - EXCEPINFO*, - UINT*) + HRESULT __stdcall GetTypeInfoCount(unsigned int *) override + { return E_NOTIMPL; } + HRESULT __stdcall GetTypeInfo(UINT, LCID, ITypeInfo **) override + { return E_NOTIMPL; } + HRESULT __stdcall GetIDsOfNames(const _GUID &, wchar_t **, unsigned int, + unsigned long, long *) override + { return E_NOTIMPL; } + + HRESULT __stdcall Invoke(DISPID dispIdMember, REFIID riid, LCID, + WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *, EXCEPINFO *, UINT *) override { // verify input if (riid != IID_NULL) @@ -415,7 +415,7 @@ public: const int argcount = int(pDispParams->cArgs); if (pcount > argcount) return DISP_E_PARAMNOTOPTIONAL; - else if (pcount < argcount) + if (pcount < argcount) return DISP_E_BADPARAMCOUNT; // setup parameters (no return values in signals) @@ -496,7 +496,7 @@ public: QByteArray findProperty(DISPID dispID); // IPropertyNotifySink - HRESULT __stdcall OnChanged(DISPID dispID) + HRESULT __stdcall OnChanged(DISPID dispID) override { // verify input if (dispID == DISPID_UNKNOWN || !combase) @@ -551,7 +551,7 @@ public: } return S_OK; } - HRESULT __stdcall OnRequestEdit(DISPID dispID) + HRESULT __stdcall OnRequestEdit(DISPID dispID) override { if (dispID == DISPID_UNKNOWN || !combase) return S_OK; @@ -588,6 +588,7 @@ public: class QAxBasePrivate { + Q_DISABLE_COPY(QAxBasePrivate) public: typedef QHash<QUuid, QAxEventSink*> UuidEventSinkHash; @@ -1554,9 +1555,8 @@ private: Bindable = 0x02000000 }; - static inline QList<QByteArray> paramList(const QByteArray &proto) + static inline QList<QByteArray> paramList(const QByteArray &prototype) { - QByteArray prototype(proto); QByteArray parameters = prototype.mid(prototype.indexOf('(') + 1); parameters.truncate(parameters.length() - 1); if (parameters.isEmpty() || parameters == "void") @@ -1566,20 +1566,18 @@ private: inline QByteArray replaceType(const QByteArray &type) { - int i = 0; - if (type.isEmpty()) { + if (type.isEmpty()) return QByteArray("void"); - } else { - while (type_conversion[i][0]) { - int len = int(strlen(type_conversion[i][0])); - int ti; - if ((ti = type.indexOf(type_conversion[i][0])) != -1) { - QByteArray rtype(type); - rtype.replace(ti, len, type_conversion[i][1]); - return rtype; - } - ++i; + int i = 0; + while (type_conversion[i][0]) { + int len = int(strlen(type_conversion[i][0])); + int ti; + if ((ti = type.indexOf(type_conversion[i][0])) != -1) { + QByteArray rtype(type); + rtype.replace(ti, len, type_conversion[i][1]); + return rtype; } + ++i; } return type; } @@ -1590,7 +1588,7 @@ private: QList<QByteArray> plist = paramList(prototype); for (int p = 0; p < plist.count(); ++p) { - QByteArray param(plist.at(p)); + const QByteArray ¶m = plist.at(p); if (param != replaceType(param)) { int type = 0; while (type_conversion[type][0]) { @@ -1616,11 +1614,9 @@ private: } struct Method { - Method() : flags(0) - {} QByteArray type; QByteArray parameters; - int flags; + int flags = 0; QByteArray realPrototype; }; QMap<QByteArray, Method> signal_list; @@ -3023,7 +3019,7 @@ QMetaObject *MetaObjectGenerator::metaObject(const QMetaObject *parentObject, co int_data_size += classinfo_list.count() * 2; int_data_size += (signal_list.count() + slot_list.count()) * 5 + paramsDataSize; int_data_size += property_list.count() * 3; - int_data_size += enum_list.count() * 4; + int_data_size += enum_list.count() * 5; const EnumListMapConstIterator ecend = enum_list.end(); for (EnumListMapConstIterator it = enum_list.begin(); it != ecend; ++it) int_data_size += it.value().count() * 2; @@ -3031,7 +3027,7 @@ QMetaObject *MetaObjectGenerator::metaObject(const QMetaObject *parentObject, co uint *int_data = new uint[int_data_size]; QMetaObjectPrivate *header = reinterpret_cast<QMetaObjectPrivate *>(int_data); - Q_STATIC_ASSERT_X(QMetaObjectPrivate::OutputRevision == 7, "QtDBus meta-object generator should generate the same version as moc"); + Q_STATIC_ASSERT_X(QMetaObjectPrivate::OutputRevision == 8, "QtDBus meta-object generator should generate the same version as moc"); header->revision = QMetaObjectPrivate::OutputRevision; header->className = 0; header->classInfoCount = classinfo_list.count(); @@ -3118,19 +3114,21 @@ QMetaObject *MetaObjectGenerator::metaObject(const QMetaObject *parentObject, co } Q_ASSERT(offset == header->enumeratorData); - int value_offset = offset + enum_list.count() * 4; + int value_offset = offset + enum_list.count() * 5; // each enum in form name\0 for (EnumListMapConstIterator it = enum_list.begin(); it != ecend; ++it) { QByteArray name(it.key()); int count = it.value().count(); - int_data[offset++] = uint(strings.enter(name)); + uint nameId = uint(strings.enter(name)); + int_data[offset++] = nameId; + int_data[offset++] = nameId; int_data[offset++] = 0x0; // 0x1 for flag? int_data[offset++] = uint(count); int_data[offset++] = uint(value_offset); value_offset += count * 2; } - Q_ASSERT(offset == header->enumeratorData + enum_list.count() * 4); + Q_ASSERT(offset == header->enumeratorData + enum_list.count() * 5); // each enum value in form key\0 for (EnumListMapConstIterator it = enum_list.begin(); it != ecend; ++it) { @@ -4269,11 +4267,12 @@ QAxObject *QAxBase::querySubObject(const char *name, QList<QVariant> &vars) class QtPropertyBag : public IPropertyBag { + Q_DISABLE_COPY(QtPropertyBag) public: QtPropertyBag() :ref(0) {} - virtual ~QtPropertyBag() {} + virtual ~QtPropertyBag() = default; - HRESULT __stdcall QueryInterface(REFIID iid, LPVOID *iface) + HRESULT __stdcall QueryInterface(REFIID iid, LPVOID *iface) override { *iface = 0; if (iid == IID_IUnknown) @@ -4286,11 +4285,11 @@ public: AddRef(); return S_OK; } - unsigned long __stdcall AddRef() + unsigned long __stdcall AddRef() override { return InterlockedIncrement(&ref); } - unsigned long __stdcall Release() + unsigned long __stdcall Release() override { LONG refCount = InterlockedDecrement(&ref); if (!refCount) @@ -4299,7 +4298,7 @@ public: return refCount; } - HRESULT __stdcall Read(LPCOLESTR name, VARIANT *var, IErrorLog *) + HRESULT __stdcall Read(LPCOLESTR name, VARIANT *var, IErrorLog *) override { if (!var) return E_POINTER; @@ -4309,7 +4308,7 @@ public: QVariantToVARIANT(qvar, *var); return S_OK; } - HRESULT __stdcall Write(LPCOLESTR name, VARIANT *var) + HRESULT __stdcall Write(LPCOLESTR name, VARIANT *var) override { if (!var) return E_POINTER; @@ -4359,13 +4358,12 @@ QAxBase::PropertyBag QAxBase::propertyBag() const pbag->Release(); persist->Release(); return result; - } else { - const QMetaObject *mo = metaObject(); - for (int p = mo->propertyOffset(); p < mo->propertyCount(); ++p) { - const QMetaProperty property = mo->property(p); - QVariant var = qObject()->property(property.name()); - result.insert(QLatin1String(property.name()), var); - } + } + const QMetaObject *mo = metaObject(); + for (int p = mo->propertyOffset(); p < mo->propertyCount(); ++p) { + const QMetaProperty property = mo->property(p); + QVariant var = qObject()->property(property.name()); + result.insert(QLatin1String(property.name()), var); } return result; } diff --git a/src/activeqt/container/qaxdump.cpp b/src/activeqt/container/qaxdump.cpp index ebe96d7..80133d7 100644 --- a/src/activeqt/container/qaxdump.cpp +++ b/src/activeqt/container/qaxdump.cpp @@ -100,8 +100,7 @@ static QByteArray namedPrototype(const QList<QByteArray> ¶meterTypes, const { QByteArray prototype("("); for (int p = 0; p < parameterTypes.count(); ++p) { - QByteArray type(parameterTypes.at(p)); - prototype += type; + prototype += parameterTypes.at(p); if (p < parameterNames.count()) prototype += ' ' + parameterNames.at(p); @@ -217,31 +216,27 @@ QString qax_generateDocumentation(QAxBase *that) QString::fromLatin1(prototype.constData()) + QLatin1String("));"); detail += QLatin1String("</pre>\n"); - if (1) { - detail += QLatin1String("<p>Or call the function directly:<pre>\n"); - - bool hasParams = slot.parameterTypes().count() != 0; - if (hasParams) - detail += QLatin1String("\tQVariantList params = ...\n"); - detail += QLatin1String("\t"); - QByteArray functionToCall = "dynamicCall"; - if (returntype == "IDispatch*" || returntype == "IUnknown*") { - functionToCall = "querySubObject"; - returntype = "QAxObject *"; - } - if (returntype != "void") - detail += QLatin1String(returntype.constData()) + QLatin1String(" result = "); - detail += QLatin1String("object->") + QLatin1String(functionToCall.constData()) + - QLatin1String("(\"" + name + prototype + '\"'); - if (hasParams) - detail += QLatin1String(", params"); - detail += QLatin1Char(')'); - if (returntype != "void" && returntype != "QAxObject *" && returntype != "QVariant") - detail += QLatin1Char('.') + QLatin1String(toType(returntype)); - detail += QLatin1String(";</pre>\n"); - } else { - detail += QLatin1String("<p>This function has parameters of unsupported types and cannot be called directly."); + detail += QLatin1String("<p>Or call the function directly:<pre>\n"); + + bool hasParams = slot.parameterTypes().count() != 0; + if (hasParams) + detail += QLatin1String("\tQVariantList params = ...\n"); + detail += QLatin1String("\t"); + QByteArray functionToCall = "dynamicCall"; + if (returntype == "IDispatch*" || returntype == "IUnknown*") { + functionToCall = "querySubObject"; + returntype = "QAxObject *"; } + if (returntype != "void") + detail += QLatin1String(returntype.constData()) + QLatin1String(" result = "); + detail += QLatin1String("object->") + QLatin1String(functionToCall.constData()) + + QLatin1String("(\"" + name + prototype + '\"'); + if (hasParams) + detail += QLatin1String(", params"); + detail += QLatin1Char(')'); + if (returntype != "void" && returntype != "QAxObject *" && returntype != "QVariant") + detail += QLatin1Char('.') + QLatin1String(toType(returntype)); + detail += QLatin1String(";</pre>\n"); methodDetails << detail; defArgCount = 0; diff --git a/src/activeqt/container/qaxobject.h b/src/activeqt/container/qaxobject.h index bebc60a..587b532 100644 --- a/src/activeqt/container/qaxobject.h +++ b/src/activeqt/container/qaxobject.h @@ -66,7 +66,7 @@ public: explicit QAxObject(QObject *parent = nullptr); explicit QAxObject(const QString &c, QObject *parent = nullptr); explicit QAxObject(IUnknown *iface, QObject *parent = nullptr); - ~QAxObject(); + ~QAxObject() override; bool doVerb(const QString &verb); diff --git a/src/activeqt/container/qaxscript.cpp b/src/activeqt/container/qaxscript.cpp index e2768d0..0f0aa08 100644 --- a/src/activeqt/container/qaxscript.cpp +++ b/src/activeqt/container/qaxscript.cpp @@ -97,26 +97,28 @@ public: class QAxScriptSite : public IActiveScriptSite, public IActiveScriptSiteWindow { + Q_DISABLE_COPY(QAxScriptSite) public: QAxScriptSite(QAxScript *script); - virtual ~QAxScriptSite() {} + virtual ~QAxScriptSite() = default; - ULONG WINAPI AddRef(); - ULONG WINAPI Release(); - HRESULT WINAPI QueryInterface(REFIID iid, void **ppvObject); + ULONG WINAPI AddRef() override; + ULONG WINAPI Release() override; + HRESULT WINAPI QueryInterface(REFIID iid, void **ppvObject) override; - HRESULT WINAPI GetLCID(LCID *plcid); - HRESULT WINAPI GetItemInfo(LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppiunkItem, ITypeInfo **ppti); - HRESULT WINAPI GetDocVersionString(BSTR *pbstrVersion); + HRESULT WINAPI GetLCID(LCID *plcid) override; + HRESULT WINAPI GetItemInfo(LPCOLESTR pstrName, DWORD dwReturnMask, + IUnknown **ppiunkItem, ITypeInfo **ppti) override; + HRESULT WINAPI GetDocVersionString(BSTR *pbstrVersion) override; - HRESULT WINAPI OnScriptTerminate(const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo); - HRESULT WINAPI OnStateChange(SCRIPTSTATE ssScriptState); - HRESULT WINAPI OnScriptError(IActiveScriptError *pscripterror); - HRESULT WINAPI OnEnterScript(); - HRESULT WINAPI OnLeaveScript(); + HRESULT WINAPI OnScriptTerminate(const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo) override; + HRESULT WINAPI OnStateChange(SCRIPTSTATE ssScriptState) override; + HRESULT WINAPI OnScriptError(IActiveScriptError *pscripterror) override; + HRESULT WINAPI OnEnterScript() override; + HRESULT WINAPI OnLeaveScript() override; - HRESULT WINAPI GetWindow(HWND *phwnd); - HRESULT WINAPI EnableModeless(BOOL fEnable); + HRESULT WINAPI GetWindow(HWND *phwnd) override; + HRESULT WINAPI EnableModeless(BOOL fEnable) override; protected: QWidget *window() const; @@ -1289,13 +1291,9 @@ QAxScript *QAxScriptManager::scriptForFunction(const QString &function) const */ void QAxScriptManager::updateScript(QAxScript *script) { - QHash<QString, QAxBase*>::ConstIterator objectIt; - for (objectIt = d->objectDict.constBegin(); objectIt != d->objectDict.constEnd(); ++objectIt) { - QString name = objectIt.key(); - - QAxScriptEngine *engine = script->scriptEngine(); - if (engine) - engine->addItem(name); + if (QAxScriptEngine *engine = script->scriptEngine()) { + for (auto it = d->objectDict.constBegin(), end = d->objectDict.constEnd(); it != end; ++it) + engine->addItem(it.key()); } } diff --git a/src/activeqt/container/qaxscript.h b/src/activeqt/container/qaxscript.h index f09b2fc..17449d4 100644 --- a/src/activeqt/container/qaxscript.h +++ b/src/activeqt/container/qaxscript.h @@ -77,7 +77,7 @@ public: }; QAxScriptEngine(const QString &language, QAxScript *script); - ~QAxScriptEngine(); + ~QAxScriptEngine() override; bool isValid() const; bool hasIntrospection() const; @@ -112,7 +112,7 @@ public: }; QAxScript(const QString &name, QAxScriptManager *manager); - ~QAxScript(); + ~QAxScript() override; bool load(const QString &code, const QString &language = QString()); @@ -160,7 +160,7 @@ class QAxScriptManager : public QObject public: explicit QAxScriptManager(QObject *parent = nullptr); - ~QAxScriptManager(); + ~QAxScriptManager() override; void addObject(QAxBase *object); void addObject(QObject *object); diff --git a/src/activeqt/container/qaxselect.cpp b/src/activeqt/container/qaxselect.cpp index 026c86f..1b860e7 100644 --- a/src/activeqt/container/qaxselect.cpp +++ b/src/activeqt/container/qaxselect.cpp @@ -52,13 +52,13 @@ #include "ui_qaxselect.h" -#include <QtCore/QFileInfo> -#include <QtCore/QSortFilterProxyModel> -#include <QtCore/QItemSelectionModel> -#include <QtCore/QSysInfo> -#include <QtCore/QTextStream> -#include <QtWidgets/QDesktopWidget> -#include <QtWidgets/QPushButton> +#include <QtCore/qfileinfo.h> +#include <QtCore/qsortfilterproxymodel.h> +#include <QtCore/qitemselectionmodel.h> +#include <QtCore/qsysinfo.h> +#include <QtCore/qtextstream.h> +#include <QtWidgets/qdesktopwidget.h> +#include <QtWidgets/qpushbutton.h> #include <qt_windows.h> @@ -71,17 +71,16 @@ enum ControlType { InProcessControl, OutOfProcessControl }; struct Control { - inline Control() : type(InProcessControl), wordSize(0) {} int compare(const Control &rhs) const; QString toolTip() const; - ControlType type; + ControlType type = InProcessControl; QString clsid; QString name; QString dll; QString version; QString rootKey; - unsigned wordSize; + unsigned wordSize = 0; }; inline int Control::compare(const Control &rhs) const @@ -379,9 +378,7 @@ QAxSelect::QAxSelect(QWidget *parent, Qt::WindowFlags flags) /*! Destroys the QAxSelect object. */ -QAxSelect::~QAxSelect() -{ -} +QAxSelect::~QAxSelect() = default; /*! \fn QString QAxSelect::clsid() const diff --git a/src/activeqt/container/qaxselect.h b/src/activeqt/container/qaxselect.h index 8921a17..d17de95 100644 --- a/src/activeqt/container/qaxselect.h +++ b/src/activeqt/container/qaxselect.h @@ -50,7 +50,7 @@ #ifndef QAXSELECT_H #define QAXSELECT_H -#include <QtWidgets/QDialog> +#include <QtWidgets/qdialog.h> QT_BEGIN_NAMESPACE @@ -62,7 +62,7 @@ class QAxSelect : public QDialog Q_OBJECT public: explicit QAxSelect(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); - ~QAxSelect(); + ~QAxSelect() override; QString clsid() const; private Q_SLOTS: diff --git a/src/activeqt/container/qaxwidget.cpp b/src/activeqt/container/qaxwidget.cpp index 5039123..b25e4b2 100644 --- a/src/activeqt/container/qaxwidget.cpp +++ b/src/activeqt/container/qaxwidget.cpp @@ -65,7 +65,7 @@ #include <qmetaobject.h> #include <qpainter.h> #include <qpointer.h> -#include <qregexp.h> +#include <qregularexpression.h> #include <quuid.h> #include <qwhatsthis.h> #include <qabstractnativeeventfilter.h> @@ -115,11 +115,12 @@ QT_BEGIN_NAMESPACE */ class QAxHostWidget : public QWidget { + Q_DISABLE_COPY(QAxHostWidget) friend class QAxClientSite; public: Q_OBJECT_CHECK QAxHostWidget(QWidget *parent, QAxClientSite *ax); - ~QAxHostWidget(); + ~QAxHostWidget() override; QSize sizeHint() const override; QSize minimumSizeHint() const override; @@ -173,6 +174,7 @@ class QAxClientSite : public IDispatch, public IOleDocumentSite, public IAdviseSink { + Q_DISABLE_COPY(QAxClientSite) friend class QAxHostWidget; public: QAxClientSite(QAxWidget *c); @@ -209,22 +211,22 @@ public: } // IUnknown - unsigned long WINAPI AddRef(); - unsigned long WINAPI Release(); + unsigned long WINAPI AddRef() override; + unsigned long WINAPI Release() override; STDMETHOD(QueryInterface)(REFIID iid, void **iface); // IDispatch - HRESULT __stdcall GetTypeInfoCount(unsigned int *) { return E_NOTIMPL; } - HRESULT __stdcall GetTypeInfo(UINT, LCID, ITypeInfo **) { return E_NOTIMPL; } - HRESULT __stdcall GetIDsOfNames(const _GUID &, wchar_t **, unsigned int, unsigned long, long *) { return E_NOTIMPL; } - HRESULT __stdcall Invoke(DISPID dispIdMember, - REFIID riid, - LCID lcid, - WORD wFlags, - DISPPARAMS *pDispParams, - VARIANT *pVarResult, - EXCEPINFO *pExcepInfo, - UINT *puArgErr); + HRESULT __stdcall GetTypeInfoCount(unsigned int *) override + { return E_NOTIMPL; } + HRESULT __stdcall GetTypeInfo(UINT, LCID, ITypeInfo **) override + { return E_NOTIMPL; } + HRESULT __stdcall GetIDsOfNames(const _GUID &, wchar_t **, unsigned int, + unsigned long, long *) override + { return E_NOTIMPL; } + HRESULT __stdcall Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, + WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, + UINT *puArgErr) override; void emitAmbientPropertyChange(DISPID dispid); // IOleClientSite @@ -1259,7 +1261,7 @@ QMenu *QAxClientSite::generatePopup(HMENU subMenu, QWidget *parent) popupMenu = item.hSubMenu ? generatePopup(item.hSubMenu, popup) : 0; int res = menuItemEntry(subMenu, i, item, text, icon); - int lastSep = text.lastIndexOf(QRegExp(QLatin1String("[\\s]"))); + int lastSep = text.lastIndexOf(QRegularExpression(QLatin1String("[\\s]"))); if (lastSep != -1) { QString keyString = text.right(text.length() - lastSep); accel = keyString; diff --git a/src/activeqt/container/qaxwidget.h b/src/activeqt/container/qaxwidget.h index 3a9f19e..49caa22 100644 --- a/src/activeqt/container/qaxwidget.h +++ b/src/activeqt/container/qaxwidget.h @@ -52,7 +52,7 @@ #define QAXWIDGET_H #include <ActiveQt/qaxbase.h> -#include <QtWidgets/QWidget> +#include <QtWidgets/qwidget.h> QT_BEGIN_NAMESPACE @@ -72,7 +72,7 @@ public: explicit QAxWidget(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); explicit QAxWidget(const QString &c, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); explicit QAxWidget(IUnknown *iface, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); - ~QAxWidget(); + ~QAxWidget() override; void clear() override; bool doVerb(const QString &verb); diff --git a/src/activeqt/control/qaxaggregated.cpp b/src/activeqt/control/qaxaggregated.cpp index 61e858b..0e95308 100644 --- a/src/activeqt/control/qaxaggregated.cpp +++ b/src/activeqt/control/qaxaggregated.cpp @@ -51,7 +51,7 @@ #include "qaxaggregated.h" #ifdef QT_WIDGETS_LIB -# include <QtWidgets/QWidget> +# include <QtWidgets/qwidget.h> #endif QT_BEGIN_NAMESPACE diff --git a/src/activeqt/control/qaxaggregated.h b/src/activeqt/control/qaxaggregated.h index 21add50..61d1f7f 100644 --- a/src/activeqt/control/qaxaggregated.h +++ b/src/activeqt/control/qaxaggregated.h @@ -65,12 +65,13 @@ class QAxAggregated { friend class QAxServerBase; friend class QAxClientSite; + Q_DISABLE_COPY(QAxAggregated) public: virtual long queryInterface(const QUuid &iid, void **iface) = 0; protected: - virtual ~QAxAggregated() - {} + QAxAggregated() = default; + virtual ~QAxAggregated() = default; inline IUnknown *controllingUnknown() const { return controlling_unknown; } @@ -78,8 +79,8 @@ protected: inline QObject *object() const { return the_object; } private: - IUnknown *controlling_unknown; - QObject *the_object; + IUnknown *controlling_unknown = nullptr; + QObject *the_object = nullptr; }; #define QAXAGG_IUNKNOWN \ diff --git a/src/activeqt/control/qaxbindable.cpp b/src/activeqt/control/qaxbindable.cpp index 6857c40..2bb1ffe 100644 --- a/src/activeqt/control/qaxbindable.cpp +++ b/src/activeqt/control/qaxbindable.cpp @@ -102,9 +102,7 @@ QAxBindable::QAxBindable() /*! Destroys the QAxBindable object. */ -QAxBindable::~QAxBindable() -{ -} +QAxBindable::~QAxBindable() = default; /*! Call this function to request permission to change the property diff --git a/src/activeqt/control/qaxbindable.h b/src/activeqt/control/qaxbindable.h index d2dcc36..c5d2630 100644 --- a/src/activeqt/control/qaxbindable.h +++ b/src/activeqt/control/qaxbindable.h @@ -51,7 +51,7 @@ #ifndef QAXBINDABLE_H #define QAXBINDABLE_H -#include <QtWidgets/QWidget> +#include <QtWidgets/qwidget.h> struct IUnknown; @@ -63,6 +63,7 @@ struct IAxServerBase; class QAxBindable { + Q_DISABLE_COPY(QAxBindable) friend class QAxServerBase; public: QAxBindable(); diff --git a/src/activeqt/control/qaxfactory.cpp b/src/activeqt/control/qaxfactory.cpp index 1f101fe..2a0ed4f 100644 --- a/src/activeqt/control/qaxfactory.cpp +++ b/src/activeqt/control/qaxfactory.cpp @@ -113,9 +113,7 @@ QAxFactory::QAxFactory(const QUuid &libid, const QUuid &appid) /*! Destroys the QAxFactory object. */ -QAxFactory::~QAxFactory() -{ -} +QAxFactory::~QAxFactory() = default; /*! \fn QUuid QAxFactory::typeLibID() const @@ -290,9 +288,7 @@ bool QAxFactory::validateLicenseKey(const QString &key, const QString &licenseKe int lastDot = licFile.lastIndexOf(QLatin1Char('.')); licFile.truncate(lastDot); licFile += QLatin1String(".lic"); - if (QFile::exists(licFile)) - return true; - return false; + return QFile::exists(licFile); } return licenseKey == classKey; } @@ -371,8 +367,6 @@ bool QAxFactory::isServer() return qAxIsServer; } -extern wchar_t qAxModuleFilename[MAX_PATH]; - /*! Returns the directory that contains the server binary. @@ -462,7 +456,7 @@ class ActiveObject : public QObject { public: ActiveObject(QObject *parent, QAxFactory *factory); - ~ActiveObject(); + ~ActiveObject() override; IDispatch *wrapper; DWORD cookie; diff --git a/src/activeqt/control/qaxfactory.h b/src/activeqt/control/qaxfactory.h index 0ba62b0..05df3c9 100644 --- a/src/activeqt/control/qaxfactory.h +++ b/src/activeqt/control/qaxfactory.h @@ -74,9 +74,10 @@ class QSettings; class QAxFactory : public QObject { + Q_DISABLE_COPY(QAxFactory) public: QAxFactory(const QUuid &libId, const QUuid &appId); - virtual ~QAxFactory(); + ~QAxFactory() override; virtual QStringList featureList() const = 0; @@ -219,9 +220,9 @@ public: { const QStringList categories = getImplementedCategories(); - for (QStringList::const_iterator it = categories.begin(), end = categories.end(); it != end; ++it) { + for (const auto &cat : categories) { settings->setValue(QLatin1String("/CLSID/") + classID(key).toString() - + QLatin1String("/Implemented Categories/") + *it + QLatin1String("/."), + + QLatin1String("/Implemented Categories/") + cat + QLatin1String("/."), QString()); } } @@ -230,9 +231,9 @@ public: { const QStringList categories = getImplementedCategories(); - for (QStringList::const_iterator it = categories.begin(), end = categories.end(); it != end; ++it) { + for (const auto &cat : categories) { settings->remove(QLatin1String("/CLSID/") + classID(key).toString() - + QLatin1String("/Implemented Categories/") + *it + QLatin1String("/.")); + + QLatin1String("/Implemented Categories/") + cat + QLatin1String("/.")); } } diff --git a/src/activeqt/control/qaxserverbase.cpp b/src/activeqt/control/qaxserverbase.cpp index 22eb6b4..d11fbeb 100644 --- a/src/activeqt/control/qaxserverbase.cpp +++ b/src/activeqt/control/qaxserverbase.cpp @@ -66,7 +66,7 @@ #include <qmenu.h> #include <qmetaobject.h> #include <qpixmap.h> -#include <qregexp.h> +#include <qregularexpression.h> #include <qstatusbar.h> #include <qwhatsthis.h> #include <ocidl.h> @@ -175,7 +175,7 @@ public: void init(); - ~QAxServerBase(); + ~QAxServerBase() override; // Window creation HWND create(HWND hWndParent, RECT& rcPos); @@ -190,14 +190,14 @@ public: void revokeActiveObject(); // IUnknown - unsigned long WINAPI AddRef() + unsigned long WINAPI AddRef() override { if (m_outerUnknown) return m_outerUnknown->AddRef(); return InterlockedIncrement(&ref); } - unsigned long WINAPI Release() + unsigned long WINAPI Release() override { if (m_outerUnknown) return m_outerUnknown->Release(); @@ -208,28 +208,28 @@ public: return refCount; } - HRESULT WINAPI QueryInterface(REFIID iid, void **iface); + HRESULT WINAPI QueryInterface(REFIID iid, void **iface) override; HRESULT InternalQueryInterface(REFIID iid, void **iface); // IAxServerBase - IUnknown *clientSite() const + IUnknown *clientSite() const override { return m_spClientSite; } - void emitPropertyChanged(const char*); - bool emitRequestPropertyChange(const char*); - QObject *qObject() const + void emitPropertyChanged(const char *) override; + bool emitRequestPropertyChange(const char *) override; + QObject *qObject() const override { return theObject; } void ensureMetaData(); bool isPropertyExposed(int index); - void reportError(int code, const QString &src, const QString &desc, const QString &context) + void reportError(int code, const QString &src, const QString &desc, + const QString &context) override { - if (exception) - delete exception; + delete exception; exception = new QAxExceptInfo(code, src, desc, context); } @@ -355,9 +355,9 @@ public: STDMETHOD(EnumDAdvise)(IEnumSTATDATA **ppenumAdvise); // QObject - int qt_metacall(QMetaObject::Call, int index, void **argv); + int qt_metacall(QMetaObject::Call, int index, void **argv) override; - bool eventFilter(QObject *o, QEvent *e); + bool eventFilter(QObject *o, QEvent *e) override; RECT rcPosRect() const { @@ -448,6 +448,7 @@ static inline QAxServerBase *axServerBaseFromWindow(HWND hWnd) class QAxServerAggregate : public IUnknown { + Q_DISABLE_COPY(QAxServerAggregate) public: QAxServerAggregate(const QString &className, IUnknown *outerUnknown) : ref(0) @@ -467,11 +468,11 @@ public: } // IUnknown - unsigned long WINAPI AddRef() + unsigned long WINAPI AddRef() override { return InterlockedIncrement(&ref); } - unsigned long WINAPI Release() + unsigned long WINAPI Release() override { LONG refCount = InterlockedDecrement(&ref); if (!refCount) @@ -479,7 +480,7 @@ public: return refCount; } - HRESULT WINAPI QueryInterface(REFIID iid, void **iface) + HRESULT WINAPI QueryInterface(REFIID iid, void **iface) override { *iface = 0; @@ -518,6 +519,10 @@ bool QAxFactory::createObjectWrapper(QObject *object, IDispatch **wrapper) class QAxSignalVec : public IEnumConnectionPoints { public: + QAxSignalVec &operator=(const QAxSignalVec &) = delete; + QAxSignalVec &operator=(QAxSignalVec &&) = delete; + QAxSignalVec(QAxSignalVec &&) = delete; + QAxSignalVec(const QAxServerBase::ConnectionPoints &points) : cpoints(points.values()) , current(0) @@ -638,6 +643,10 @@ class QAxConnection : public IConnectionPoint, public IEnumConnections { public: + QAxConnection &operator=(const QAxConnection &) = delete; + QAxConnection(QAxConnection &&) = delete; + QAxConnection &operator=(QAxConnection &&) = delete; + typedef QList<CONNECTDATA> Connections; typedef QList<CONNECTDATA>::Iterator Iterator; @@ -662,11 +671,11 @@ public: DeleteCriticalSection(&refCountSection); } - unsigned long __stdcall AddRef() + unsigned long __stdcall AddRef() override { return InterlockedIncrement(&ref); } - unsigned long __stdcall Release() + unsigned long __stdcall Release() override { LONG refCount = InterlockedDecrement(&ref); if (!refCount) @@ -2370,9 +2379,9 @@ HRESULT WINAPI QAxServerBase::Invoke(DISPID dispidMember, REFIID riid, else res = S_OK; break; - } else if (wFlags == DISPATCH_PROPERTYGET) { - break; } + if (wFlags == DISPATCH_PROPERTYGET) + break; } Q_FALLTHROUGH(); // Fall through if wFlags == DISPATCH_PROPERTYGET|DISPATCH_METHOD AND not a property. case DISPATCH_METHOD: @@ -2395,11 +2404,13 @@ HRESULT WINAPI QAxServerBase::Invoke(DISPID dispidMember, REFIID riid, } // resolve overloads if (index == -1) { - QRegExp regexp(QLatin1String("_([0-9])\\(")); - if (regexp.lastIndexIn(QString::fromLatin1(name.constData())) != -1) { - name.chop(regexp.cap(0).length()); + QRegularExpression regexp(QLatin1String("_([0-9])\\(")); + QRegularExpressionMatch rmatch; + QString::fromLatin1(name.constData()).lastIndexOf(regexp, -1, &rmatch); + if (rmatch.hasMatch()) { + name.chop(rmatch.capturedLength(0)); name += '('; - int overload = regexp.cap(1).toInt() + 1; + int overload = rmatch.capturedRef(1).toInt() + 1; for (int s = 0; s < qt.object->metaObject()->methodCount(); ++s) { QMetaMethod slot = qt.object->metaObject()->method(s); @@ -3066,7 +3077,7 @@ HRESULT WINAPI QAxServerBase::Load(LPCOLESTR fileName, DWORD /* mode */) QString mimeType = QLatin1String(mo->classInfo(mimeIndex).value()); QStringList mimeTypes = mimeType.split(QLatin1Char(';')); for (int m = 0; m < mimeTypes.count(); ++m) { - QString mime = mimeTypes.at(m); + const QString &mime = mimeTypes.at(m); if (mime.count(QLatin1Char(':')) != 2) { qWarning() << class_name << ": Invalid syntax in Q_CLASSINFO for MIME"; continue; @@ -3111,7 +3122,7 @@ HRESULT WINAPI QAxServerBase::Save(LPCOLESTR fileName, BOOL fRemember) QString mimeType = QLatin1String(mo->classInfo(mimeIndex).value()); QStringList mimeTypes = mimeType.split(QLatin1Char(';')); for (int m = 0; m < mimeTypes.count(); ++m) { - QString mime = mimeTypes.at(m); + const QString &mime = mimeTypes.at(m); if (mime.count(QLatin1Char(':')) != 2) { qWarning() << class_name << ": Invalid syntax in Q_CLASSINFO for MIME"; continue; @@ -3564,7 +3575,7 @@ HRESULT WINAPI QAxServerBase::TranslateAcceleratorW(MSG *pMsg) } } else { QWidget *nextFocus = curFocus; - while (1) { + while (true) { nextFocus = nextFocus->nextInFocusChain(); if (nextFocus->isWindow()) break; diff --git a/src/activeqt/control/qclassfactory_p.h b/src/activeqt/control/qclassfactory_p.h index 4a5944a..86fea60 100644 --- a/src/activeqt/control/qclassfactory_p.h +++ b/src/activeqt/control/qclassfactory_p.h @@ -71,28 +71,30 @@ QT_BEGIN_NAMESPACE // One instance of this class for each ActiveX the server can provide. class QClassFactory : public IClassFactory2 { + Q_DISABLE_COPY(QClassFactory) public: QClassFactory(CLSID clsid); virtual ~QClassFactory(); // IUnknown - unsigned long WINAPI AddRef(); - unsigned long WINAPI Release(); - HRESULT WINAPI QueryInterface(REFIID iid, LPVOID *iface); + unsigned long WINAPI AddRef() override; + unsigned long WINAPI Release() override; + HRESULT WINAPI QueryInterface(REFIID iid, LPVOID *iface) override; HRESULT WINAPI CreateInstanceHelper(IUnknown *pUnkOuter, REFIID iid, void **ppObject); // IClassFactory - HRESULT WINAPI CreateInstance(IUnknown *pUnkOuter, REFIID iid, void **ppObject); + HRESULT WINAPI CreateInstance(IUnknown *pUnkOuter, REFIID iid, void **ppObject) override; - HRESULT WINAPI LockServer(BOOL fLock); + HRESULT WINAPI LockServer(BOOL fLock) override; // IClassFactory2 - HRESULT WINAPI RequestLicKey(DWORD, BSTR *pKey); + HRESULT WINAPI RequestLicKey(DWORD, BSTR *pKey) override; - HRESULT WINAPI GetLicInfo(LICINFO *pLicInfo); + HRESULT WINAPI GetLicInfo(LICINFO *pLicInfo) override; - HRESULT WINAPI CreateInstanceLic(IUnknown *pUnkOuter, IUnknown * /* pUnkReserved */, REFIID iid, BSTR bKey, PVOID *ppObject); + HRESULT WINAPI CreateInstanceLic(IUnknown *pUnkOuter, IUnknown *pUnkReserved, + REFIID iid, BSTR bKey, PVOID *ppObject) override; static void cleanupCreatedApplication(QCoreApplication &app); diff --git a/src/activeqt/doc/src/activeqt-index.qdoc b/src/activeqt/doc/src/activeqt-index.qdoc index 7200cff..ff4f404 100644 --- a/src/activeqt/doc/src/activeqt-index.qdoc +++ b/src/activeqt/doc/src/activeqt-index.qdoc @@ -76,7 +76,7 @@ To build the static libraries, change into the \c activeqt directory (usually \c QTDIR/src/activeqt), and run \c qmake and your make tool in both the \c container and the \c control subdirectory. - The libraries \c qaxcontainer.lib and \c qaxserver.lib will be linked + The \c qaxcontainer and \c qaxserver libraries will be linked into \c QTDIR/lib. If you are using a shared configuration of Qt enter the \c plugin diff --git a/src/activeqt/shared/qaxutils.cpp b/src/activeqt/shared/qaxutils.cpp index c41b321..c1f1e74 100644 --- a/src/activeqt/shared/qaxutils.cpp +++ b/src/activeqt/shared/qaxutils.cpp @@ -50,19 +50,19 @@ #include "qaxutils_p.h" -#include <QtWidgets/QWidget> -#include <QtGui/QPixmap> -#include <QtGui/QRegion> -#include <QtGui/QWindow> -#include <QtGui/QGuiApplication> +#include <QtWidgets/qwidget.h> +#include <QtGui/qpixmap.h> +#include <QtGui/qregion.h> +#include <QtGui/qwindow.h> +#include <QtGui/qguiapplication.h> #include <private/qhighdpiscaling_p.h> #include <qpa/qplatformnativeinterface.h> #include <qpa/qplatformpixmap.h> #include <QtGui/private/qpixmap_raster_p.h> -#include <QtCore/QScopedArrayPointer> -#include <QtCore/QRect> +#include <QtCore/qscopedpointer.h> +#include <QtCore/qrect.h> -#include <QtCore/QDebug> +#include <QtCore/qdebug.h> QT_BEGIN_NAMESPACE @@ -97,7 +97,7 @@ static void addRectToHrgn(HRGN &winRegion, const QRect &r) } } -HRGN qaxHrgnFromQRegion(QRegion region, const QWindow *window) +HRGN qaxHrgnFromQRegion(const QRegion ®ion, const QWindow *window) { HRGN hRegion = CreateRectRgn(0, 0, 0, 0); for (const QRect &rect : QHighDpi::toNativeLocalRegion(region, window)) diff --git a/src/activeqt/shared/qaxutils_p.h b/src/activeqt/shared/qaxutils_p.h index 2894a57..8c86980 100644 --- a/src/activeqt/shared/qaxutils_p.h +++ b/src/activeqt/shared/qaxutils_p.h @@ -63,9 +63,9 @@ // #include <QtCore/qt_windows.h> -#include <QtCore/QMetaType> -#include <QtCore/QPair> -#include <QtCore/QRect> +#include <QtCore/qmetatype.h> +#include <QtCore/qpair.h> +#include <QtCore/qrect.h> QT_BEGIN_NAMESPACE @@ -76,7 +76,7 @@ class QRegion; class QWindow; HWND hwndForWidget(QWidget *widget); -HRGN qaxHrgnFromQRegion(QRegion region, const QWindow *window); +HRGN qaxHrgnFromQRegion(const QRegion ®ion, const QWindow *window); typedef QPair<qreal, qreal> QDpi; diff --git a/src/tools/idc/main.cpp b/src/tools/idc/main.cpp index 19bd874..dddfeda 100644 --- a/src/tools/idc/main.cpp +++ b/src/tools/idc/main.cpp @@ -69,11 +69,8 @@ static bool prependPath() return false; *ptr++ = L';'; const wchar_t pathVariable[] = L"PATH"; - if (!GetEnvironmentVariable(pathVariable, ptr, DWORD(maxEnvironmentSize - (ptr - buffer))) - || !SetEnvironmentVariable(pathVariable, buffer)) { - return false; - } - return true; + return GetEnvironmentVariable(pathVariable, ptr, DWORD(maxEnvironmentSize - (ptr - buffer))) != 0 + && SetEnvironmentVariable(pathVariable, buffer) == TRUE; } static QString errorString(DWORD errorCode) @@ -381,7 +378,8 @@ int runIdc(int argc, char **argv) const bool ok = attachTypeLibrary(input, 1, file.readAll(), &error); fprintf(stderr, "%s\n", qPrintable(error)); return ok ? 0 : 4; - } else if (!idlfile.isEmpty()) { + } + if (!idlfile.isEmpty()) { idlfile = QDir::toNativeSeparators(idlfile); fprintf(stderr, "\n\n%s\n\n", qPrintable(idlfile)); const HRESULT res = dumpIdl(input, idlfile, version); diff --git a/tools/dumpcpp/main.cpp b/tools/dumpcpp/main.cpp index 2baad0e..4601aef 100644 --- a/tools/dumpcpp/main.cpp +++ b/tools/dumpcpp/main.cpp @@ -692,7 +692,7 @@ void generateMethodParameters(QTextStream &out, const QMetaObject *mo, const QMe void generateClassImpl(QTextStream &out, const QMetaObject *mo, const QByteArray &className, const QByteArray &nameSpace, ObjectCategories category) { - Q_STATIC_ASSERT_X(QMetaObjectPrivate::OutputRevision == 7, "dumpcpp should generate the same version as moc"); + Q_STATIC_ASSERT_X(QMetaObjectPrivate::OutputRevision == 8, "dumpcpp should generate the same version as moc"); QByteArray qualifiedClassName; if (!nameSpace.isEmpty()) diff --git a/tools/testcon/changeproperties.cpp b/tools/testcon/changeproperties.cpp index 7382c0a..cae1f84 100644 --- a/tools/testcon/changeproperties.cpp +++ b/tools/testcon/changeproperties.cpp @@ -33,7 +33,7 @@ #include <QtCore/qt_windows.h> #include <QtCore/QMetaObject> #include <QtCore/QMetaProperty> -#include <QtCore/QRegExp> +#include <QtCore/QRegularExpression> #include <ActiveQt/QAxWidget> QT_BEGIN_NAMESPACE @@ -143,7 +143,7 @@ void ChangeProperties::on_buttonSet_clicked() break; case QVariant::List: { - QStringList txtList = editValue->text().split(QRegExp(QLatin1String("[,;]"))); + QStringList txtList = editValue->text().split(QRegularExpression(QLatin1String("[,;]"))); QList<QVariant> varList; for (int i = 0; i < txtList.count(); ++i) { QVariant svar(txtList.at(i)); @@ -234,12 +234,10 @@ void ChangeProperties::updateProperties() break; case QVariant::List: { - QList<QVariant> varList = var.toList(); + const QList<QVariant> varList = var.toList(); QStringList strList; - for (int i = 0; i < varList.count(); ++i) { - QVariant var = varList.at(i); + for (const auto &var : varList) strList << var.toString(); - } item->setText(2, strList.join(QLatin1String(", "))); } break; diff --git a/tools/testcon/docuwindow.cpp b/tools/testcon/docuwindow.cpp index e1c27fe..c5f60e9 100644 --- a/tools/testcon/docuwindow.cpp +++ b/tools/testcon/docuwindow.cpp @@ -137,7 +137,7 @@ void DocuWindow::print() } QPrintDialog printDialog(&printer, this); - if (!printDialog.exec()) { + if (printDialog.exec() == QDialog::Rejected) { statusBar()->showMessage(tr("Printing aborted"), 2000); return; } diff --git a/tools/testcon/mainwindow.cpp b/tools/testcon/mainwindow.cpp index 3ff0016..06ce0a0 100644 --- a/tools/testcon/mainwindow.cpp +++ b/tools/testcon/mainwindow.cpp @@ -79,10 +79,9 @@ MainWindow::MainWindow(QWidget *parent) setObjectName(QLatin1String("MainWindow")); - const int scriptCount = int(sizeof(scriptLanguages) / sizeof(scriptLanguages[0])); - for (int s = 0; s < scriptCount; ++s) { - const QString name = QLatin1String(scriptLanguages[s].name); - const QString suffix = QLatin1String(scriptLanguages[s].suffix); + for (auto scriptLanguage : scriptLanguages) { + const QString name = QLatin1String(scriptLanguage.name); + const QString suffix = QLatin1String(scriptLanguage.suffix); if (!QAxScriptManager::registerEngine(name, suffix)) qWarning().noquote().nospace() << "Failed to register \"" << name << "\" (*" << suffix << ") with QAxScriptManager."; |