Merge remote-tracking branch 'origin/4.12'

Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: Ic39945a0e3e140a9467b4b4f572929257ff3a324
This commit is contained in:
Eike Ziller
2020-05-26 09:00:05 +02:00
13 changed files with 65 additions and 72 deletions

View File

@@ -460,7 +460,7 @@
\list 1 \list 1
\li Perf events may be globally disabled on your system. The \li Perf events may be globally disabled on your system. The
preconfigured Boot to Qt images come with perf events enabled. For preconfigured Boot2Qt images come with perf events enabled. For
a custom configuration you need to make sure that the file a custom configuration you need to make sure that the file
\c {/proc/sys/kernel/perf_event_paranoid} contains a value smaller \c {/proc/sys/kernel/perf_event_paranoid} contains a value smaller
than \c {2}. For maximum flexibility in recording traces you can than \c {2}. For maximum flexibility in recording traces you can

View File

@@ -114,7 +114,7 @@
You can use the experimental Qt Application Manager plugin You can use the experimental Qt Application Manager plugin
(commercial only) to deploy, run, and debug applications on the (commercial only) to deploy, run, and debug applications on the
local Linux PC, remote generic SSH Linux targets, or local Linux PC, remote generic SSH Linux targets, or
\l{Embedded Devices}{embedded devices}. \l{Boot2Qt Devices}{Boot2Qt devices}.
\endlist \endlist
\endif \endif
*/ */

View File

@@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2019 The Qt Company Ltd. ** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/ ** Contact: https://www.qt.io/licensing/
** **
** This file is part of the Qt Creator documentation. ** This file is part of the Qt Creator documentation.
@@ -31,30 +31,21 @@
You can develop applications for the following platforms: You can develop applications for the following platforms:
\list \list
\li Desktop \li Desktop
\li \l{Connecting Android Devices}{Android}
\li Android \li \l{Connecting Bare Metal Devices}{Bare Metal}
\li Boot2Qt
\li Embedded \li \l{Connecting Embedded Linux Devices}{Generic Remote Linux}
\li \l{Connecting iOS Devices}{iOS}
\li Generic remote Linux \li \l{Connecting MCUs}{Microcontroller Units (MCU)} (commercial only)
\li \l{Connecting QNX Devices}{QNX}
\li iOS \li \l{Qt for UWP}{Universal Windows Platform (UWP)}
\li \l{Building Applications for the Web}{WebAssembly}
\li Microcontroller Units (MCU)
\li QNX
\li Universal Windows Platform (UWP)
\li WebAssembly
\endlist \endlist
\section2 Embedded Devices \section2 Boot2Qt Devices
The Boot to Qt stack can be made to run on a variety of hardware. For The Boot2Qt stack can be made to run on a variety of hardware. For
Qt for Device Creation license holders, tooling is provided to customize the Qt for Device Creation license holders, tooling is provided to customize the
contents of the stack as well as to take it into desired production contents of the stack as well as to take it into desired production
hardware. hardware.
@@ -65,8 +56,8 @@
\l{https://doc.qt.io/QtForDeviceCreation/index.html}{Qt for Device Creation} \l{https://doc.qt.io/QtForDeviceCreation/index.html}{Qt for Device Creation}
documentation. documentation.
\note Since \QC 4.9, only Boot to Qt version 5.9 and later are supported. \note Since \QC 4.9, only Boot2Qt version 5.9 and later are supported.
To develop for earlier Boot to Qt versions, use \QC 4.8. To develop for earlier Boot2Qt versions, use \QC 4.8.
\section2 Mobile Devices \section2 Mobile Devices
@@ -99,8 +90,8 @@
\li \li
\row \row
\li MCUs \li MCUs
\li \image ok \li
\li \image ok \li
\li \image ok \li \image ok
\row \row
\li QNX \li QNX

View File

@@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2019 The Qt Company Ltd. ** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/ ** Contact: https://www.qt.io/licensing/
** **
** This file is part of the Qt Creator documentation. ** This file is part of the Qt Creator documentation.
@@ -47,29 +47,20 @@
devices: devices:
\list \list
\li \l{Connecting Android Devices}{Android Device}
\li Android Device \li \l{Connecting Bare Metal Devices}{Bare Metal Device}
\li \l{https://doc.qt.io/QtForDeviceCreation/b2qt-installation-guides.html}
\li Bare Metal Device {Boot2Qt Device} (commercial only)
\li \l{Emulator}{Boot2Qt Emulator Device} (commercial only)
\li Boot2Qt Device (commercial only) \li \l{Connecting Embedded Linux Devices}{Generic Remote Linux Device}
\li \l{Connecting iOS Devices}{iOS Device}
\li \l {Emulator}{Boot2Qt Emulator Device} (commercial only)
\li Generic Linux Device
\li iOS Device
\li iOS Simulator \li iOS Simulator
\li \l{Connecting MCUs}{MCU Device} (commercial only)
\li QNX Device \li \l{Connecting QNX Devices}{QNX Device}
\li \l{Building Applications for the Web}{WebAssembly Runtime}
\li Windows Phone \li \l{Qt for UWP}{Windows Phone}
\li Windows Phone Emulator \li Windows Phone Emulator
\li Windows Runtime (local) \li Windows Runtime (local)
\endlist \endlist
\section1 Filtering Kit Settings \section1 Filtering Kit Settings

View File

@@ -37,7 +37,8 @@ function llvmConfig(hostOS, qtcFunctions)
{ {
var llvmInstallDirFromEnv = Environment.getEnv("LLVM_INSTALL_DIR") var llvmInstallDirFromEnv = Environment.getEnv("LLVM_INSTALL_DIR")
var llvmConfigVariants = [ var llvmConfigVariants = [
"llvm-config", "llvm-config-7", "llvm-config-8", "llvm-config-9" // CLANG-UPGRADE-CHECK: Adapt once we require a new minimum version.
"llvm-config", "llvm-config-8", "llvm-config-9", "llvm-config-10", "llvm-config-11", "llvm-config-12"
]; ];
// Prefer llvm-config* from LLVM_INSTALL_DIR // Prefer llvm-config* from LLVM_INSTALL_DIR

View File

@@ -39,7 +39,7 @@ try:
# we do not need to hard fail in cases of partial python installation # we do not need to hard fail in cases of partial python installation
# that will never use this. # that will never use this.
import json import json
except ModuleNotFoundError: except:
print("Python module json not found. " print("Python module json not found. "
"Native combined debugging might not work.") "Native combined debugging might not work.")
pass pass

View File

@@ -448,7 +448,7 @@ void ClangToolRunWorker::finalize()
{ {
const QString toolName = tool()->name(); const QString toolName = tool()->name();
if (m_filesNotAnalyzed.size() != 0) { if (m_filesNotAnalyzed.size() != 0) {
appendMessage(tr("Error: Failed to analyze %1 files.").arg(m_filesAnalyzed.size()), appendMessage(tr("Error: Failed to analyze %1 files.").arg(m_filesNotAnalyzed.size()),
ErrorMessageFormat); ErrorMessageFormat);
Target *target = runControl()->target(); Target *target = runControl()->target();
if (target && target->activeBuildConfiguration() && !target->activeBuildConfiguration()->buildDirectory().exists() if (target && target->activeBuildConfiguration() && !target->activeBuildConfiguration()->buildDirectory().exists()

View File

@@ -201,7 +201,6 @@ RawProjectPart makeRawProjectPart(const Utils::FilePath &projectFile,
kitInfo.cToolChain = toolchainFromFlags(kit, kitInfo.cToolChain = toolchainFromFlags(kit,
originalFlags, originalFlags,
ProjectExplorer::Constants::C_LANGUAGE_ID); ProjectExplorer::Constants::C_LANGUAGE_ID);
ToolChainKitAspect::setToolChain(kit, kitInfo.cToolChain);
} }
addDriverModeFlagIfNeeded(kitInfo.cToolChain, flags, originalFlags); addDriverModeFlagIfNeeded(kitInfo.cToolChain, flags, originalFlags);
rpp.setFlagsForC({kitInfo.cToolChain, flags}); rpp.setFlagsForC({kitInfo.cToolChain, flags});
@@ -210,7 +209,6 @@ RawProjectPart makeRawProjectPart(const Utils::FilePath &projectFile,
kitInfo.cxxToolChain = toolchainFromFlags(kit, kitInfo.cxxToolChain = toolchainFromFlags(kit,
originalFlags, originalFlags,
ProjectExplorer::Constants::CXX_LANGUAGE_ID); ProjectExplorer::Constants::CXX_LANGUAGE_ID);
ToolChainKitAspect::setToolChain(kit, kitInfo.cxxToolChain);
} }
addDriverModeFlagIfNeeded(kitInfo.cxxToolChain, flags, originalFlags); addDriverModeFlagIfNeeded(kitInfo.cxxToolChain, flags, originalFlags);
rpp.setFlagsForCxx({kitInfo.cxxToolChain, flags}); rpp.setFlagsForCxx({kitInfo.cxxToolChain, flags});

View File

@@ -102,7 +102,7 @@ QList<LocatorFilterEntry> FileSystemFilter::matchesFor(QFutureInterface<LocatorF
const QStringList files = dirInfo.entryList(fileFilter, const QStringList files = dirInfo.entryList(fileFilter,
QDir::Name|QDir::IgnoreCase|QDir::LocaleAware); QDir::Name|QDir::IgnoreCase|QDir::LocaleAware);
const QRegularExpression regExp = createRegExp(entryFileName, caseSensitivity_); QRegularExpression regExp = createRegExp(entryFileName, caseSensitivity_);
if (!regExp.isValid()) if (!regExp.isValid())
return {}; return {};
@@ -122,7 +122,10 @@ QList<LocatorFilterEntry> FileSystemFilter::matchesFor(QFutureInterface<LocatorF
} }
} }
// file names can match with +linenumber or :linenumber // file names can match with +linenumber or :linenumber
const EditorManager::FilePathInfo fp = EditorManager::splitLineAndColumnNumber(entry); const EditorManager::FilePathInfo fp = EditorManager::splitLineAndColumnNumber(entryFileName);
regExp = createRegExp(fp.filePath, caseSensitivity_);
if (!regExp.isValid())
return {};
const QString fileName = QFileInfo(fp.filePath).fileName(); const QString fileName = QFileInfo(fp.filePath).fileName();
for (const QString &file : files) { for (const QString &file : files) {
if (future.isCanceled()) if (future.isCanceled())

View File

@@ -324,6 +324,7 @@ void CppFileSettingsWidget::apply()
rc.sourceSuffix = m_ui.sourceSuffixComboBox->currentText(); rc.sourceSuffix = m_ui.sourceSuffixComboBox->currentText();
rc.headerSearchPaths = trimmedPaths(m_ui.headerSearchPathsEdit->text()); rc.headerSearchPaths = trimmedPaths(m_ui.headerSearchPathsEdit->text());
rc.sourceSearchPaths = trimmedPaths(m_ui.sourceSearchPathsEdit->text()); rc.sourceSearchPaths = trimmedPaths(m_ui.sourceSearchPathsEdit->text());
rc.licenseTemplatePath = licenseTemplatePath();
if (rc == *m_settings) if (rc == *m_settings)
return; return;

View File

@@ -150,6 +150,11 @@ public:
return fn; return fn;
} }
QString fullRef(bool includePrefix = false) const
{
return fullName(includePrefix).join('/');
}
void insert(const QStringList &path, BranchNode *n) void insert(const QStringList &path, BranchNode *n)
{ {
BranchNode *current = this; BranchNode *current = this;
@@ -186,7 +191,7 @@ public:
} }
return names; return names;
} }
return {fullName().join('/')}; return {fullRef()};
} }
int rowOf(BranchNode *node) int rowOf(BranchNode *node)
@@ -346,7 +351,7 @@ QVariant BranchModel::data(const QModelIndex &index, int role) const
return res; return res;
} }
case Qt::EditRole: case Qt::EditRole:
return index.column() == 0 ? node->fullName().join('/') : QVariant(); return index.column() == 0 ? node->fullRef() : QVariant();
case Qt::ToolTipRole: case Qt::ToolTipRole:
if (!node->isLeaf()) if (!node->isLeaf())
return QVariant(); return QVariant();
@@ -381,7 +386,7 @@ bool BranchModel::setData(const QModelIndex &index, const QVariant &value, int r
if (newName.isEmpty()) if (newName.isEmpty())
return false; return false;
const QString oldName = node->fullName().join('/'); const QString oldName = node->fullRef();
if (oldName == newName) if (oldName == newName)
return false; return false;
@@ -525,7 +530,7 @@ QString BranchModel::fullName(const QModelIndex &idx, bool includePrefix) const
return QString(); return QString();
if (node == d->headNode) if (node == d->headNode)
return QString("HEAD"); return QString("HEAD");
return node->fullName(includePrefix).join('/'); return node->fullRef(includePrefix);
} }
QStringList BranchModel::localBranchNames() const QStringList BranchModel::localBranchNames() const
@@ -901,7 +906,8 @@ void BranchModel::updateUpstreamStatus(BranchNode *node)
{ {
if (node->tracking.isEmpty()) if (node->tracking.isEmpty())
return; return;
VcsCommand *command = d->client->asyncUpstreamStatus(d->workingDirectory, node->name, node->tracking); VcsCommand *command = d->client->asyncUpstreamStatus(
d->workingDirectory, node->fullRef(), node->tracking);
QObject::connect(command, &VcsCommand::stdOutText, node, [this, node](const QString &text) { QObject::connect(command, &VcsCommand::stdOutText, node, [this, node](const QString &text) {
const QStringList split = text.trimmed().split('\t'); const QStringList split = text.trimmed().split('\t');
QTC_ASSERT(split.size() == 2, return); QTC_ASSERT(split.size() == 2, return);

View File

@@ -134,7 +134,7 @@ LocalQmlPreviewSupport::LocalQmlPreviewSupport(ProjectExplorer::RunControl *runC
const auto currentTarget = runControl->target(); const auto currentTarget = runControl->target();
const auto *qmlBuildSystem = qobject_cast<QmlProjectManager::QmlBuildSystem *>(currentTarget->buildSystem()); const auto *qmlBuildSystem = qobject_cast<QmlProjectManager::QmlBuildSystem *>(currentTarget->buildSystem());
const auto aspect = runControl->aspect<QmlProjectManager::QmlMainFileAspect>(); if (const auto aspect = runControl->aspect<QmlProjectManager::QmlMainFileAspect>()) {
const QString mainScript = aspect->mainScript(); const QString mainScript = aspect->mainScript();
const QString currentFile = aspect->currentFile(); const QString currentFile = aspect->currentFile();
@@ -150,6 +150,7 @@ LocalQmlPreviewSupport::LocalQmlPreviewSupport(ProjectExplorer::RunControl *runC
commandLine.addArg(currentFile); commandLine.addArg(currentFile);
runnable.setCommandLine(commandLine); runnable.setCommandLine(commandLine);
} }
}
Utils::QtcProcess::addArg(&runnable.commandLineArguments, Utils::QtcProcess::addArg(&runnable.commandLineArguments,
QmlDebug::qmlDebugLocalArguments(QmlDebug::QmlPreviewServices, QmlDebug::qmlDebugLocalArguments(QmlDebug::QmlPreviewServices,

View File

@@ -51,6 +51,7 @@ static CommandLine emrunCommand(Target *target, const QString &browser, const QS
"--browser", browser, "--browser", browser,
"--port", port, "--port", port,
"--no_emrun_detect", "--no_emrun_detect",
"--serve_after_close",
html.toString() html.toString()
}); });
} }