Merge remote-tracking branch 'origin/4.15'

Change-Id: I07ac7113947cae2e7c3e51b8fa95563fe02b3dc8
This commit is contained in:
Eike Ziller
2021-06-09 09:03:41 +02:00
7 changed files with 160 additions and 13 deletions

View File

@@ -857,6 +857,7 @@ function(qtc_copy_to_builddir custom_target_name)
set(timestampFiles)
qtc_output_binary_dir(_output_binary_dir)
set(allFiles ${_arg_FILES})
foreach(srcFile ${_arg_FILES})
string(MAKE_C_IDENTIFIER "${srcFile}" destinationTimestampFilePart)
@@ -891,6 +892,7 @@ function(qtc_copy_to_builddir custom_target_name)
endif()
file(GLOB_RECURSE filesToCopy "${srcDirectory}/*")
list(APPEND allFiles ${filesToCopy})
add_custom_command(OUTPUT "${destinationTimestampFileName}"
COMMAND "${CMAKE_COMMAND}" -E copy_directory "${srcDirectory}" "${destinationDirectory}"
COMMAND "${CMAKE_COMMAND}" -E touch "${destinationTimestampFileName}"
@@ -901,7 +903,8 @@ function(qtc_copy_to_builddir custom_target_name)
)
endforeach()
add_custom_target("${custom_target_name}" ALL DEPENDS ${timestampFiles})
add_custom_target("${custom_target_name}" ALL DEPENDS ${timestampFiles}
SOURCES ${allFiles})
endfunction()
function(qtc_add_resources target resourceName)

121
dist/changes-4.15.1.md vendored Normal file
View File

@@ -0,0 +1,121 @@
Qt Creator 4.15.1
=================
Qt Creator version 4.15.1 contains bug fixes.
The most important changes are listed in this document. For a complete
list of changes, see the Git log for the Qt Creator sources that
you can check out from the public Git repository. For example:
git clone git://code.qt.io/qt-creator/qt-creator.git
git log --cherry-pick --pretty=oneline origin/v4.15.0..v4.15.1
General
-------
* Fixed crash in `Search Results` pane (QTCREATORBUG-25713)
* Fixed crash when showing tooltips after screen configuration changes
(QTCREATORBUG-25747)
* Fixed environment selection for external tools (QTCREATORBUG-25634)
Editing
-------
* Fixed crash when opening settings from tooltip (QTCREATORBUG-25623)
* Fixed hiding of function hints (QTCREATORBUG-25664)
* Fixed vanishing text marks (QTCREATORBUG-25427)
### C++
* Fixed freeze when updating project while indexing is running
### QML
* Fixed wrong warning for blocks with `case` and `let` (QTCREATORBUG-24214)
### QRC
* Fixed that `compress-algo` tags were removed (QTCREATORBUG-25706)
Projects
--------
* Fixed restoration of `Projects` mode layout (QTCREATORBUG-25551)
### Wizards
* Fixed `Fetch data asynchronously` for list and table models
### CMake
* Fixed issues when switching configurations or running CMake while parsing
(QTCREATORBUG-25588, QTCREATORBUG-25287)
* Fixed crash when cancelling scanning the project tree (QTCREATORBUG-24564)
* Fixed custom targets missing in Locator (QTCREATORBUG-25726)
Debugging
---------
### GDB
* Fixed crash (QTCREATORBUG-25745)
Test Integration
----------------
* Fixed selection of individual tests (QTCREATORBUG-25702)
### Catch2
* Fixed issues with Catch2 3.0 (QTCREATORBUG-25582)
### GoogleTest
* Fixed crash with empty test name
Platforms
---------
### Windows
* Fixed issues with `clang-cl` toolchain (QTCREATORBUG-25690,
QTCREATORBUG-25693, QTCREATORBUG-25698)
### Remote Linux
* Fixed install step (QTCREATORBUG-25359)
### Android
* Improved startup time (QTCREATORBUG-25463)
* Fixed `Checking pending licenses` (QTCREATORBUG-25667)
### MCU
* Added support for Cypress Traveo II (UL-4242)
* Fixed CMake generator for GHS compiler (UL-4247)
Credits for these changes go to:
--------------------------------
Alessandro Portale
André Pönitz
Christiaan Janssen
Christian Kandeler
Christian Stenger
Cristian Adam
David Schulz
Eike Ziller
Erik Verbruggen
Ivan Komissarov
Jaroslaw Kobus
Knud Dollereder
Leena Miettinen
Marco Bubke
Michael Winkelmann
Miikka Heikkinen
Mikhail Khachayants
Mitch Curtis
Tapani Mattila
Thiago Macieira
Thomas Hartmann
Tim Jenssen

View File

@@ -312,8 +312,8 @@ void FileApiReader::endState(const QFileInfo &replyFi)
void FileApiReader::makeBackupConfiguration(bool store)
{
FilePath reply = m_parameters.buildDirectory.pathAppended(".cmake/api/v1/reply");
FilePath replyPrev = m_parameters.buildDirectory.pathAppended(".cmake/api/v1/reply.prev");
FilePath reply = m_parameters.workDirectory.pathAppended(".cmake/api/v1/reply");
FilePath replyPrev = m_parameters.workDirectory.pathAppended(".cmake/api/v1/reply.prev");
if (!store)
std::swap(reply, replyPrev);
@@ -327,8 +327,8 @@ void FileApiReader::makeBackupConfiguration(bool store)
}
FilePath cmakeCacheTxt = m_parameters.buildDirectory.pathAppended("CMakeCache.txt");
FilePath cmakeCacheTxtPrev = m_parameters.buildDirectory.pathAppended("CMakeCache.txt.prev");
FilePath cmakeCacheTxt = m_parameters.workDirectory.pathAppended("CMakeCache.txt");
FilePath cmakeCacheTxtPrev = m_parameters.workDirectory.pathAppended("CMakeCache.txt.prev");
if (!store)
std::swap(cmakeCacheTxt, cmakeCacheTxtPrev);
@@ -371,6 +371,10 @@ void FileApiReader::startCMakeState(const QStringList &configurationArguments)
connect(m_cmakeProcess.get(), &CMakeProcess::finished, this, &FileApiReader::cmakeFinishedState);
qCDebug(cmakeFileApiMode) << ">>>>>> Running cmake with arguments:" << configurationArguments;
// Reset watcher:
m_watcher.removeFiles(m_watcher.files());
m_watcher.removeDirectories(m_watcher.directories());
makeBackupConfiguration(true);
writeConfigurationIntoBuildDirectory(configurationArguments);
m_cmakeProcess->run(m_parameters, configurationArguments);
@@ -386,6 +390,8 @@ void FileApiReader::cmakeFinishedState()
if (m_lastCMakeExitCode != 0)
makeBackupConfiguration(false);
FileApiParser::setupCMakeFileApi(m_parameters.workDirectory, m_watcher);
endState(FileApiParser::scanForCMakeReplyFile(m_parameters.workDirectory));
}

View File

@@ -32,6 +32,8 @@
#include <coreplugin/icore.h>
#include <projectexplorer/task.h>
#include <projectexplorer/taskhub.h>
#include <projectexplorer/project.h>
#include <projectexplorer/session.h>
#include <utils/fileutils.h>
#include <utils/outputformatter.h>
@@ -80,8 +82,13 @@ AssetExportDialog::AssetExportDialog(const Utils::FilePath &exportPath,
{
m_ui->setupUi(this);
m_ui->exportPath->setFilePath(exportPath);
m_ui->exportPath->setPromptDialogTitle(tr("Choose Export Path"));
m_ui->exportPath->setExpectedKind(Utils::PathChooser::Kind::SaveFile);
m_ui->exportPath->setFilePath(
exportPath.pathAppended(
ProjectExplorer::SessionManager::startupProject()->displayName() + ".metadata"
));
m_ui->exportPath->setPromptDialogTitle(tr("Choose Export File"));
m_ui->exportPath->setPromptDialogFilter(tr("Metadata file (*.metadata)"));
m_ui->exportPath->lineEdit()->setReadOnly(true);
m_ui->exportPath->addButton(tr("Open"), this, [this]() {
Core::FileUtils::showInGraphicalShell(Core::ICore::mainWindow(), m_ui->exportPath->path());
@@ -92,6 +99,7 @@ AssetExportDialog::AssetExportDialog(const Utils::FilePath &exportPath,
m_ui->advancedOptions->setWidget(optionsWidget);
auto optionsLayout = new QHBoxLayout(optionsWidget);
optionsLayout->setContentsMargins(8, 8, 8, 8);
m_exportAssetsCheck = new QCheckBox(tr("Export assets"), this);
m_exportAssetsCheck->setChecked(true);
optionsLayout->addWidget(m_exportAssetsCheck);
@@ -153,7 +161,12 @@ void AssetExportDialog::onExport()
TaskHub::clearTasks(Constants::TASK_CATEGORY_ASSET_EXPORT);
m_exportLogs->clear();
m_assetExporter.exportQml(m_filePathModel.files(), m_ui->exportPath->filePath(),
Utils::FilePath selectedPath = m_ui->exportPath->filePath();
Utils::FilePath exportPath = m_perComponentExportCheck->isChecked() ?
(selectedPath.isDir() ? selectedPath : selectedPath.parentDir()) :
selectedPath;
m_assetExporter.exportQml(m_filePathModel.files(), exportPath,
m_exportAssetsCheck->isChecked(),
m_perComponentExportCheck->isChecked());
}

View File

@@ -123,7 +123,9 @@ void AssetExporter::exportQml(const Utils::FilePaths &qmlFiles, const Utils::Fil
{
m_perComponentExport = perComponentExport;
ExportNotification::addInfo(tr("Export root directory: %1.\nExporting assets: %2")
.arg(exportPath.toUserOutput())
.arg(exportPath.isDir()
? exportPath.toUserOutput()
: exportPath.parentDir().toUserOutput())
.arg(exportAssets? tr("Yes") : tr("No")));
if (m_perComponentExport)
@@ -134,7 +136,8 @@ void AssetExporter::exportQml(const Utils::FilePaths &qmlFiles, const Utils::Fil
m_totalFileCount = m_exportFiles.count();
m_components.clear();
m_componentUuidCache.clear();
m_exportPath = exportPath;
m_exportPath = exportPath.isDir() ? exportPath : exportPath.parentDir();
m_exportFile = exportPath.fileName();
m_currentState.change(ParsingState::Parsing);
if (exportAssets)
m_assetDumper = make_unique<AssetDumper>();
@@ -437,7 +440,7 @@ void AssetExporter::writeMetadata() const
QJsonArray artboards;
std::transform(m_components.cbegin(), m_components.cend(), back_inserter(artboards),
[](const unique_ptr<Component> &c) {return c->json(); });
writeFile(m_exportPath.pathAppended(projectName + ".metadata"), artboards);
writeFile(m_exportPath.pathAppended(m_exportFile), artboards);
}
notifyProgress(1.0);
ExportNotification::addInfo(tr("Export finished."));

View File

@@ -112,6 +112,7 @@ private:
Utils::FilePaths m_exportFiles;
unsigned int m_totalFileCount = 0;
Utils::FilePath m_exportPath;
QString m_exportFile;
bool m_perComponentExport = false;
std::vector<std::unique_ptr<Component>> m_components;
QHash<QString, QString> m_componentUuidCache;

View File

@@ -2046,7 +2046,7 @@ void FormEditorFlowDecisionItem::updateGeometry()
QRectF textRect(0, 0, 100, 20);
Qt::Corner corner = Qt::TopLeftCorner;
Qt::Corner corner = Qt::TopRightCorner;
if (qmlItemNode().modelNode().hasAuxiliaryData("dialogLabelPosition"))
corner = qmlItemNode().modelNode().auxiliaryData("dialogLabelPosition").value<Qt::Corner>();
@@ -2191,7 +2191,7 @@ void FormEditorFlowDecisionItem::paint(QPainter *painter, const QStyleOptionGrap
QRectF textRect(0, 0, 100, 20);
Qt::Corner corner = Qt::TopLeftCorner;
Qt::Corner corner = Qt::TopRightCorner;
if (qmlItemNode().modelNode().hasAuxiliaryData("dialogLabelPosition"))
corner = qmlItemNode().modelNode().auxiliaryData("dialogLabelPosition").value<Qt::Corner>();