From d5ecc272b65742fb48efd305086f42302fc3d924 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 14 Jun 2017 10:40:31 +0200 Subject: Add changes file for 5.9.1 Change-Id: Iab35093e202068ada0778f6a095e2e056caccdb6 Reviewed-by: Maurice Kalinowski --- dist/changes-5.9.1 | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 dist/changes-5.9.1 diff --git a/dist/changes-5.9.1 b/dist/changes-5.9.1 new file mode 100644 index 0000000..e0a6a4b --- /dev/null +++ b/dist/changes-5.9.1 @@ -0,0 +1,24 @@ +Qt 5.9.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Library * +**************************************************************************** + + - This release contains only minor code improvements. -- cgit v1.2.1 From cd2e41ee7935c515addfd3128824ffd0a53aaf5a Mon Sep 17 00:00:00 2001 From: Eric Lemanissier Date: Fri, 16 Jun 2017 16:20:30 +0200 Subject: dumpcpp: make dump QT_NO_CAST_FROM_ASCII proof Change-Id: I4873179ec8ff42173009973ac96dea3a2bbdb014 Reviewed-by: Friedemann Kleint --- tools/dumpcpp/main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/dumpcpp/main.cpp b/tools/dumpcpp/main.cpp index 97915c1..1f0cca8 100644 --- a/tools/dumpcpp/main.cpp +++ b/tools/dumpcpp/main.cpp @@ -196,11 +196,11 @@ void generateClassDecl(QTextStream &out, const QString &controlID, const QMetaOb out << " internalRelease();" << endl; else if (category & Licensed) { out << " if (licenseKey.isEmpty())" << endl; - out << " setControl(\"" << controlID << "\");" << endl; + out << " setControl(QStringLiteral(\"" << controlID << "\"));" << endl; out << " else" << endl; - out << " setControl(\"" << controlID << ":\" + licenseKey);" << endl; + out << " setControl(QStringLiteral(\"" << controlID << ":\" + licenseKey));" << endl; } else { - out << " setControl(\"" << controlID << "\");" << endl; + out << " setControl(QStringLiteral(\"" << controlID << "\"));" << endl; } out << " }" << endl; out << endl; -- cgit v1.2.1 From 5d8d01b87c20569fd2a7389c199e7db14ba52d11 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Tue, 20 Jun 2017 06:28:17 +0200 Subject: Fix infinite loop in MIME classinfo parser in ActiveQt This is the same change as dd0feaa95a4c3e186c18bab16db5552bb8efc2db but done in the other location where the same loop is handled in the same manner. Change-Id: I86773b1ed5c9ac7bd23974e9eefcb89f7b515014 Reviewed-by: Friedemann Kleint --- src/activeqt/control/qaxserver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/activeqt/control/qaxserver.cpp b/src/activeqt/control/qaxserver.cpp index b3c11db..6985cdd 100644 --- a/src/activeqt/control/qaxserver.cpp +++ b/src/activeqt/control/qaxserver.cpp @@ -420,7 +420,7 @@ HRESULT UpdateRegistry(BOOL bRegister) QString extension; while (mime.contains(QLatin1Char(':'))) { extension = mime.mid(mime.lastIndexOf(QLatin1Char(':')) + 1); - mime.chop(extension.length() - 1); + mime.chop(extension.length() + 1); // Prepend '.' before extension, if required. extension = extension.trimmed(); if (extension[0] != dot) -- cgit v1.2.1 From 4618c9d92ee95387499d57d048f85766bc466373 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 20 Jun 2017 10:26:53 +0200 Subject: Add Q_FALLTHROUGH to unmarked fallthroughs seen by GCC 7 qaxbase.cpp:2557:13: warning: this statement may fall through [-Wimplicit-fallthrough=] qaxserverbase.cpp:2343:13: warning: this statement may fall through [-Wimplicit-fallthrough=] Change-Id: I1aad3955f2901493ac9a6fb50b7bc32b0e98f509 Reviewed-by: Andy Shaw --- src/activeqt/container/qaxbase.cpp | 2 +- src/activeqt/control/qaxserverbase.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/activeqt/container/qaxbase.cpp b/src/activeqt/container/qaxbase.cpp index 22aec57..cd564d3 100644 --- a/src/activeqt/container/qaxbase.cpp +++ b/src/activeqt/container/qaxbase.cpp @@ -2555,7 +2555,7 @@ void MetaObjectGenerator::readFuncsInfo(ITypeInfo *typeinfo, ushort nFuncs) prototype = set + prototype; } - // FALL THROUGH to support multi-variat properties + Q_FALLTHROUGH(); // Fall through to support multi-variate properties case INVOKE_FUNC: // method { bool cloned = false; diff --git a/src/activeqt/control/qaxserverbase.cpp b/src/activeqt/control/qaxserverbase.cpp index 9efded2..779f015 100644 --- a/src/activeqt/control/qaxserverbase.cpp +++ b/src/activeqt/control/qaxserverbase.cpp @@ -2342,7 +2342,7 @@ HRESULT WINAPI QAxServerBase::Invoke(DISPID dispidMember, REFIID riid, break; } } - // FALLTHROUGH if wFlags == DISPATCH_PROPERTYGET|DISPATCH_METHOD AND not a property. + Q_FALLTHROUGH(); // Fall through if wFlags == DISPATCH_PROPERTYGET|DISPATCH_METHOD AND not a property. case DISPATCH_METHOD: { int nameLength = 0; -- cgit v1.2.1 From 321cde6cf196da0c3587d5f5a3a456a44e28249e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 30 Jun 2017 09:50:58 +0200 Subject: Bump version Change-Id: Ifbf451c9ed9c330edd55a8147b0c2cd40c024254 --- .qmake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.qmake.conf b/.qmake.conf index 0dcf6d9..78a277a 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,3 +1,3 @@ load(qt_build_config) -MODULE_VERSION = 5.9.1 +MODULE_VERSION = 5.9.2 -- cgit v1.2.1 From 9a6d57385c49fa702319139ae1f2e471520963ee Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Wed, 21 Jun 2017 09:15:52 +0200 Subject: Fallback to [Un]RegisterTypeLibForUser if the admin access fails If the user cannot register the control due to lacking admin rights then it should fall back to the user registration so that it can still successfully be registered. Change-Id: Idb514c2e02d8e7fb084a23182dcc2a793eb12d08 Reviewed-by: Friedemann Kleint --- src/activeqt/control/qaxserver.cpp | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/activeqt/control/qaxserver.cpp b/src/activeqt/control/qaxserver.cpp index 6985cdd..45f6940 100644 --- a/src/activeqt/control/qaxserver.cpp +++ b/src/activeqt/control/qaxserver.cpp @@ -231,19 +231,35 @@ HRESULT UpdateRegistry(BOOL bRegister) qAxTypeLibrary->GetLibAttr(&libAttr); if (!libAttr) return SELFREG_E_TYPELIB; - - if (bRegister) - RegisterTypeLib(qAxTypeLibrary, reinterpret_cast(const_cast(libFile.utf16())), 0); - else - UnRegisterTypeLib(libAttr->guid, libAttr->wMajorVerNum, libAttr->wMinorVerNum, libAttr->lcid, libAttr->syskind); - + bool userFallback = false; + if (bRegister) { + if (RegisterTypeLib(qAxTypeLibrary, + reinterpret_cast(const_cast(libFile.utf16())), 0) == TYPE_E_REGISTRYACCESS) { +#ifndef Q_CC_MINGW + // MinGW does not have RegisterTypeLibForUser() implemented so we cannot fallback in this case + RegisterTypeLibForUser(qAxTypeLibrary, reinterpret_cast(const_cast(libFile.utf16())), 0); + userFallback = true; +#endif + } + } else { + if (UnRegisterTypeLib(libAttr->guid, libAttr->wMajorVerNum, libAttr->wMinorVerNum, libAttr->lcid, + libAttr->syskind) == TYPE_E_REGISTRYACCESS) { +#ifndef Q_CC_MINGW + // MinGW does not have RegisterTypeLibForUser() implemented so we cannot fallback in this case + UnRegisterTypeLibForUser(libAttr->guid, libAttr->wMajorVerNum, libAttr->wMinorVerNum, libAttr->lcid, libAttr->syskind); + userFallback = true; +#endif + } + } + if (userFallback) + qWarning("QAxServer: Falling back to registering as user for %s due to insufficient permission.", qPrintable(module)); qAxTypeLibrary->ReleaseTLibAttr(libAttr); // check whether the user has permission to write to HKLM\Software\Classes // if not, use HKCU\Software\Classes QString keyPath(QLatin1String("HKEY_LOCAL_MACHINE\\Software\\Classes")); QScopedPointer settings(new QSettings(keyPath, QSettings::NativeFormat)); - if (!settings->isWritable()) { + if (userFallback || !settings->isWritable()) { keyPath = QLatin1String("HKEY_CURRENT_USER\\Software\\Classes"); settings.reset(new QSettings(keyPath, QSettings::NativeFormat)); } -- cgit v1.2.1