summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2023-05-05 10:39:47 +0200
committerEike Ziller <eike.ziller@qt.io>2023-05-05 10:39:47 +0200
commit7724f8653f9c0e5625179ecda8a545cb30f4e1b4 (patch)
treecbe5b15de32a6df7012bafb6f4e853ab9c21c676 /src
parent15193d3250834f85d90b790c0c40632e6de65033 (diff)
parentb083a4d55efbf9f6558034c0ce4efe31062e0e5b (diff)
downloadqt-creator-7724f8653f9c0e5625179ecda8a545cb30f4e1b4.tar.gz
Merge remote-tracking branch 'origin/10.0'
Change-Id: I7a3925ad8e4f97461b64a70217102ed900430253
Diffstat (limited to 'src')
-rw-r--r--src/libs/utils/fileinprojectfinder.cpp5
-rw-r--r--src/plugins/clangformat/clangformatutils.cpp43
-rw-r--r--src/plugins/clangformat/tests/clangformat-test.cpp10
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp4
-rw-r--r--src/plugins/cmakeprojectmanager/presetsparser.cpp2
-rw-r--r--src/plugins/coreplugin/locator/locatorsettingspage.cpp4
-rw-r--r--src/plugins/cppeditor/cppeditorwidget.cpp20
-rw-r--r--src/plugins/cppeditor/cppquickfixassistant.cpp3
-rw-r--r--src/plugins/genericprojectmanager/genericproject.cpp5
-rw-r--r--src/plugins/genericprojectmanager/genericprojectwizard.cpp2
-rw-r--r--src/plugins/mcusupport/mcukitmanager.cpp24
-rw-r--r--src/plugins/qmljseditor/qmljseditor.cpp2
-rw-r--r--src/plugins/texteditor/codeassist/codeassistant.cpp9
m---------src/shared/qbs0
14 files changed, 90 insertions, 43 deletions
diff --git a/src/libs/utils/fileinprojectfinder.cpp b/src/libs/utils/fileinprojectfinder.cpp
index f92cb70fa7..6ee3c34bec 100644
--- a/src/libs/utils/fileinprojectfinder.cpp
+++ b/src/libs/utils/fileinprojectfinder.cpp
@@ -248,7 +248,10 @@ bool FileInProjectFinder::findFileOrDirectory(const FilePath &originalPath, File
}
}
while (prefixToIgnore != -1) {
- FilePath candidate = originalPath.resolvePath(m_projectDir);
+ QString candidateString = originalPath.toFSPathString();
+ candidateString.remove(0, prefixToIgnore);
+ candidateString.prepend(m_projectDir.toString());
+ const FilePath candidate = FilePath::fromString(candidateString);
const int matchLength = origLength - prefixToIgnore;
// FIXME: This might be a worse match than what we find later.
if (checkPath(candidate, matchLength, fileHandler, directoryHandler)) {
diff --git a/src/plugins/clangformat/clangformatutils.cpp b/src/plugins/clangformat/clangformatutils.cpp
index 1b09a9d3a1..3ae9301433 100644
--- a/src/plugins/clangformat/clangformatutils.cpp
+++ b/src/plugins/clangformat/clangformatutils.cpp
@@ -171,9 +171,7 @@ clang::format::FormatStyle qtcStyle()
style.SpacesInCStyleCastParentheses = false;
style.SpacesInParentheses = false;
style.SpacesInSquareBrackets = false;
- style.StatementMacros.emplace_back("Q_OBJECT");
- style.StatementMacros.emplace_back("QT_BEGIN_NAMESPACE");
- style.StatementMacros.emplace_back("QT_END_NAMESPACE");
+ addQtcStatementMacros(style);
style.Standard = FormatStyle::LS_Cpp11;
style.TabWidth = 4;
style.UseTab = FormatStyle::UT_Never;
@@ -278,9 +276,44 @@ Utils::FilePath configForFile(const Utils::FilePath &fileName)
void addQtcStatementMacros(clang::format::FormatStyle &style)
{
- static const std::vector<std::string> macros = {"Q_OBJECT",
+ static const std::vector<std::string> macros = {"Q_CLASSINFO",
+ "Q_ENUM",
+ "Q_ENUM_NS",
+ "Q_FLAG",
+ "Q_FLAG_NS",
+ "Q_GADGET",
+ "Q_GADGET_EXPORT",
+ "Q_INTERFACES",
+ "Q_MOC_INCLUDE",
+ "Q_NAMESPACE",
+ "Q_NAMESPACE_EXPORT",
+ "Q_OBJECT",
+ "Q_PROPERTY",
+ "Q_REVISION",
+ "Q_DISABLE_COPY",
+ "Q_SET_OBJECT_NAME",
"QT_BEGIN_NAMESPACE",
- "QT_END_NAMESPACE"};
+ "QT_END_NAMESPACE",
+
+ "QML_ADDED_IN_MINOR_VERSION",
+ "QML_ANONYMOUS",
+ "QML_ATTACHED",
+ "QML_DECLARE_TYPE",
+ "QML_DECLARE_TYPEINFO",
+ "QML_ELEMENT",
+ "QML_EXTENDED",
+ "QML_EXTENDED_NAMESPACE",
+ "QML_EXTRA_VERSION",
+ "QML_FOREIGN",
+ "QML_FOREIGN_NAMESPACE",
+ "QML_IMPLEMENTS_INTERFACES",
+ "QML_INTERFACE",
+ "QML_NAMED_ELEMENT",
+ "QML_REMOVED_IN_MINOR_VERSION",
+ "QML_SINGLETON",
+ "QML_UNAVAILABLE",
+ "QML_UNCREATABLE",
+ "QML_VALUE_TYPE"};
for (const std::string &macro : macros) {
if (std::find(style.StatementMacros.begin(), style.StatementMacros.end(), macro)
== style.StatementMacros.end())
diff --git a/src/plugins/clangformat/tests/clangformat-test.cpp b/src/plugins/clangformat/tests/clangformat-test.cpp
index c5f77072e4..80d2cc4da9 100644
--- a/src/plugins/clangformat/tests/clangformat-test.cpp
+++ b/src/plugins/clangformat/tests/clangformat-test.cpp
@@ -628,10 +628,16 @@ void ClangFormatTest::testCommentBlock()
void ClangFormatTest::testClassIndentStructure()
{
- insertLines({"class test {", " Q_OBJECT", " public:", "};"});
+ insertLines(
+ {"class test {", " Q_OBJECT", " QML_ELEMENT", " QML_SINGLETON", " public:", "};"});
m_indenter->indent(*m_cursor, QChar::Null, TextEditor::TabSettings());
QCOMPARE(documentLines(),
- (std::vector<QString>{"class test {", " Q_OBJECT", "public:", "};"}));
+ (std::vector<QString>{"class test {",
+ " Q_OBJECT",
+ " QML_ELEMENT",
+ " QML_SINGLETON",
+ "public:",
+ "};"}));
}
void ClangFormatTest::testIndentInitializeVector()
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 21ee60f365..71b96610db 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -105,7 +105,9 @@ Internal::PresetsData CMakeProject::combinePresets(Internal::PresetsData &cmakeP
Utils::sort(presetsList, [](const auto &left, const auto &right) {
const bool sameInheritance = left.inherits && right.inherits
&& left.inherits.value() == right.inherits.value();
- if (!left.inherits || left.inherits.value().contains(right.name) || sameInheritance)
+ const bool leftInheritsRight = left.inherits
+ && left.inherits.value().contains(right.name);
+ if ((left.inherits && !right.inherits) || leftInheritsRight || sameInheritance)
return false;
return true;
});
diff --git a/src/plugins/cmakeprojectmanager/presetsparser.cpp b/src/plugins/cmakeprojectmanager/presetsparser.cpp
index 0f9b0c8c8e..f3be87f7ea 100644
--- a/src/plugins/cmakeprojectmanager/presetsparser.cpp
+++ b/src/plugins/cmakeprojectmanager/presetsparser.cpp
@@ -82,7 +82,7 @@ std::optional<PresetsDetails::Condition> parseCondition(const QJsonValue &jsonVa
if (type == "const") {
condition->type = type;
- condition->constValue = object.value("const").toBool();
+ condition->constValue = object.value("value").toBool();
return condition;
}
diff --git a/src/plugins/coreplugin/locator/locatorsettingspage.cpp b/src/plugins/coreplugin/locator/locatorsettingspage.cpp
index bd5a9f63aa..2ecc451a9a 100644
--- a/src/plugins/coreplugin/locator/locatorsettingspage.cpp
+++ b/src/plugins/coreplugin/locator/locatorsettingspage.cpp
@@ -94,7 +94,7 @@ QVariant FilterItem::data(int column, int role) const
return m_filter->shortcutString();
break;
case FilterIncludedByDefault:
- if (role == Qt::CheckStateRole || role == SortRole || role == Qt::EditRole)
+ if (role == Qt::CheckStateRole || role == SortRole)
return m_filter->isIncludedByDefault() ? Qt::Checked : Qt::Unchecked;
break;
default:
@@ -113,7 +113,7 @@ Qt::ItemFlags FilterItem::flags(int column) const
if (column == FilterPrefix)
return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable;
if (column == FilterIncludedByDefault)
- return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsUserCheckable;
+ return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable;
return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
}
diff --git a/src/plugins/cppeditor/cppeditorwidget.cpp b/src/plugins/cppeditor/cppeditorwidget.cpp
index 44f9e01a01..9aa98c7189 100644
--- a/src/plugins/cppeditor/cppeditorwidget.cpp
+++ b/src/plugins/cppeditor/cppeditorwidget.cpp
@@ -1267,20 +1267,16 @@ std::unique_ptr<AssistInterface> CppEditorWidget::createAssistInterface(AssistKi
if (cap)
return cap->createAssistInterface(textDocument()->filePath(), this, getFeatures(), reason);
- else {
- if (isOldStyleSignalOrSlot())
- return CppModelManager::instance()
- ->completionAssistProvider()
- ->createAssistInterface(textDocument()->filePath(), this, getFeatures(), reason);
- return TextEditorWidget::createAssistInterface(kind, reason);
+
+ if (isOldStyleSignalOrSlot()) {
+ return CppModelManager::instance()
+ ->completionAssistProvider()
+ ->createAssistInterface(textDocument()->filePath(), this, getFeatures(), reason);
}
- } else if (kind == QuickFix) {
- if (isSemanticInfoValid())
- return std::make_unique<CppQuickFixInterface>(const_cast<CppEditorWidget *>(this), reason);
- } else {
- return TextEditorWidget::createAssistInterface(kind, reason);
}
- return nullptr;
+ if (kind == QuickFix && isSemanticInfoValid())
+ return std::make_unique<CppQuickFixInterface>(const_cast<CppEditorWidget *>(this), reason);
+ return TextEditorWidget::createAssistInterface(kind, reason);
}
QSharedPointer<FunctionDeclDefLink> CppEditorWidget::declDefLink() const
diff --git a/src/plugins/cppeditor/cppquickfixassistant.cpp b/src/plugins/cppeditor/cppquickfixassistant.cpp
index 89af86e334..19514387d7 100644
--- a/src/plugins/cppeditor/cppquickfixassistant.cpp
+++ b/src/plugins/cppeditor/cppquickfixassistant.cpp
@@ -149,7 +149,8 @@ QTextCursor CppQuickFixInterface::adjustedCursor()
QuickFixOperations quickFixOperations(const TextEditor::AssistInterface *interface)
{
const auto cppInterface = dynamic_cast<const CppQuickFixInterface *>(interface);
- QTC_ASSERT(cppInterface, return {});
+ if (!cppInterface)
+ return {};
QuickFixOperations quickFixes;
for (CppQuickFixFactory *factory : CppQuickFixFactory::cppQuickFixFactories())
factory->match(*cppInterface, quickFixes);
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index 906eeb5809..ef83f906a9 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -330,8 +330,9 @@ bool GenericBuildSystem::addFiles(Node *, const FilePaths &filePaths_, FilePaths
QSet<QString> toAdd;
for (const QString &filePath : filePaths) {
- const QString directory = QFileInfo(filePath).absolutePath();
- if (!includes.contains(directory))
+ const QFileInfo fi(filePath);
+ const QString directory = fi.absolutePath();
+ if (fi.fileName() == "include" && !includes.contains(directory))
toAdd << directory;
}
diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
index 27d2a3932b..1f125ff321 100644
--- a/src/plugins/genericprojectmanager/genericprojectwizard.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
@@ -141,6 +141,8 @@ Core::GeneratedFiles GenericProjectWizard::generateFiles(const QWizard *w,
const QDir dir(projectPath.toString());
for (const QString &path : paths) {
QFileInfo fileInfo(path);
+ if (fileInfo.fileName() != "include")
+ continue;
QDir thisDir(fileInfo.absoluteFilePath());
if (! thisDir.entryList(nameFilters, QDir::Files).isEmpty()) {
diff --git a/src/plugins/mcusupport/mcukitmanager.cpp b/src/plugins/mcusupport/mcukitmanager.cpp
index 61f268f021..f68eca6973 100644
--- a/src/plugins/mcusupport/mcukitmanager.cpp
+++ b/src/plugins/mcusupport/mcukitmanager.cpp
@@ -289,8 +289,7 @@ public:
cMakeToolchainFile.toString().toUtf8());
if (!cMakeToolchainFile.exists()) {
printMessage(
- Tr::tr(
- "Warning for target %1: missing CMake toolchain file expected at %2.")
+ Tr::tr("Warning for target %1: missing CMake toolchain file expected at %2.")
.arg(generateKitNameFromTarget(mcuTarget),
cMakeToolchainFile.toUserOutput()),
false);
@@ -301,8 +300,7 @@ public:
"/lib/cmake/Qul/QulGenerators.cmake");
configMap.insert("QUL_GENERATORS", generatorsPath.toString().toUtf8());
if (!generatorsPath.exists()) {
- printMessage(Tr::tr(
- "Warning for target %1: missing QulGenerators expected at %2.")
+ printMessage(Tr::tr("Warning for target %1: missing QulGenerators expected at %2.")
.arg(generateKitNameFromTarget(mcuTarget),
generatorsPath.toUserOutput()),
false);
@@ -510,8 +508,7 @@ void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler)
}
case McuAbstractPackage::Status::EmptyPath: {
printMessage(
- Tr::tr(
- "Missing %1. Add the path in Edit > Preferences > Devices > MCU.")
+ Tr::tr("Missing %1. Add the path in Edit > Preferences > Devices > MCU.")
.arg(qtForMCUsPackage->detectionPath().toUserOutput()),
true);
return;
@@ -524,9 +521,8 @@ void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler)
if (CMakeProjectManager::CMakeToolManager::cmakeTools().isEmpty()) {
printMessage(
- Tr::tr(
- "No CMake tool was detected. Add a CMake tool in Edit > Preferences > "
- "Kits > CMake."),
+ Tr::tr("No CMake tool was detected. Add a CMake tool in Edit > Preferences > "
+ "Kits > CMake."),
true);
return;
}
@@ -744,11 +740,17 @@ static bool anyKitDescriptionFileExists(const FilePaths &jsonFiles,
const QRegularExpressionMatch match = re.match(jsonFile.fileName());
QStringList kitsPropertiesFromFileName;
if (match.hasMatch()) {
- const QString toolchain = match.captured(1).replace(
- "gnu", "gcc"); // kitFileName contains gnu while profiles.xml contains gcc
+ QString toolchain = match.captured(1);
const QString vendor = match.captured(2);
const QString device = match.captured(3);
+ /*
+ * file name of kit starts with "gnu" while in profiles.xml name of
+ * toolchain is "gcc" on Linux and "mingw" on Windows
+ */
+ toolchain = HostOsInfo::isLinuxHost() ? toolchain.replace("gnu", "gcc")
+ : toolchain.replace("gnu", "mingw");
+
kitsPropertiesFromFileName << toolchain << vendor << device;
}
diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp
index 590ef1da58..ccc94a5ea4 100644
--- a/src/plugins/qmljseditor/qmljseditor.cpp
+++ b/src/plugins/qmljseditor/qmljseditor.cpp
@@ -1042,7 +1042,7 @@ std::unique_ptr<AssistInterface> QmlJSEditorWidget::createAssistInterface(
return std::make_unique<Internal::QmlJSQuickFixAssistInterface>(
const_cast<QmlJSEditorWidget *>(this), reason);
}
- return nullptr;
+ return TextEditorWidget::createAssistInterface(assistKind, reason);
}
QString QmlJSEditorWidget::foldReplacementText(const QTextBlock &block) const
diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp
index b81161dd6a..bbcbb130be 100644
--- a/src/plugins/texteditor/codeassist/codeassistant.cpp
+++ b/src/plugins/texteditor/codeassist/codeassistant.cpp
@@ -175,8 +175,7 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason,
std::unique_ptr<AssistInterface> assistInterface =
m_editorWidget->createAssistInterface(kind, reason);
- if (!assistInterface)
- return;
+ QTC_ASSERT(assistInterface, return);
// We got an assist provider and interface so no need to reset the current context anymore
earlyReturnContextClear.reset({});
@@ -403,8 +402,10 @@ void CodeAssistantPrivate::notifyChange()
if (m_editorWidget->position() < m_proposalWidget->basePosition()) {
destroyContext();
} else {
- m_proposalWidget->updateProposal(
- m_editorWidget->createAssistInterface(m_assistKind, m_proposalWidget->reason()));
+ std::unique_ptr<AssistInterface> assistInterface
+ = m_editorWidget->createAssistInterface(m_assistKind, m_proposalWidget->reason());
+ QTC_ASSERT(assistInterface, destroyContext(); return);
+ m_proposalWidget->updateProposal(std::move(assistInterface));
if (!isDisplayingProposal())
requestActivationCharProposal();
}
diff --git a/src/shared/qbs b/src/shared/qbs
-Subproject e002680feb415ee7d26e3a31d70afeef0d50dea
+Subproject 03e717b06ed5c0864618e763f08f91d9fc94b73