diff --git a/dist/changes-5.0.1.md b/dist/changes-5.0.1.md index d1954f43049..6ccf66c59f8 100644 --- a/dist/changes-5.0.1.md +++ b/dist/changes-5.0.1.md @@ -22,6 +22,7 @@ Editing * Fixed freeze with imports that don't specify minor version (QTCREATORBUG-26178, QTCREATORBUG-26216) +* Fixed crash when using inline components (QTCREATORBUG-26151) ### Language Client @@ -81,6 +82,10 @@ Test Integration * Fixed missing test output +### Google Test + +* Fixed wizard for CMake (QTCREATORBUG-26253) + Platforms --------- @@ -93,6 +98,10 @@ Platforms * Fixed cleaning up of old auto-generated Android kits * Fixed minimum SDK level for CMake projects (QTCREATORBUG-26127) +### iOS + +* Fixed initial CMake parameters for iOS device builds + ### Web Assembly * Fixed detection of emscripten compilers (QTCREATORBUG-26199) diff --git a/doc/qtcreator/images/extraimages/images/Z3uPoe-4UAw.jpg b/doc/qtcreator/images/extraimages/images/Z3uPoe-4UAw.jpg deleted file mode 100644 index 3bef8a8692d..00000000000 Binary files a/doc/qtcreator/images/extraimages/images/Z3uPoe-4UAw.jpg and /dev/null differ diff --git a/doc/qtcreator/images/extraimages/images/ZzbucmQPU44.jpg b/doc/qtcreator/images/extraimages/images/ZzbucmQPU44.jpg deleted file mode 100644 index dd25d4cea36..00000000000 Binary files a/doc/qtcreator/images/extraimages/images/ZzbucmQPU44.jpg and /dev/null differ diff --git a/doc/qtcreator/images/extraimages/images/aV6kFxH3Xws.jpg b/doc/qtcreator/images/extraimages/images/aV6kFxH3Xws.jpg deleted file mode 100644 index 94b7e30392a..00000000000 Binary files a/doc/qtcreator/images/extraimages/images/aV6kFxH3Xws.jpg and /dev/null differ diff --git a/doc/qtcreator/images/extraimages/qtdesignstudio-extraimages.qdocconf b/doc/qtcreator/images/extraimages/qtdesignstudio-extraimages.qdocconf index 60e035b8377..a0c485b95f2 100644 --- a/doc/qtcreator/images/extraimages/qtdesignstudio-extraimages.qdocconf +++ b/doc/qtcreator/images/extraimages/qtdesignstudio-extraimages.qdocconf @@ -2,8 +2,6 @@ images/commercial.png \ images/SsFWyUeAA_4.jpg \ images/9ihYeC0YJ0M.jpg \ - images/aV6kFxH3Xws.jpg \ - images/ZzbucmQPU44.jpg \ images/RfEYO-5Mw6s.jpg \ images/yOUdg1o2KJM.jpg \ images/DVWd_xMMgvg.jpg \ @@ -14,5 +12,4 @@ images/pEETxSxYazg.jpg \ images/V3Po15bNErw.jpg \ images/bMXeeQw6BYs.jpg \ - images/u3kZJjlk3CY.jpg \ - images/Z3uPoe-4UAw.jpg + images/u3kZJjlk3CY.jpg diff --git a/doc/qtdesignstudio/examples/ClusterTutorial/ClusterTutorial.qmlproject b/doc/qtdesignstudio/examples/ClusterTutorial/ClusterTutorial.qmlproject deleted file mode 100644 index 94dd80cfdc3..00000000000 --- a/doc/qtdesignstudio/examples/ClusterTutorial/ClusterTutorial.qmlproject +++ /dev/null @@ -1,89 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2018 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Design Studio. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QmlProject 1.1 - -Project { - mainFile: "ClusterTutorial.qml" - - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - - JavaScriptFiles { - directory: "." - } - - ImageFiles { - directory: "." - } - - Files { - filter: "*.conf" - files: ["qtquickcontrols2.conf"] - } - - Files { - filter: "qmldir" - directory: "." - } - - Environment { - QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf" - QT_AUTO_SCREEN_SCALE_FACTOR: "1" - } - - /* List of plugin directories passed to QML runtime */ - importPaths: [ "imports", "backend"] - - /* Required for deployment */ - targetDirectory: "/opt/ClusterTutorial" -} diff --git a/doc/qtdesignstudio/examples/doc/clustertutorial.qdoc b/doc/qtdesignstudio/examples/doc/clustertutorial.qdoc deleted file mode 100644 index cd12f2faeb2..00000000000 --- a/doc/qtdesignstudio/examples/doc/clustertutorial.qdoc +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2018 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Design Studio documentation. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: https://www.gnu.org/licenses/fdl-1.3.html. -** -****************************************************************************/ - -/*! - \example ClusterTutorial - \ingroup studioexamples - \brief Contains sources for the Cluster Tutorial videos. - - \title Cluster Tutorial - - \image clustertutorial.png "Cluster Tutorial example" - - \e {Cluster Tutorial} example contains the source files for a set of - video tutorials that explain how to export designs from Adobe - Photoshop to \QDS and to edit them to create Qt Quick UIs. - - Select the \uicontrol Tutorials tab in the Welcome mode to watch the - following tutorials: - - \list - \li Part 1 provides an introduction to \QDS and \QB Adobe Photoshop - exporter. - \li Part 2 describes adding custom fonts and getting started with the - timeline. - \li Part 3 describes creating animations, applying effects, and using - ISO icons. - \li Part 4 describes using bindings and mock data. - \li Part 5 describes states, animation, and easing curves. - \endlist -*/ diff --git a/doc/qtdesignstudio/examples/doc/images/clustertutorial.png b/doc/qtdesignstudio/examples/doc/images/clustertutorial.png deleted file mode 100644 index 925a1247ca6..00000000000 Binary files a/doc/qtdesignstudio/examples/doc/images/clustertutorial.png and /dev/null differ diff --git a/doc/qtdesignstudio/examples/doc/loginui4.qdoc b/doc/qtdesignstudio/examples/doc/loginui4.qdoc index 91698be34a7..0d7024776bf 100644 --- a/doc/qtdesignstudio/examples/doc/loginui4.qdoc +++ b/doc/qtdesignstudio/examples/doc/loginui4.qdoc @@ -320,8 +320,4 @@ \section1 Next Steps For more examples about using timelines, see \l{Examples and Tutorials}. - - Watch a video tutorial about creating timelines and adding keyframes: - - \youtube Z3uPoe-4UAw */ diff --git a/doc/qtdesignstudio/src/qtbridge/qtbridge-ps-overview.qdoc b/doc/qtdesignstudio/src/qtbridge/qtbridge-ps-overview.qdoc index aedd017a93b..57a56ae5ab6 100644 --- a/doc/qtdesignstudio/src/qtbridge/qtbridge-ps-overview.qdoc +++ b/doc/qtdesignstudio/src/qtbridge/qtbridge-ps-overview.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2020 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Design Studio documentation. @@ -52,6 +52,4 @@ Photoshop, you should follow the guidelines for working with Photoshop and organizing your assets. \endlist - - \include qtbridge-tutorial-links.qdocinc qtpsbridge videos */ diff --git a/doc/qtdesignstudio/src/qtbridge/qtbridge-tutorial-links.qdocinc b/doc/qtdesignstudio/src/qtbridge/qtbridge-tutorial-links.qdocinc index ffdce3d378e..becd27381bd 100644 --- a/doc/qtdesignstudio/src/qtbridge/qtbridge-tutorial-links.qdocinc +++ b/doc/qtdesignstudio/src/qtbridge/qtbridge-tutorial-links.qdocinc @@ -23,30 +23,6 @@ ** ****************************************************************************/ -//! [qtpsbridge videos] - - \section2 \QBPS Videos - - For more information, watch a video tutorial and webinar about using \QBPS - that are also accessible from the \uicontrol Tutorials tab of the Welcome - mode: - - \list - \li Building an Instrument Cluster for Your Car HMI, Part 1 - - \youtube aV6kFxH3Xws - - You can access the Cluster tutorial source files in the - \uicontrol Examples tab. - - \li From Photoshop to Prototype with Qt Design Studio - - \youtube ZzbucmQPU44 - \endlist - -//! [qtpsbridge videos] - - //! [qtsketchbridge tutorials] \section2 \QBSK Tutorials diff --git a/doc/qtdesignstudio/src/qtdesignstudio-examples.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-examples.qdoc index 3a119c34dad..d2b7a7e9dd9 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-examples.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-examples.qdoc @@ -40,7 +40,6 @@ more information about \QDS. To watch a tutorial on YouTube, select it in the tab. - \include qtbridge-tutorial-links.qdocinc qtpsbridge videos \include qtbridge-tutorial-links.qdocinc qtsketchbridge tutorials \section1 Examples for Downloading diff --git a/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc index e44a9952a2a..176bcc03319 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc @@ -106,6 +106,5 @@ \uicontrol {Asset Import} dialog while importing, fix the issues in design tool and export the assets again. - \include qtbridge-tutorial-links.qdocinc qtpsbridge videos \include qtbridge-tutorial-links.qdocinc qtsketchbridge tutorials */ diff --git a/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc index 98a92dacd23..5c28b2efe4d 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc @@ -49,11 +49,6 @@ be registered as a singleton type. This enables the use of global property values in the UI. - You can find a video tutorial about creating JavaScript for generating mock - data for a UI - \l{https://resources.qt.io/development-topic-ui-design/qtdesignstudio-clustertutorial-partfour} - {here}. - To create the necessary files: \list 1 diff --git a/scripts/deployqtHelper_mac.sh b/scripts/deployqtHelper_mac.sh index ee2a725549a..3387b678479 100755 --- a/scripts/deployqtHelper_mac.sh +++ b/scripts/deployqtHelper_mac.sh @@ -169,6 +169,7 @@ if [ $LLVM_INSTALL_DIR ]; then clazysource="$LLVM_INSTALL_DIR"/bin/clazy-standalone cp -Rf "$clazysource" "$libexec_path/clang/bin/" || exit 1 install_name_tool -add_rpath "@executable_path/../lib" "$libexec_path/clang/bin/clazy-standalone" || exit 1 + install_name_tool -delete_rpath "/Users/qt/work/build/libclang/lib" "$libexec_path/clang/bin/clazy-standalone" 2> /dev/null fi clangbackendArgument="-executable=$libexec_path/clangbackend" fi diff --git a/src/libs/utils/mimetypes/mimemagicrule.cpp b/src/libs/utils/mimetypes/mimemagicrule.cpp index 0aa0a6ad485..1293e00f65a 100644 --- a/src/libs/utils/mimetypes/mimemagicrule.cpp +++ b/src/libs/utils/mimetypes/mimemagicrule.cpp @@ -359,8 +359,9 @@ MimeMagicRule::MimeMagicRule(MimeMagicRule::Type theType, } } -MimeMagicRule::MimeMagicRule(const MimeMagicRule &other) : - d(new MimeMagicRulePrivate(*other.d)) +MimeMagicRule::MimeMagicRule(const MimeMagicRule &other) + : m_subMatches(other.m_subMatches) + , d(new MimeMagicRulePrivate(*other.d)) { } @@ -369,13 +370,13 @@ MimeMagicRule::~MimeMagicRule() = default; MimeMagicRule &MimeMagicRule::operator=(const MimeMagicRule &other) { *d = *other.d; + m_subMatches = other.m_subMatches; return *this; } bool MimeMagicRule::operator==(const MimeMagicRule &other) const { - return d == other.d || - *d == *other.d; + return (d == other.d || *d == *other.d) && m_subMatches == other.m_subMatches; } MimeMagicRule::Type MimeMagicRule::type() const diff --git a/src/plugins/autotest/testtreemodel.cpp b/src/plugins/autotest/testtreemodel.cpp index c16b52740e6..75fcce613fa 100644 --- a/src/plugins/autotest/testtreemodel.cpp +++ b/src/plugins/autotest/testtreemodel.cpp @@ -407,7 +407,7 @@ void TestTreeModel::synchronizeTestTools() if (project) { const QList &allTargets = project->targets(); auto target = allTargets.empty() ? nullptr : allTargets.first(); - if (QTC_GUARD(target)) { + if (target) { auto bs = target->buildSystem(); for (ITestTool *testTool : newlyAdded) { ITestTreeItem *rootNode = testTool->rootNode(); diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp index 6fa649e699e..a6030701721 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp @@ -163,8 +163,9 @@ void PropertyEditorView::changeValue(const QString &name) m_locked = true; value->setValue(m_selectedNode.id()); m_locked = false; - if (!QmlDesigner::ModelNode::isValidId(newId)) - Core::AsynchronousMessageBox::warning(tr("Invalid ID"), tr("%1 is an invalid ID.").arg(newId)); + QString errMsg = QmlDesigner::ModelNode::getIdValidityErrorMessage(newId); + if (!errMsg.isEmpty()) + Core::AsynchronousMessageBox::warning(tr("Invalid ID"), errMsg.arg(newId)); else Core::AsynchronousMessageBox::warning(tr("Invalid ID"), tr("%1 already exists.").arg(newId)); } diff --git a/src/plugins/qmldesigner/designercore/include/modelnode.h b/src/plugins/qmldesigner/designercore/include/modelnode.h index 961d3914059..7fba10d3cd9 100644 --- a/src/plugins/qmldesigner/designercore/include/modelnode.h +++ b/src/plugins/qmldesigner/designercore/include/modelnode.h @@ -168,6 +168,8 @@ public: void setIdWithRefactoring(const QString &id); void setIdWithoutRefactoring(const QString &id); static bool isValidId(const QString &id); + static QString getIdValidityErrorMessage(const QString &id); + bool hasId() const; Model *model() const; diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp index 64b51ff69fa..9e1e260bb09 100644 --- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp @@ -212,6 +212,29 @@ bool ModelNode::isValidId(const QString &id) return id.isEmpty() || (!idContainsWrongLetter(id) && !idIsQmlKeyWord(id) && !isIdToAvoid(id)); } +QString ModelNode::getIdValidityErrorMessage(const QString &id) +{ + if (isValidId(id)) + return {}; // valid + + if (id.at(0).isUpper()) + return QObject::tr("ID cannot start with an uppercase character."); + + if (id.at(0).isDigit()) + return QObject::tr("ID cannot start with a number."); + + if (id.contains(' ')) + return QObject::tr("ID cannot include whitespace."); + + if (idIsQmlKeyWord(id)) + return QObject::tr("%1 is a reserved QML keyword."); + + if (isIdToAvoid(id)) + return QObject::tr("%1 is a reserved property keyword."); + + return QObject::tr("ID includes invalid characters."); +} + bool ModelNode::hasId() const { if (!isValid())