forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/5.0'
Change-Id: I0ef7cd302ba7cba64fec401f3426dd682b8dc036
This commit is contained in:
9
dist/changes-5.0.1.md
vendored
9
dist/changes-5.0.1.md
vendored
@@ -22,6 +22,7 @@ Editing
|
|||||||
|
|
||||||
* Fixed freeze with imports that don't specify minor version
|
* Fixed freeze with imports that don't specify minor version
|
||||||
(QTCREATORBUG-26178, QTCREATORBUG-26216)
|
(QTCREATORBUG-26178, QTCREATORBUG-26216)
|
||||||
|
* Fixed crash when using inline components (QTCREATORBUG-26151)
|
||||||
|
|
||||||
### Language Client
|
### Language Client
|
||||||
|
|
||||||
@@ -81,6 +82,10 @@ Test Integration
|
|||||||
|
|
||||||
* Fixed missing test output
|
* Fixed missing test output
|
||||||
|
|
||||||
|
### Google Test
|
||||||
|
|
||||||
|
* Fixed wizard for CMake (QTCREATORBUG-26253)
|
||||||
|
|
||||||
Platforms
|
Platforms
|
||||||
---------
|
---------
|
||||||
|
|
||||||
@@ -93,6 +98,10 @@ Platforms
|
|||||||
* Fixed cleaning up of old auto-generated Android kits
|
* Fixed cleaning up of old auto-generated Android kits
|
||||||
* Fixed minimum SDK level for CMake projects (QTCREATORBUG-26127)
|
* Fixed minimum SDK level for CMake projects (QTCREATORBUG-26127)
|
||||||
|
|
||||||
|
### iOS
|
||||||
|
|
||||||
|
* Fixed initial CMake parameters for iOS device builds
|
||||||
|
|
||||||
### Web Assembly
|
### Web Assembly
|
||||||
|
|
||||||
* Fixed detection of emscripten compilers (QTCREATORBUG-26199)
|
* 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 |
@@ -2,8 +2,6 @@
|
|||||||
images/commercial.png \
|
images/commercial.png \
|
||||||
images/SsFWyUeAA_4.jpg \
|
images/SsFWyUeAA_4.jpg \
|
||||||
images/9ihYeC0YJ0M.jpg \
|
images/9ihYeC0YJ0M.jpg \
|
||||||
images/aV6kFxH3Xws.jpg \
|
|
||||||
images/ZzbucmQPU44.jpg \
|
|
||||||
images/RfEYO-5Mw6s.jpg \
|
images/RfEYO-5Mw6s.jpg \
|
||||||
images/yOUdg1o2KJM.jpg \
|
images/yOUdg1o2KJM.jpg \
|
||||||
images/DVWd_xMMgvg.jpg \
|
images/DVWd_xMMgvg.jpg \
|
||||||
@@ -14,5 +12,4 @@
|
|||||||
images/pEETxSxYazg.jpg \
|
images/pEETxSxYazg.jpg \
|
||||||
images/V3Po15bNErw.jpg \
|
images/V3Po15bNErw.jpg \
|
||||||
images/bMXeeQw6BYs.jpg \
|
images/bMXeeQw6BYs.jpg \
|
||||||
images/u3kZJjlk3CY.jpg \
|
images/u3kZJjlk3CY.jpg
|
||||||
images/Z3uPoe-4UAw.jpg
|
|
||||||
|
|||||||
@@ -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"
|
|
||||||
}
|
|
||||||
@@ -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 |
@@ -320,8 +320,4 @@
|
|||||||
\section1 Next Steps
|
\section1 Next Steps
|
||||||
|
|
||||||
For more examples about using timelines, see \l{Examples and Tutorials}.
|
For more examples about using timelines, see \l{Examples and Tutorials}.
|
||||||
|
|
||||||
Watch a video tutorial about creating timelines and adding keyframes:
|
|
||||||
|
|
||||||
\youtube Z3uPoe-4UAw
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2020 The Qt Company Ltd.
|
** Copyright (C) 2021 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Design Studio documentation.
|
** This file is part of the Qt Design Studio documentation.
|
||||||
@@ -52,6 +52,4 @@
|
|||||||
Photoshop, you should follow the guidelines for working with
|
Photoshop, you should follow the guidelines for working with
|
||||||
Photoshop and organizing your assets.
|
Photoshop and organizing your assets.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\include qtbridge-tutorial-links.qdocinc qtpsbridge videos
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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]
|
//! [qtsketchbridge tutorials]
|
||||||
|
|
||||||
\section2 \QBSK Tutorials
|
\section2 \QBSK Tutorials
|
||||||
|
|||||||
@@ -40,7 +40,6 @@
|
|||||||
more information about \QDS. To watch a tutorial on YouTube, select it in
|
more information about \QDS. To watch a tutorial on YouTube, select it in
|
||||||
the tab.
|
the tab.
|
||||||
|
|
||||||
\include qtbridge-tutorial-links.qdocinc qtpsbridge videos
|
|
||||||
\include qtbridge-tutorial-links.qdocinc qtsketchbridge tutorials
|
\include qtbridge-tutorial-links.qdocinc qtsketchbridge tutorials
|
||||||
|
|
||||||
\section1 Examples for Downloading
|
\section1 Examples for Downloading
|
||||||
|
|||||||
@@ -106,6 +106,5 @@
|
|||||||
\uicontrol {Asset Import} dialog while importing, fix the issues in
|
\uicontrol {Asset Import} dialog while importing, fix the issues in
|
||||||
design tool and export the assets again.
|
design tool and export the assets again.
|
||||||
|
|
||||||
\include qtbridge-tutorial-links.qdocinc qtpsbridge videos
|
|
||||||
\include qtbridge-tutorial-links.qdocinc qtsketchbridge tutorials
|
\include qtbridge-tutorial-links.qdocinc qtsketchbridge tutorials
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -49,11 +49,6 @@
|
|||||||
be registered as a singleton type. This enables the use of global
|
be registered as a singleton type. This enables the use of global
|
||||||
property values in the UI.
|
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:
|
To create the necessary files:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
|
|||||||
@@ -169,6 +169,7 @@ if [ $LLVM_INSTALL_DIR ]; then
|
|||||||
clazysource="$LLVM_INSTALL_DIR"/bin/clazy-standalone
|
clazysource="$LLVM_INSTALL_DIR"/bin/clazy-standalone
|
||||||
cp -Rf "$clazysource" "$libexec_path/clang/bin/" || exit 1
|
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 -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
|
fi
|
||||||
clangbackendArgument="-executable=$libexec_path/clangbackend"
|
clangbackendArgument="-executable=$libexec_path/clangbackend"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -359,8 +359,9 @@ MimeMagicRule::MimeMagicRule(MimeMagicRule::Type theType,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeMagicRule::MimeMagicRule(const MimeMagicRule &other) :
|
MimeMagicRule::MimeMagicRule(const MimeMagicRule &other)
|
||||||
d(new MimeMagicRulePrivate(*other.d))
|
: m_subMatches(other.m_subMatches)
|
||||||
|
, d(new MimeMagicRulePrivate(*other.d))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -369,13 +370,13 @@ MimeMagicRule::~MimeMagicRule() = default;
|
|||||||
MimeMagicRule &MimeMagicRule::operator=(const MimeMagicRule &other)
|
MimeMagicRule &MimeMagicRule::operator=(const MimeMagicRule &other)
|
||||||
{
|
{
|
||||||
*d = *other.d;
|
*d = *other.d;
|
||||||
|
m_subMatches = other.m_subMatches;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MimeMagicRule::operator==(const MimeMagicRule &other) const
|
bool MimeMagicRule::operator==(const MimeMagicRule &other) const
|
||||||
{
|
{
|
||||||
return d == other.d ||
|
return (d == other.d || *d == *other.d) && m_subMatches == other.m_subMatches;
|
||||||
*d == *other.d;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeMagicRule::Type MimeMagicRule::type() const
|
MimeMagicRule::Type MimeMagicRule::type() const
|
||||||
|
|||||||
@@ -407,7 +407,7 @@ void TestTreeModel::synchronizeTestTools()
|
|||||||
if (project) {
|
if (project) {
|
||||||
const QList<Target *> &allTargets = project->targets();
|
const QList<Target *> &allTargets = project->targets();
|
||||||
auto target = allTargets.empty() ? nullptr : allTargets.first();
|
auto target = allTargets.empty() ? nullptr : allTargets.first();
|
||||||
if (QTC_GUARD(target)) {
|
if (target) {
|
||||||
auto bs = target->buildSystem();
|
auto bs = target->buildSystem();
|
||||||
for (ITestTool *testTool : newlyAdded) {
|
for (ITestTool *testTool : newlyAdded) {
|
||||||
ITestTreeItem *rootNode = testTool->rootNode();
|
ITestTreeItem *rootNode = testTool->rootNode();
|
||||||
|
|||||||
@@ -163,8 +163,9 @@ void PropertyEditorView::changeValue(const QString &name)
|
|||||||
m_locked = true;
|
m_locked = true;
|
||||||
value->setValue(m_selectedNode.id());
|
value->setValue(m_selectedNode.id());
|
||||||
m_locked = false;
|
m_locked = false;
|
||||||
if (!QmlDesigner::ModelNode::isValidId(newId))
|
QString errMsg = QmlDesigner::ModelNode::getIdValidityErrorMessage(newId);
|
||||||
Core::AsynchronousMessageBox::warning(tr("Invalid ID"), tr("%1 is an invalid ID.").arg(newId));
|
if (!errMsg.isEmpty())
|
||||||
|
Core::AsynchronousMessageBox::warning(tr("Invalid ID"), errMsg.arg(newId));
|
||||||
else
|
else
|
||||||
Core::AsynchronousMessageBox::warning(tr("Invalid ID"), tr("%1 already exists.").arg(newId));
|
Core::AsynchronousMessageBox::warning(tr("Invalid ID"), tr("%1 already exists.").arg(newId));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,6 +168,8 @@ public:
|
|||||||
void setIdWithRefactoring(const QString &id);
|
void setIdWithRefactoring(const QString &id);
|
||||||
void setIdWithoutRefactoring(const QString &id);
|
void setIdWithoutRefactoring(const QString &id);
|
||||||
static bool isValidId(const QString &id);
|
static bool isValidId(const QString &id);
|
||||||
|
static QString getIdValidityErrorMessage(const QString &id);
|
||||||
|
|
||||||
bool hasId() const;
|
bool hasId() const;
|
||||||
|
|
||||||
Model *model() const;
|
Model *model() const;
|
||||||
|
|||||||
@@ -212,6 +212,29 @@ bool ModelNode::isValidId(const QString &id)
|
|||||||
return id.isEmpty() || (!idContainsWrongLetter(id) && !idIsQmlKeyWord(id) && !isIdToAvoid(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
|
bool ModelNode::hasId() const
|
||||||
{
|
{
|
||||||
if (!isValid())
|
if (!isValid())
|
||||||
|
|||||||
Reference in New Issue
Block a user