summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libs/3rdparty/sqlite/config.h1
-rw-r--r--src/libs/languageserverprotocol/completion.cpp5
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp13
-rw-r--r--src/plugins/cmakeprojectmanager/fileapireader.cpp54
-rw-r--r--src/plugins/cmakeprojectmanager/fileapireader.h4
-rw-r--r--src/plugins/mcusupport/mcusupportsdk.cpp8
-rw-r--r--src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp3
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/itemfiltermodel.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp6
-rw-r--r--src/share/3rdparty/package-manager/auto-setup.cmake2
10 files changed, 63 insertions, 35 deletions
diff --git a/src/libs/3rdparty/sqlite/config.h b/src/libs/3rdparty/sqlite/config.h
index 19757d3f8e..d386f34a5a 100644
--- a/src/libs/3rdparty/sqlite/config.h
+++ b/src/libs/3rdparty/sqlite/config.h
@@ -82,3 +82,4 @@
#define SQLITE_ENABLE_PREUPDATE_HOOK 1
#define SQLITE_LIKE_DOESNT_MATCH_BLOBS 1
#define SQLITE_OMIT_AUTOINIT 1
+#define SQLITE_DEFAULT_CACHE_SIZE -100000
diff --git a/src/libs/languageserverprotocol/completion.cpp b/src/libs/languageserverprotocol/completion.cpp
index 70c813a4ea..f4e1295d75 100644
--- a/src/libs/languageserverprotocol/completion.cpp
+++ b/src/libs/languageserverprotocol/completion.cpp
@@ -45,8 +45,9 @@ Utils::optional<MarkupOrString> CompletionItem::documentation() const
Utils::optional<CompletionItem::InsertTextFormat> CompletionItem::insertTextFormat() const
{
Utils::optional<int> value = optionalValue<int>(insertTextFormatKey);
- return value.has_value() ? Utils::nullopt
- : Utils::make_optional(CompletionItem::InsertTextFormat(value.value()));
+ return value.has_value()
+ ? Utils::make_optional(CompletionItem::InsertTextFormat(value.value()))
+ : Utils::nullopt;
}
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
index e4ae7e2dc9..8fb3a7b45f 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
@@ -259,11 +259,11 @@ void CMakeBuildSystem::triggerParsing()
if (m_waitingForScan) {
qCDebug(cmakeBuildSystemLog) << "Starting TreeScanner";
QTC_CHECK(m_treeScanner.isFinished());
- m_treeScanner.asyncScanForFiles(projectDirectory());
- Core::ProgressManager::addTask(m_treeScanner.future(),
- tr("Scan \"%1\" project tree")
- .arg(project()->displayName()),
- "CMake.Scan.Tree");
+ if (m_treeScanner.asyncScanForFiles(projectDirectory()))
+ Core::ProgressManager::addTask(m_treeScanner.future(),
+ tr("Scan \"%1\" project tree")
+ .arg(project()->displayName()),
+ "CMake.Scan.Tree");
}
QTC_ASSERT(m_parameters.isValid(), return );
@@ -920,7 +920,8 @@ FilePath CMakeBuildSystem::workDirectory(const BuildDirParameters &parameters)
void CMakeBuildSystem::stopParsingAndClearState()
{
- qCDebug(cmakeBuildSystemLog) << "stopping parsing run!";
+ qCDebug(cmakeBuildSystemLog) << cmakeBuildConfiguration()->displayName()
+ << "stopping parsing run!";
m_reader.stop();
m_reader.resetData();
}
diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp
index ae3725e4a8..2b3a086b1e 100644
--- a/src/plugins/cmakeprojectmanager/fileapireader.cpp
+++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp
@@ -165,6 +165,13 @@ void FileApiReader::stop()
if (m_cmakeProcess)
disconnect(m_cmakeProcess.get(), nullptr, this, nullptr);
m_cmakeProcess.reset();
+
+ if (m_future) {
+ m_future->cancel();
+ m_future->waitForFinished();
+ }
+ m_future = {};
+ m_isParsing = false;
}
bool FileApiReader::isParsing() const
@@ -259,7 +266,7 @@ void FileApiReader::endState(const QFileInfo &replyFi)
m_future = runAsync(ProjectExplorerPlugin::sharedThreadPool(),
[replyFi, sourceDirectory, buildDirectory, topCmakeFile, cmakeBuildType]() {
- auto result = std::make_unique<FileApiQtcData>();
+ auto result = std::make_shared<FileApiQtcData>();
FileApiData data = FileApiParser::parseData(replyFi, cmakeBuildType, result->errorMessage);
if (!result->errorMessage.isEmpty()) {
qWarning() << result->errorMessage;
@@ -274,29 +281,30 @@ void FileApiReader::endState(const QFileInfo &replyFi)
qWarning() << result->errorMessage;
}
- return result.release();
+ return result;
});
- onFinished(m_future.value(), this, [this](const QFuture<FileApiQtcData *> &f) {
- std::unique_ptr<FileApiQtcData> value(f.result()); // Adopt the pointer again:-)
-
- m_future = {};
- m_isParsing = false;
- m_cache = std::move(value->cache);
- m_cmakeFiles = std::move(value->cmakeFiles);
- m_buildTargets = std::move(value->buildTargets);
- m_projectParts = std::move(value->projectParts);
- m_rootProjectNode = std::move(value->rootProjectNode);
- m_knownHeaders = std::move(value->knownHeaders);
- m_ctestPath = std::move(value->ctestPath);
- m_isMultiConfig = std::move(value->isMultiConfig);
- m_usesAllCapsTargets = std::move(value->usesAllCapsTargets);
-
- if (value->errorMessage.isEmpty()) {
- emit this->dataAvailable();
- } else {
- emit this->errorOccurred(value->errorMessage);
- }
- });
+ onResultReady(m_future.value(),
+ this,
+ [this, topCmakeFile, sourceDirectory, buildDirectory](
+ const std::shared_ptr<FileApiQtcData> &value) {
+ m_isParsing = false;
+ m_cache = std::move(value->cache);
+ m_cmakeFiles = std::move(value->cmakeFiles);
+ m_buildTargets = std::move(value->buildTargets);
+ m_projectParts = std::move(value->projectParts);
+ m_rootProjectNode = std::move(value->rootProjectNode);
+ m_knownHeaders = std::move(value->knownHeaders);
+ m_ctestPath = std::move(value->ctestPath);
+ m_isMultiConfig = std::move(value->isMultiConfig);
+ m_usesAllCapsTargets = std::move(value->usesAllCapsTargets);
+
+ if (value->errorMessage.isEmpty()) {
+ emit this->dataAvailable();
+ } else {
+ emit this->errorOccurred(value->errorMessage);
+ }
+ m_future = {};
+ });
}
void FileApiReader::makeBackupConfiguration(bool store)
diff --git a/src/plugins/cmakeprojectmanager/fileapireader.h b/src/plugins/cmakeprojectmanager/fileapireader.h
index 25d5e1af1b..505f5fd506 100644
--- a/src/plugins/cmakeprojectmanager/fileapireader.h
+++ b/src/plugins/cmakeprojectmanager/fileapireader.h
@@ -38,6 +38,8 @@
#include <QObject>
#include <QDateTime>
+#include <memory>
+
namespace ProjectExplorer {
class ProjectNode;
}
@@ -105,7 +107,7 @@ private:
bool m_usesAllCapsTargets = false;
int m_lastCMakeExitCode = 0;
- Utils::optional<QFuture<FileApiQtcData *>> m_future;
+ Utils::optional<QFuture<std::shared_ptr<FileApiQtcData>>> m_future;
// Update related:
bool m_isParsing = false;
diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp
index 52681a5beb..8cd34c0abf 100644
--- a/src/plugins/mcusupport/mcusupportsdk.cpp
+++ b/src/plugins/mcusupport/mcusupportsdk.cpp
@@ -241,11 +241,15 @@ static McuPackage *createRGLPackage()
static McuPackage *createStm32CubeProgrammerPackage()
{
QString defaultPath = QDir::homePath();
+ const QString cubePath = "/STMicroelectronics/STM32Cube/STM32CubeProgrammer/";
if (Utils::HostOsInfo::isWindowsHost()) {
- const QString programPath =
- findInProgramFiles("/STMicroelectronics/STM32Cube/STM32CubeProgrammer/");
+ const QString programPath = findInProgramFiles(cubePath);
if (!programPath.isEmpty())
defaultPath = programPath;
+ } else {
+ const QString programPath = QDir::homePath() + cubePath;
+ if (QFileInfo::exists(programPath))
+ defaultPath = programPath;
}
auto result = new McuPackage(
McuPackage::tr("STM32CubeProgrammer"),
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp
index 5863e6230f..8797f90dc2 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp
@@ -576,6 +576,9 @@ void FormEditorWidget::showEvent(QShowEvent *event)
m_formEditorView->cleanupToolsAndScene();
m_formEditorView->setupFormEditorWidget();
m_formEditorView->resetToSelectionTool();
+ QmlItemNode rootNode = m_formEditorView->rootModelNode();
+ if (rootNode.isValid())
+ setRootItemRect(rootNode.instanceBoundingRect());
}
}
diff --git a/src/plugins/qmldesigner/components/propertyeditor/itemfiltermodel.cpp b/src/plugins/qmldesigner/components/propertyeditor/itemfiltermodel.cpp
index fab8cde66e..8e65559fce 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/itemfiltermodel.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/itemfiltermodel.cpp
@@ -92,7 +92,7 @@ QVariant ItemFilterModel::modelNodeBackend() const
void ItemFilterModel::setupModel()
{
- if (!m_modelNode.isValid())
+ if (!m_modelNode.isValid() || !m_modelNode.view()->isAttached())
return;
m_lock = true;
diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
index 1d8aac500c..7eacf17197 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
@@ -1476,6 +1476,12 @@ QVariant NodeMetaInfo::propertyCastedValue(const PropertyName &propertyName, con
} else if (typeName == "alias") {
// TODO: The QML compiler resolves the alias type. We probably should do the same.
return variant;
+ } else if (typeName == "<cpp>.double") {
+ return variant.toDouble();
+ } else if (typeName == "<cpp>.float") {
+ return variant.toFloat();
+ } else if (typeName == "<cpp>.int") {
+ return variant.toInt();
} else if (copyVariant.convert(typeId)) {
return copyVariant;
}
diff --git a/src/share/3rdparty/package-manager/auto-setup.cmake b/src/share/3rdparty/package-manager/auto-setup.cmake
index 56da6eb3dd..e342c32e5f 100644
--- a/src/share/3rdparty/package-manager/auto-setup.cmake
+++ b/src/share/3rdparty/package-manager/auto-setup.cmake
@@ -79,6 +79,8 @@ if (conanfile_txt AND NOT QT_CREATOR_SKIP_CONAN_SETUP)
execute_process(COMMAND ${CMAKE_COMMAND}
-S "${CMAKE_BINARY_DIR}/conan-dependencies/"
-B "${CMAKE_BINARY_DIR}/conan-dependencies/build"
+ -C "${CMAKE_BINARY_DIR}/qtcsettings.cmake"
+ -D "CMAKE_TOOLCHAIN_FILE=${CMAKE_BINARY_DIR}/conan-dependencies/toolchain.cmake"
-G ${CMAKE_GENERATOR}
-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
RESULT_VARIABLE result