From 3cedb777ec45467d9cbc8662359b6905e86ecbbc Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 21 Aug 2018 09:40:44 +0200 Subject: Qt Designer: Fix crash when reloading resources Initialize DesignerPropertyManager::m_object in the constructor Task-number: QTCREATORBUG-18342 Change-Id: I7acc7c12855b4775544a85fd000089cdcd6277af Reviewed-by: Eike Ziller --- src/designer/src/components/propertyeditor/designerpropertymanager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/designer/src/components/propertyeditor/designerpropertymanager.cpp b/src/designer/src/components/propertyeditor/designerpropertymanager.cpp index 8edd361da..28104439d 100644 --- a/src/designer/src/components/propertyeditor/designerpropertymanager.cpp +++ b/src/designer/src/components/propertyeditor/designerpropertymanager.cpp @@ -897,6 +897,7 @@ DesignerPropertyManager::DesignerPropertyManager(QDesignerFormEditorInterface *c QtVariantPropertyManager(parent), m_changingSubValue(false), m_core(core), + m_object(nullptr), m_sourceOfChange(0) { connect(this, &QtVariantPropertyManager::valueChanged, -- cgit v1.2.1 From ac6de68fe7d4fef251c101ef25812fe2198925f8 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 22 Aug 2018 09:34:50 +0200 Subject: Fix linking of qdoc against libclang when cross-compiling to QNX/Android MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When cross-compiling to QNX, qt_find_clang.prf is evaluated against the target configuration, so the check for "mingw" to select the right LLVM_INSTALL_DIR variant does not work as that's the host configuration. So instead we must formulate the conditions differently and rely on the fact that we are either using MSVC where the same compiler is used for host and target architecture (even if the architectures differ) or otherwise minwg is the host compiler (while target may be something else). Task-number: QTBUG-69793 Change-Id: I31acc127c94e0a8570242d1c8ea0db873f9fd253 Reviewed-by: Simo Fält --- mkspecs/features/qt_find_clang.prf | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mkspecs/features/qt_find_clang.prf b/mkspecs/features/qt_find_clang.prf index d584d136e..bb6ca2e53 100644 --- a/mkspecs/features/qt_find_clang.prf +++ b/mkspecs/features/qt_find_clang.prf @@ -43,8 +43,15 @@ isEmpty(QDOC_USE_STATIC_LIBCLANG): QDOC_USE_STATIC_LIBCLANG = $$(QDOC_USE_STATIC cache(QDOC_USE_STATIC_LIBCLANG) for(_, $$list(_)) { # just a way to break easily - mingw:isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR_MINGW) - msvc:isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR_MSVC) + equals(QMAKE_HOST.os, Windows) { + # on Windows we have only two host compilers, MSVC or mingw. The former we never + # use for cross-compilation where it isn't also the target compiler. The latter + # is not detectable as this .prf file is evaluated against the target configuration + # and therefore checking for "mingw" won't work when the target compiler is clang (Android) + # or qcc (QNX). + msvc:isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR_MSVC) + else:isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR_MINGW) + } isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR) LLVM_INSTALL_DIR = $$clean_path($$LLVM_INSTALL_DIR) contains(QMAKE_HOST.arch, x86_64): \ -- cgit v1.2.1 From 58af85972b45d905400ba1930b630e77601a2fb0 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 22 Aug 2018 15:11:53 +0200 Subject: Fix linking libclang with mingw when cross-compiling Commit 4ec82667f632992e827299c96d3bfd2b221a029b moved the mingw: CLANG_LIBS += -ldl condition from a option(host_build) .pro file to qt_find_clang.prf which is evaluated in target scope. That means when cross-compiling, we can't use mingw anymore as a way to detect the host compiler. Instead, rely on MinGW being the only alternative to MSVC that we support as a host compiler when cross-compiling. The msvc part is dealt with earlier in the file. Also cleaned up the LLVM_INSTALL_DIR determination that suffers from the same symptom (commit ac6de68fe7d4fef251c101ef25812fe2198925f8), where the msvc bit needs a proper scope for the else to work correctly. Task-number: QTBUG-69793 Change-Id: Id544c7929b79fc3c8763d50e0bac4a3a689ade60 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qt_find_clang.prf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mkspecs/features/qt_find_clang.prf b/mkspecs/features/qt_find_clang.prf index bb6ca2e53..1c2fa4ffa 100644 --- a/mkspecs/features/qt_find_clang.prf +++ b/mkspecs/features/qt_find_clang.prf @@ -49,8 +49,11 @@ for(_, $$list(_)) { # just a way to break easily # is not detectable as this .prf file is evaluated against the target configuration # and therefore checking for "mingw" won't work when the target compiler is clang (Android) # or qcc (QNX). - msvc:isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR_MSVC) - else:isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR_MINGW) + msvc { + isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR_MSVC) + } else { + isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR_MINGW) + } } isEmpty(LLVM_INSTALL_DIR): LLVM_INSTALL_DIR = $$(LLVM_INSTALL_DIR) LLVM_INSTALL_DIR = $$clean_path($$LLVM_INSTALL_DIR) @@ -299,7 +302,7 @@ for(_, $$list(_)) { # just a way to break easily -lLLVMXRay !equals(QMAKE_HOST.os, Darwin): CLANG_LIBS+=-Wl,--end-group CLANG_LIBS += -lz - mingw: CLANG_LIBS += -lpsapi -lshell32 -lole32 -luuid -ladvapi32 -lversion + equals(QMAKE_HOST.os, Windows): CLANG_LIBS += -lpsapi -lshell32 -lole32 -luuid -ladvapi32 -lversion else: CLANG_LIBS += -ldl equals(QMAKE_HOST.os, Darwin): CLANG_LIBS += -lcurses -lm -lxml2 } -- cgit v1.2.1 From 39b59e8b4bd9083070175f1ea4067e68f507a394 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Tue, 28 Aug 2018 13:17:05 +0200 Subject: qdoc: Restore the correct output directory for example images Commit ef5dc9d4 introduced a regression where the images used in examples are not copied to the correct output directory. Task-number: QTBUG-70218 Change-Id: I2a1b8a48e9b956e0f6dcc3318abc8b6400eb19e0 Reviewed-by: Paul Wicking Reviewed-by: Friedemann Kleint --- src/qdoc/generator.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp index b877ddeb0..7172ee505 100644 --- a/src/qdoc/generator.cpp +++ b/src/qdoc/generator.cpp @@ -1048,7 +1048,8 @@ void Generator::generateFileList(const DocumentNode* dn, QStringList(), exampleDirs, file, - exampleImgExts); + exampleImgExts, + &userFriendlyFilePath); outFileNames_ << prefix.mid(1) + userFriendlyFilePath; userFriendlyFilePath.truncate(userFriendlyFilePath.lastIndexOf('/')); QString imgOutDir = outDir_ + prefix + userFriendlyFilePath; -- cgit v1.2.1 From dac3046857cce4900083459a6999d66096ffd2e4 Mon Sep 17 00:00:00 2001 From: Antti Kokko Date: Tue, 28 Aug 2018 11:37:35 +0300 Subject: Add changes file for Qt 5.11.2 Change-Id: Iaa6fbdfb347405d7ce58e6f2f0912d5f71e011cc Reviewed-by: Friedemann Kleint --- dist/changes-5.11.2 | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 dist/changes-5.11.2 diff --git a/dist/changes-5.11.2 b/dist/changes-5.11.2 new file mode 100644 index 000000000..8efdf5ea9 --- /dev/null +++ b/dist/changes-5.11.2 @@ -0,0 +1,24 @@ +Qt 5.11.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.11.0 through 5.11.1. + +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.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +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. + +**************************************************************************** +* Qt 5.11.2 Changes * +**************************************************************************** + + - This release contains only minor code improvements. -- cgit v1.2.1 From d04bca6cc5210a66d1a314ba595ec229b5dec3aa Mon Sep 17 00:00:00 2001 From: Paul Wicking Date: Thu, 30 Aug 2018 13:21:29 +0200 Subject: QDoc: Add check to avoid links to internal classes in online docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change prohobits QDoc from generating links to internal classes, that cause thousands of 404s in the online docs. Task-number: QTBUG-67572 Change-Id: I241be67890ed139705128ea021ca084542d4b6bc Reviewed-by: Martin Smith Reviewed-by: Topi Reiniö --- src/qdoc/codemarker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qdoc/codemarker.cpp b/src/qdoc/codemarker.cpp index 44d05053e..ae94780de 100644 --- a/src/qdoc/codemarker.cpp +++ b/src/qdoc/codemarker.cpp @@ -414,7 +414,7 @@ void CodeMarker::insert(FastSection &fastSection, } } - if (node->access() == Node::Private) { + if (node->access() == Node::Private || node->isInternal()) { irrelevant = true; } else if (node->type() == Node::Function) { -- cgit v1.2.1 From 0ce6e74dc81aa99dc7eef05c68ab22bfdb9cca9c Mon Sep 17 00:00:00 2001 From: Paul Wicking Date: Thu, 30 Aug 2018 15:12:44 +0200 Subject: Doc: Extend description of Clang dependency for QDoc * Bump Clang version to 6.0. * Include description of setting environment variable on Windows Task-number: QTBUG-65762 Change-Id: Ib0ee615f852580a75033eb8d188da0270def7b3e Reviewed-by: Martin Smith --- src/qdoc/doc/qdoc-guide/qdoc-guide.qdoc | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/qdoc/doc/qdoc-guide/qdoc-guide.qdoc b/src/qdoc/doc/qdoc-guide/qdoc-guide.qdoc index 3ebd0c8de..71c8c81f3 100644 --- a/src/qdoc/doc/qdoc-guide/qdoc-guide.qdoc +++ b/src/qdoc/doc/qdoc-guide/qdoc-guide.qdoc @@ -27,7 +27,7 @@ /*! \page qdoc-guide.html \title Getting Started with QDoc - \nextpage Installing clang for QDoc + \nextpage Installing Clang for QDoc Qt uses QDoc to generate its documentation set into HTML and DITA XML formats. QDoc uses a set of configuration files to generate documentation @@ -44,9 +44,9 @@ \li \c Documentation in \c C++, \c QML, and \c .qdoc files \endlist - \note From Qt 5.11, \l{QDoc Manual}{QDoc} requires \l{http://clang.llvm.org}{clang} - from LLVM 3.9 for parsing C++ header and source files, and for parsing the function - signatures in \l {fn-command} {\\fn} commands. See \l {Installing clang for QDoc} + \note From Qt 5.11, \l{QDoc Manual}{QDoc} requires \l{http://clang.llvm.org}{Clang} + for parsing C++ header and source files, and for parsing the function + signatures in \l {fn-command} {\\fn} commands. See \l {Installing Clang for QDoc} for details. This section intends to cover the basic necessities for creating a @@ -60,7 +60,7 @@ \section1 Chapters \list 1 - \li \l{Installing clang for QDoc} + \li \l{Installing Clang for QDoc} \li \l{Creating QDoc Configuration Files} \li \l{Writing Documentation} \li \l{Categories of Documentation} @@ -76,7 +76,7 @@ /*! \page qdoc-guide-conf.html \title Creating QDoc Configuration Files - \previouspage Installing clang for QDoc + \previouspage Installing Clang for QDoc \nextpage Writing Documentation To generate documentation, QDoc uses configuration files, with the \c qdocconf extension, to store configuration settings. @@ -628,7 +628,7 @@ /*! \page qdoc-guide-clang.html - \title Installing clang for QDoc + \title Installing Clang for QDoc \previouspage Getting Started with QDoc \nextpage Creating QDoc Configuration Files @@ -636,15 +636,21 @@ apply: \list 1 - \li Install \l{http://clang.llvm.org}{LLVM 3.9} or greater. + \li Install \l{http://clang.llvm.org}{LLVM 6.0} or greater. The pre-built binaries needed can be found \l {http://releases.llvm.org/download.html}{here}. \li Set the environment variable \c LLVM_INSTALL_DIR to point to the directory where LLVM is installed. This should be the top level - directory. For example, on a Linux system with LLVM installed to - \c /usr/llvm: + directory. For example, on a Linux or macOS system with LLVM + installed to \c /usr/llvm: \badcode $ export LLVM_INSTALL_DIR=/usr/llvm \endcode + + On a Windows system with LLVM installed to \c + {C:\Program Files\LLVM}: + \badcode + C:\> setx LLVM_INSTALL_DIR "C:\Program Files\LLVM" + \endcode \endlist */ -- cgit v1.2.1 From dc5fdf373ea90b92a86778d6dd4a821ddd059ba2 Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Sat, 7 Jan 2017 12:23:47 +0300 Subject: qmake: Add test functions for comparing version numbers qmake really lacks version comparing functions: users either use ugly constructions to compare versions by components, such as greaterThan(QT_CLANG_MAJOR_VERSION, 3)|greaterThan(QT_CLANG_MINOR_VERSION, 4): or even incorrectly compare versions as strings: !lessThan(apple_clang_ver, "5.1")|!lessThan(reg_clang_ver, "3.4"): Add test functions versionAtLeast and versionAtMost which use QVersionNumber to compare version numbers by components. Change-Id: I65e6b3c296d0301d544b7e38bf3d44f8d555c7fc Reviewed-by: Oswald Buddenhagen (cherry picked from qtbase/8a3e8856e5606ec616d4420ff8c4f77969432390) Task-number: QTBUG-70299 Reviewed-by: Simon Hausmann --- src/linguist/shared/qmakebuiltins.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/linguist/shared/qmakebuiltins.cpp b/src/linguist/shared/qmakebuiltins.cpp index dde02544d..107c5446a 100644 --- a/src/linguist/shared/qmakebuiltins.cpp +++ b/src/linguist/shared/qmakebuiltins.cpp @@ -51,6 +51,7 @@ #ifdef PROEVALUATOR_THREAD_SAFE # include #endif +#include #include @@ -98,6 +99,7 @@ enum ExpandFunc { enum TestFunc { T_INVALID = 0, T_REQUIRES, T_GREATERTHAN, T_LESSTHAN, T_EQUALS, + T_VERSION_AT_LEAST, T_VERSION_AT_MOST, T_EXISTS, T_EXPORT, T_CLEAR, T_UNSET, T_EVAL, T_CONFIG, T_SYSTEM, T_DEFINED, T_DISCARD_FROM, T_CONTAINS, T_INFILE, T_COUNT, T_ISEMPTY, T_PARSE_JSON, T_INCLUDE, T_LOAD, T_DEBUG, T_LOG, T_MESSAGE, T_WARNING, T_ERROR, T_IF, @@ -171,6 +173,8 @@ void QMakeEvaluator::initFunctionStatics() { "lessThan", T_LESSTHAN }, { "equals", T_EQUALS }, { "isEqual", T_EQUALS }, + { "versionAtLeast", T_VERSION_AT_LEAST }, + { "versionAtMost", T_VERSION_AT_MOST }, { "exists", T_EXISTS }, { "export", T_EXPORT }, { "clear", T_CLEAR }, @@ -1498,6 +1502,19 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional( } return returnBool(values(map(args.at(0))).join(statics.field_sep) == args.at(1).toQString(m_tmp1)); + case T_VERSION_AT_LEAST: + case T_VERSION_AT_MOST: { + if (args.count() != 2) { + evalError(fL1S("%1(variable, versionNumber) requires two arguments.") + .arg(function.toQString(m_tmp1))); + return ReturnFalse; + } + const QVersionNumber lvn = QVersionNumber::fromString(values(args.at(0).toKey()).join(QLatin1Char('.'))); + const QVersionNumber rvn = QVersionNumber::fromString(args.at(1).toQString()); + if (func_t == T_VERSION_AT_LEAST) + return returnBool(lvn >= rvn); + return returnBool(lvn <= rvn); + } case T_CLEAR: { if (args.count() != 1) { evalError(fL1S("%1(variable) requires one argument.") -- cgit v1.2.1 From 277af20762813ff92ea47a69b4d18563e01cc18e Mon Sep 17 00:00:00 2001 From: Paul Wicking Date: Mon, 3 Sep 2018 15:09:40 +0200 Subject: QDoc: Link correctly to enums as function parameters Include enum type in findChildNode check, to resolve page nodes correctly. The missing check causes QDoc to not link to enums when they are function parameter types. This behavior constitutes a regression from 5.10. Task-number: QTBUG-70231 Change-Id: I57f94c08b0e207567e97127d0b7e268d90d051aa Reviewed-by: Martin Smith --- src/qdoc/node.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qdoc/node.cpp b/src/qdoc/node.cpp index 046467a94..84b44c4da 100644 --- a/src/qdoc/node.cpp +++ b/src/qdoc/node.cpp @@ -850,7 +850,8 @@ Node *Aggregate::findChildNode(const QString& name, Node::Genus genus, int findF && !node->isQmlType() && !node->isQmlBasicType() && !node->isJsType() - && !node->isJsBasicType()) + && !node->isJsBasicType() + && !node->isEnumType()) continue; } return node; -- cgit v1.2.1