Merge remote-tracking branch 'origin/5.0'

Change-Id: I0ef7cd302ba7cba64fec401f3426dd682b8dc036
This commit is contained in:
Eike Ziller
2021-09-15 11:18:11 +02:00
20 changed files with 46 additions and 190 deletions

View File

@@ -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)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -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

View File

@@ -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"
}

View File

@@ -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
*/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

View File

@@ -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
*/

View File

@@ -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
*/

View File

@@ -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

View File

@@ -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

View File

@@ -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
*/

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -407,7 +407,7 @@ void TestTreeModel::synchronizeTestTools()
if (project) {
const QList<Target *> &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();

View File

@@ -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));
}

View File

@@ -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;

View File

@@ -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())