From 37400e90846e35f2d42bc8a321711c0a28f0fc89 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 4 Jul 2022 08:23:43 +0200 Subject: [PATCH 01/33] LanguageClient: do not accumulate response handler Change-Id: Icf297ddf09bb64aea1d50fb24efa231df01eaed1 Reviewed-by: Christian Stenger --- src/plugins/languageclient/client.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index d59c179b1ca..50c66752564 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -1646,7 +1646,7 @@ void ClientPrivate::sendPostponedDocumentUpdates(Schedule semanticTokensSchedule void ClientPrivate::handleResponse(const MessageId &id, const JsonRpcMessage &message) { - if (auto handler = m_responseHandlers[id]) + if (auto handler = m_responseHandlers.take(id)) handler(message); } From e51790a18060555f298d88d62d36c4676b04b0b7 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Mon, 4 Jul 2022 07:40:05 +0200 Subject: [PATCH 02/33] android: remove superfluous > Change-Id: I01ab2b5045f6037a4fd89b5ad02f105292d02e88 Reviewed-by: Reviewed-by: Alessandro Portale --- src/plugins/android/androidqtversion.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp index fa57b05c44d..540bf6f0d2b 100644 --- a/src/plugins/android/androidqtversion.cpp +++ b/src/plugins/android/androidqtversion.cpp @@ -28,7 +28,7 @@ #include "androidconfigurations.h" #include "androidmanager.h" -#include > +#include #include #include From 9dc1fb3381b1c94a880c66b5abdef6359d7f83a8 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 4 Jul 2022 08:25:53 +0200 Subject: [PATCH 03/33] LanguageClient: allow aborting hover handler on unreachable clients Change-Id: I1163144de7d37d3e270e31f2bf523ba812a937a5 Reviewed-by: Christian Stenger --- src/plugins/languageclient/client.cpp | 3 ++- src/plugins/languageclient/languageclienthoverhandler.cpp | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 50c66752564..3408e08194f 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -639,7 +639,8 @@ void Client::sendMessage(const JsonRpcMessage &message, SendDocUpdates sendUpdat void Client::cancelRequest(const MessageId &id) { d->m_responseHandlers.remove(id); - sendMessage(CancelRequest(CancelParameter(id)), SendDocUpdates::Ignore); + if (reachable()) + sendMessage(CancelRequest(CancelParameter(id)), SendDocUpdates::Ignore); } void Client::closeDocument(TextEditor::TextDocument *document) diff --git a/src/plugins/languageclient/languageclienthoverhandler.cpp b/src/plugins/languageclient/languageclienthoverhandler.cpp index ecb23ad4dba..32db0e53191 100644 --- a/src/plugins/languageclient/languageclienthoverhandler.cpp +++ b/src/plugins/languageclient/languageclienthoverhandler.cpp @@ -49,9 +49,10 @@ HoverHandler::~HoverHandler() void HoverHandler::abort() { - if (m_client && m_client->reachable() && m_currentRequest.has_value()) + if (m_client && m_currentRequest.has_value()) { m_client->cancelRequest(*m_currentRequest); - m_currentRequest.reset(); + m_currentRequest.reset(); + } m_response = {}; } From c899793b373042b58f17d8eca01168aa9d6b99e3 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 1 Jul 2022 15:02:07 +0200 Subject: [PATCH 04/33] Android: Fix version mapping from sdk_definitions.json - Support multi-digit values for version ranges, via "+" in the RegExp - Turn the RegExp expression into a raw string for easier reading - Fix shortVersion (Maj.Min.-1) handling by appending the ".-1" - Explicitly define the Patch number range for 5.15 in sdk_definitions Change-Id: Icf22f2b4f865b4d5bcff48569aa58137294129ce Reviewed-by: hjk Reviewed-by: Reviewed-by: Eike Ziller --- share/qtcreator/android/sdk_definitions.json | 2 +- src/plugins/android/androidconfigurations.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/android/sdk_definitions.json b/share/qtcreator/android/sdk_definitions.json index 9dd6ee4caed..1c7476763be 100644 --- a/share/qtcreator/android/sdk_definitions.json +++ b/share/qtcreator/android/sdk_definitions.json @@ -22,7 +22,7 @@ "ndk_path": "ndk/23.1.7779620" }, { - "versions": ["6.3", "6.2", "5.15"], + "versions": ["6.3", "6.2", "5.15.[9-20]"], "sdk_essential_packages": ["build-tools;31.0.0", "ndk;22.1.7171670"], "ndk_path": "ndk/22.1.7171670" }, diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index c4942aee3ff..642cef0b085 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -344,13 +344,13 @@ void AndroidConfig::parseDependenciesJson() auto fillQtVersionsRange = [](const QString &shortVersion) { QList versions; - QRegularExpression re("([0-9]\\.[0-9]*\\.)\\[([0-9])\\-([0-9])\\]"); + const QRegularExpression re(R"(([0-9]\.[0-9]+\.)\[([0-9]+)\-([0-9]+)\])"); QRegularExpressionMatch match = re.match(shortVersion); if (match.hasMatch() && match.lastCapturedIndex() == 3) for (int i = match.captured(2).toInt(); i <= match.captured(3).toInt(); ++i) versions.append(QtVersionNumber(match.captured(1) + QString::number(i))); else - versions.append(QtVersionNumber(shortVersion)); + versions.append(QtVersionNumber(shortVersion + ".-1")); return versions; }; From 0087bd492fe7dc6de3a938a1276f66b1d3af5e44 Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Mon, 20 Jun 2022 12:57:23 +0200 Subject: [PATCH 05/33] Clangd: Fix autocompletion for old style SIGNAL and SLOT Fixes: QTCREATORBUG-20737 Change-Id: If6d3c6ea5924537386eca81d90d4bb1e8f1a1466 Reviewed-by: Reviewed-by: Christian Kandeler --- src/plugins/clangcodemodel/clangdclient.cpp | 9 +- src/plugins/cppeditor/cppcompletionassist.h | 1 + src/plugins/cppeditor/cppeditorwidget.cpp | 27 +++++- src/plugins/cppeditor/cppeditorwidget.h | 1 + src/plugins/cppeditor/cppmodelmanager.cpp | 82 +++++++++++++------ src/plugins/cppeditor/cppmodelmanager.h | 17 +++- src/plugins/cppeditor/cppquickfixassistant.h | 1 + src/plugins/cppeditor/cpptoolsreuse.cpp | 6 ++ src/plugins/cppeditor/cpptoolsreuse.h | 3 + src/plugins/glsleditor/glslcompletionassist.h | 1 + src/plugins/qmljseditor/qmljsquickfixassist.h | 1 + .../texteditor/codeassist/assistinterface.h | 1 + 12 files changed, 114 insertions(+), 36 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 96034c1052c..e1f0319ff83 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -751,9 +751,8 @@ ClangdClient::ClangdCompletionAssistProcessor::generateCompletionItems( return itemGenerator(items); const QString content = doc->toPlainText(); const bool requiresSignal = CppEditor::CppModelManager::instance() - ->positionRequiresSignal(filePath().toString(), - content.toUtf8(), - pos); + ->getSignalSlotType(filePath().toString(), content.toUtf8(), pos) + == CppEditor::SignalSlotType::NewStyleSignal; if (requiresSignal) return itemGenerator(Utils::filtered(items, criterion)); return itemGenerator(items); @@ -2237,6 +2236,10 @@ IAssistProcessor *ClangdClient::ClangdCompletionAssistProvider::createProcessor( contextAnalyzer.positionEndOfExpression(), contextAnalyzer.completionOperator(), CustomAssistMode::Preprocessor); + case ClangCompletionContextAnalyzer::CompleteSignal: + case ClangCompletionContextAnalyzer::CompleteSlot: + if (!interface->isBaseObject()) + return CppEditor::getCppCompletionAssistProcessor(); default: break; } diff --git a/src/plugins/cppeditor/cppcompletionassist.h b/src/plugins/cppeditor/cppcompletionassist.h index adcdcaa798a..674f6bf4a78 100644 --- a/src/plugins/cppeditor/cppcompletionassist.h +++ b/src/plugins/cppeditor/cppcompletionassist.h @@ -194,6 +194,7 @@ public: { getCppSpecifics(); return m_headerPaths; } CPlusPlus::LanguageFeatures languageFeatures() const { getCppSpecifics(); return m_languageFeatures; } + bool isBaseObject() const override { return false; } private: void getCppSpecifics() const; diff --git a/src/plugins/cppeditor/cppeditorwidget.cpp b/src/plugins/cppeditor/cppeditorwidget.cpp index 1129e107444..f797a59ffdd 100644 --- a/src/plugins/cppeditor/cppeditorwidget.cpp +++ b/src/plugins/cppeditor/cppeditorwidget.cpp @@ -1163,22 +1163,43 @@ void CppEditorWidget::updateSemanticInfo(const SemanticInfo &semanticInfo, updateFunctionDeclDefLink(); } +bool CppEditorWidget::isOldStyleSignalOrSlot() const +{ + QTextCursor tc(textCursor()); + const QString content = textDocument()->plainText(); + + return CppEditor::CppModelManager::instance() + ->getSignalSlotType(textDocument()->filePath().toString(), + content.toUtf8(), + tc.position()) + == CppEditor::SignalSlotType::OldStyleSignal; +} + AssistInterface *CppEditorWidget::createAssistInterface(AssistKind kind, AssistReason reason) const { if (kind == Completion || kind == FunctionHint) { CppCompletionAssistProvider * const cap = kind == Completion ? qobject_cast(cppEditorDocument()->completionAssistProvider()) : qobject_cast(cppEditorDocument()->functionHintAssistProvider()); - if (cap) { + + auto getFeatures = [this]() { LanguageFeatures features = LanguageFeatures::defaultFeatures(); if (Document::Ptr doc = d->m_lastSemanticInfo.doc) features = doc->languageFeatures(); features.objCEnabled |= cppEditorDocument()->isObjCEnabled(); + return features; + }; + + if (cap) return cap->createAssistInterface(textDocument()->filePath(), this, - features, + getFeatures(), reason); - } else { + else { + if (isOldStyleSignalOrSlot()) + return CppModelManager::instance() + ->completionAssistProvider() + ->createAssistInterface(textDocument()->filePath(), this, getFeatures(), reason); return TextEditorWidget::createAssistInterface(kind, reason); } } else if (kind == QuickFix) { diff --git a/src/plugins/cppeditor/cppeditorwidget.h b/src/plugins/cppeditor/cppeditorwidget.h index 5b27c4e4451..5f76a40e69b 100644 --- a/src/plugins/cppeditor/cppeditorwidget.h +++ b/src/plugins/cppeditor/cppeditorwidget.h @@ -146,6 +146,7 @@ private: void finalizeInitializationAfterDuplication(TextEditorWidget *other) override; unsigned documentRevision() const; + bool isOldStyleSignalOrSlot() const; QMenu *createRefactorMenu(QWidget *parent) const; diff --git a/src/plugins/cppeditor/cppmodelmanager.cpp b/src/plugins/cppeditor/cppmodelmanager.cpp index 39bcc5118c0..4a7297815ac 100644 --- a/src/plugins/cppeditor/cppmodelmanager.cpp +++ b/src/plugins/cppeditor/cppmodelmanager.cpp @@ -52,6 +52,7 @@ #include #include #include +#include #include #include @@ -338,11 +339,29 @@ void CppModelManager::switchHeaderSource(bool inNextSplit, Backend backend) inNextSplit); } -bool CppModelManager::positionRequiresSignal(const QString &filePath, const QByteArray &content, - int position) const +int argumentPositionOf(const AST *last, const CallAST *callAst) +{ + if (!callAst || !callAst->expression_list) + return false; + + int num = 0; + for (ExpressionListAST *it = callAst->expression_list; it; it = it->next) { + ++num; + const ExpressionAST *const arg = it->value; + if (arg->firstToken() <= last->firstToken() + && arg->lastToken() >= last->lastToken()) { + return num; + } + } + return 0; +} + +SignalSlotType CppModelManager::getSignalSlotType(const QString &filePath, + const QByteArray &content, + int position) const { if (content.isEmpty()) - return false; + return SignalSlotType::None; // Insert a dummy prefix if we don't have a real one. Otherwise the AST path will not contain // anything after the CallAST. @@ -360,26 +379,17 @@ bool CppModelManager::positionRequiresSignal(const QString &filePath, const QByt // Are we at the second argument of a function call? const QList path = ASTPath(document)(cursor); - if (path.isEmpty() || !path.last()->asSimpleName()) - return false; + if (path.isEmpty()) + return SignalSlotType::None; const CallAST *callAst = nullptr; for (auto it = path.crbegin(); it != path.crend(); ++it) { if ((callAst = (*it)->asCall())) break; } - if (!callAst) - return false; - if (!callAst->expression_list || !callAst->expression_list->next) - return false; - const ExpressionAST * const secondArg = callAst->expression_list->next->value; - if (secondArg->firstToken() > path.last()->firstToken() - || secondArg->lastToken() < path.last()->lastToken()) { - return false; - } // Is the function called "connect" or "disconnect"? - if (!callAst->base_expression) - return false; + if (!callAst || !callAst->base_expression) + return SignalSlotType::None; Scope *scope = document->globalNamespace(); for (auto it = path.crbegin(); it != path.crend(); ++it) { if (const CompoundStatementAST * const stmtAst = (*it)->asCompoundStatement()) { @@ -398,7 +408,7 @@ bool CppModelManager::positionRequiresSignal(const QString &filePath, const QByt exprType.init(document, snapshot); const QList typeMatches = exprType(ast->base_expression, document, scope); if (typeMatches.isEmpty()) - return false; + return SignalSlotType::None; const std::function getNamedType = [&getNamedType](const FullySpecifiedType &type ) -> const NamedType * { Type * const t = type.type(); @@ -414,22 +424,22 @@ bool CppModelManager::positionRequiresSignal(const QString &filePath, const QByt if (!namedType && typeMatches.first().declaration()) namedType = getNamedType(typeMatches.first().declaration()->type()); if (!namedType) - return false; + return SignalSlotType::None; const ClassOrNamespace * const result = context.lookupType(namedType->name(), scope); if (!result) - return false; + return SignalSlotType::None; scope = result->rootClass(); if (!scope) - return false; + return SignalSlotType::None; } if (!nameAst || !nameAst->name) - return false; + return SignalSlotType::None; const Identifier * const id = nameAst->name->identifier(); if (!id) - return false; + return SignalSlotType::None; const QString funcName = QString::fromUtf8(id->chars(), id->size()); if (funcName != "connect" && funcName != "disconnect") - return false; + return SignalSlotType::None; // Is the function a member function of QObject? const QList matches = context.lookup(nameAst->name, scope); @@ -440,11 +450,29 @@ bool CppModelManager::positionRequiresSignal(const QString &filePath, const QByt if (!klass || !klass->name()) continue; const Identifier * const classId = klass->name()->identifier(); - if (classId && QString::fromUtf8(classId->chars(), classId->size()) == "QObject") - return true; - } + if (classId && QString::fromUtf8(classId->chars(), classId->size()) == "QObject") { + QString expression; + LanguageFeatures features = LanguageFeatures::defaultFeatures(); + CPlusPlus::ExpressionUnderCursor expressionUnderCursor(features); + for (int i = cursor.position(); i > 0; --i) + if (textDocument.characterAt(i) == '(') { + cursor.setPosition(i); + break; + } - return false; + expression = expressionUnderCursor(cursor); + + const int argumentPosition = argumentPositionOf(path.last(), callAst); + if ((expression.endsWith(QLatin1String("SIGNAL")) + && (argumentPosition == 2 || argumentPosition == 4)) + || (expression.endsWith(QLatin1String("SLOT")) && argumentPosition == 4)) + return SignalSlotType::OldStyleSignal; + + if (argumentPosition == 2) + return SignalSlotType::NewStyleSignal; + } + } + return SignalSlotType::None; } FollowSymbolUnderCursor &CppModelManager::builtinFollowSymbol() diff --git a/src/plugins/cppeditor/cppmodelmanager.h b/src/plugins/cppeditor/cppmodelmanager.h index efccd521190..e00dccbf33d 100644 --- a/src/plugins/cppeditor/cppmodelmanager.h +++ b/src/plugins/cppeditor/cppmodelmanager.h @@ -45,7 +45,11 @@ namespace Core { class IDocument; class IEditor; } -namespace CPlusPlus { class LookupContext; } +namespace CPlusPlus { +class AST; +class CallAST; +class LookupContext; +} // namespace CPlusPlus namespace ProjectExplorer { class Project; } namespace TextEditor { class BaseHoverHandler; @@ -75,6 +79,12 @@ class CppModelManagerPrivate; namespace Tests { class ModelManagerTestHelper; } +enum class SignalSlotType { + OldStyleSignal, + NewStyleSignal, + None +}; + class CPPEDITOR_EXPORT CppModelManager final : public CPlusPlus::CppModelManagerBase { Q_OBJECT @@ -154,8 +164,9 @@ public: QList references(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context); - bool positionRequiresSignal(const QString &filePath, const QByteArray &content, - int position) const; + SignalSlotType getSignalSlotType(const QString &filePath, + const QByteArray &content, + int position) const; void renameUsages(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context, const QString &replacement = QString()); diff --git a/src/plugins/cppeditor/cppquickfixassistant.h b/src/plugins/cppeditor/cppquickfixassistant.h index d6e556c7b19..0824b82cd1f 100644 --- a/src/plugins/cppeditor/cppquickfixassistant.h +++ b/src/plugins/cppeditor/cppquickfixassistant.h @@ -56,6 +56,7 @@ public: bool isCursorOn(unsigned tokenIndex) const; bool isCursorOn(const CPlusPlus::AST *ast) const; + bool isBaseObject() const override { return false; } private: CppEditorWidget *m_editor; diff --git a/src/plugins/cppeditor/cpptoolsreuse.cpp b/src/plugins/cppeditor/cpptoolsreuse.cpp index ac0d6c7a59c..91794a18384 100644 --- a/src/plugins/cppeditor/cpptoolsreuse.cpp +++ b/src/plugins/cppeditor/cpptoolsreuse.cpp @@ -28,6 +28,7 @@ #include "clangdiagnosticconfigsmodel.h" #include "cppautocompleter.h" #include "cppcodemodelsettings.h" +#include "cppcompletionassist.h" #include "cppeditorconstants.h" #include "cppeditorplugin.h" #include "cpphighlighter.h" @@ -336,6 +337,11 @@ TextEditor::QuickFixOperations quickFixOperations(const TextEditor::AssistInterf return Internal::quickFixOperations(interface); } +CppCompletionAssistProcessor *getCppCompletionAssistProcessor() +{ + return new Internal::InternalCppCompletionAssistProcessor(); +} + CppCodeModelSettings *codeModelSettings() { return Internal::CppEditorPlugin::instance()->codeModelSettings(); diff --git a/src/plugins/cppeditor/cpptoolsreuse.h b/src/plugins/cppeditor/cpptoolsreuse.h index c0284f98388..4743ec3377e 100644 --- a/src/plugins/cppeditor/cpptoolsreuse.h +++ b/src/plugins/cppeditor/cpptoolsreuse.h @@ -55,6 +55,7 @@ namespace TextEditor { class AssistInterface; } namespace CppEditor { class CppRefactoringFile; class ProjectInfo; +class CppCompletionAssistProcessor; void CPPEDITOR_EXPORT moveCursorToEndOfIdentifier(QTextCursor *tc); void CPPEDITOR_EXPORT moveCursorToStartOfIdentifier(QTextCursor *tc); @@ -80,6 +81,8 @@ bool CPPEDITOR_EXPORT isInCommentOrString(const TextEditor::AssistInterface *int TextEditor::QuickFixOperations CPPEDITOR_EXPORT quickFixOperations(const TextEditor::AssistInterface *interface); +CppCompletionAssistProcessor CPPEDITOR_EXPORT *getCppCompletionAssistProcessor(); + enum class CacheUsage { ReadWrite, ReadOnly }; QString CPPEDITOR_EXPORT correspondingHeaderOrSource(const QString &fileName, bool *wasHeader = nullptr, diff --git a/src/plugins/glsleditor/glslcompletionassist.h b/src/plugins/glsleditor/glslcompletionassist.h index c54ffe6e368..e5fe1bed2d0 100644 --- a/src/plugins/glsleditor/glslcompletionassist.h +++ b/src/plugins/glsleditor/glslcompletionassist.h @@ -114,6 +114,7 @@ public: const QString &mimeType() const { return m_mimeType; } const Document::Ptr &glslDocument() const { return m_glslDoc; } + bool isBaseObject() const override { return false; } private: QString m_mimeType; diff --git a/src/plugins/qmljseditor/qmljsquickfixassist.h b/src/plugins/qmljseditor/qmljsquickfixassist.h index a5f39688eb8..1254f2510c0 100644 --- a/src/plugins/qmljseditor/qmljsquickfixassist.h +++ b/src/plugins/qmljseditor/qmljsquickfixassist.h @@ -45,6 +45,7 @@ public: const QmlJSTools::SemanticInfo &semanticInfo() const; QmlJSTools::QmlJSRefactoringFilePtr currentFile() const; + bool isBaseObject() const override { return false; } private: QmlJSTools::SemanticInfo m_semanticInfo; diff --git a/src/plugins/texteditor/codeassist/assistinterface.h b/src/plugins/texteditor/codeassist/assistinterface.h index a7081909d14..9c49603ceac 100644 --- a/src/plugins/texteditor/codeassist/assistinterface.h +++ b/src/plugins/texteditor/codeassist/assistinterface.h @@ -54,6 +54,7 @@ public: virtual void prepareForAsyncUse(); virtual void recreateTextDocument(); virtual AssistReason reason() const; + virtual bool isBaseObject() const { return true; } private: QTextDocument *m_textDocument; From 0a77097395a043ec08c9463ca45ba7ff709f7e04 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Mon, 4 Jul 2022 11:20:33 +0200 Subject: [PATCH 06/33] cmake: Fix cmake option display When editing a multiple choice cmake option the background ( the text of the current value ) would shine through. This fixes that by setting setAutoFillBackground(true) on the editor widget Change-Id: Ie36ea13f2d0532c375f22a33569772c3b2c604fb Reviewed-by: Cristian Adam Reviewed-by: --- src/plugins/cmakeprojectmanager/configmodelitemdelegate.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/cmakeprojectmanager/configmodelitemdelegate.cpp b/src/plugins/cmakeprojectmanager/configmodelitemdelegate.cpp index c09a6cd0d56..32e63cfd611 100644 --- a/src/plugins/cmakeprojectmanager/configmodelitemdelegate.cpp +++ b/src/plugins/cmakeprojectmanager/configmodelitemdelegate.cpp @@ -64,6 +64,7 @@ QWidget *ConfigModelItemDelegate::createEditor(QWidget *parent, const QStyleOpti auto edit = new QComboBox(parent); edit->setAttribute(Qt::WA_MacSmallSize); edit->setFocusPolicy(Qt::StrongFocus); + edit->setAutoFillBackground(true); for (const QString &s : qAsConst(data.values)) edit->addItem(s); return edit; From f0c9849e3ad311bfae7f99602310a19c1168ec4c Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 1 Jul 2022 16:09:19 +0200 Subject: [PATCH 07/33] Doc: Update info about Android Device preferences Task-number: QTCREATORBUG-27560 Change-Id: Ice201b62930cc04906d17fa647c555abec77c597 Reviewed-by: Reviewed-by: Assam Boudjelthia --- .../images/qtcreator-options-android-main.png | Bin 18155 -> 28235 bytes .../qtcreator-options-android-sdk-tools.png | Bin 22305 -> 28238 bytes doc/qtcreator/src/android/androiddev.qdoc | 8 ++++---- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/qtcreator/images/qtcreator-options-android-main.png b/doc/qtcreator/images/qtcreator-options-android-main.png index 70d119b3206b41a848d24014c02917dc572148d4..5ecea57d99834dc185c9f7f867c4c29ea95dfc8b 100644 GIT binary patch literal 28235 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 literal 18155 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 L{an^LB{Ts5lcev& diff --git a/doc/qtcreator/images/qtcreator-options-android-sdk-tools.png b/doc/qtcreator/images/qtcreator-options-android-sdk-tools.png index 19237d1b7894aa383f4fc93ea15ff8718f44e7c5..f3057ce0bcab2a72e53e770894758cff2d103dd2 100644 GIT binary patch literal 28238 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 z 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 E0GC2#g8%>k literal 22305 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 diff --git a/doc/qtcreator/src/android/androiddev.qdoc b/doc/qtcreator/src/android/androiddev.qdoc index bc736490c68..e8f14c8602f 100644 --- a/doc/qtcreator/src/android/androiddev.qdoc +++ b/doc/qtcreator/src/android/androiddev.qdoc @@ -111,8 +111,8 @@ \li The installed NDK versions are listed in \uicontrol {Android NDK list}. The locked items were installed by the SDK Manager, - and can only be modified from the \uicontrol {SDK Manager} tab. - For more information, see \l{Managing Android NDK Packages}. + and can only be modified from the \uicontrol {Android SDK Manager} + dialog. For more information, see \l{Managing Android NDK Packages}. \li Select the \uicontrol {Automatically create kits for Android tool chains} check box to allow \QC to create the kits for you. \QC displays a warning if it cannot find a suitable Qt version. @@ -179,8 +179,8 @@ \image qtcreator-options-android-sdk-tools.png "Android NDK and SDK checks" The locked versions were installed by the SDK Manager, and can only - be modified from the SDK Manager tab. For more information, see - \l{Managing Android SDK Packages}. + be modified from the \uicontrol {Android SDK Manager} dialog. + For more information, see \l{Managing Android SDK Packages}. To manually download NDKs, select \inlineimage icons/online.png . From e94c0f4a8bd8c5ad0471a1e8737fd94721a31479 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 3 Jun 2022 16:00:48 +0200 Subject: [PATCH 08/33] Doc: Update supported Qt for MCU SDKs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTCREATORBUG-27560 Change-Id: I26f405a217648b5b44789fd33949b21ba514e2dc Reviewed-by: Piotr Mućko Reviewed-by: Eike Ziller --- doc/qtcreator/src/mcu/creator-mcu-dev.qdoc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc index 7d91e983ae7..1ff239c6696 100644 --- a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc +++ b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc @@ -197,16 +197,18 @@ \section1 Supported Qt for MCUs SDKs - Since version 4.12.4, \QC supports versions 1.3 through 1.9 of the Qt for MCUs SDK. - Since version 6.0.0, \QC adds support for versions 2.0 and later of the Qt for MCUs SDK. - For older versions refer to the following table. + Since version 7.0.0, \QC supports version 2.0 and later of the Qt for MCUs SDK. + For older versions, refer to the following table. \table \header \li \QC version \li Qt for MCUs SDK version \row - \li 6.0.0 or later + \li 7.0.0 or later + \li 2.0 or later + \row + \li 6.0.x \li 1.3 or later, including 2.0 or later \row \li 4.12.4 up to 5.0.3 From 22ed2aa8ac142e3acefa87cf5a218e8d47e3e9fc Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 4 Jul 2022 10:28:13 +0200 Subject: [PATCH 09/33] Doc: Describe resurrected Clang Format preferences Update the screenshot. Task-number: QTCREATORBUG-27560 Change-Id: I3178ab880d49097c837354c4f32501096b179c4b Reviewed-by: Reviewed-by: Artem Sokolovskii Reviewed-by: Eike Ziller --- .../qtcreator-code-style-clang-format.png | Bin 18110 -> 27364 bytes .../src/editors/creator-clangformat.qdocinc | 8 +++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/qtcreator/images/qtcreator-code-style-clang-format.png b/doc/qtcreator/images/qtcreator-code-style-clang-format.png index 70b0a46a759ddb9e0a3614deba82d11f96b21d0c..27fac40e5fa9d02032fb91ec8d57c386e21fa071 100644 GIT binary patch literal 27364 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 diff --git a/doc/qtcreator/src/editors/creator-clangformat.qdocinc b/doc/qtcreator/src/editors/creator-clangformat.qdocinc index 36142a53d49..4267c17b074 100644 --- a/doc/qtcreator/src/editors/creator-clangformat.qdocinc +++ b/doc/qtcreator/src/editors/creator-clangformat.qdocinc @@ -52,12 +52,14 @@ \uicontrol Edit > \uicontrol {ClangFormat} > \uicontrol {Override Clang Format configuration file}. - \image qtcreator-code-style-clang-format.png "C++ Clang Format options" + \image qtcreator-code-style-clang-format.png "C++ Clang Format preferences" In \uicontrol {Formatting mode}, select \uicontrol {Indenting Only} to only indent code. Select \uicontrol {Full Formatting} to use the \key {Ctrl+I} - keyboard shortcut to format code instead of indenting it and to apply the - formatting to the edited code when you save the file. + keyboard shortcut to format code instead of indenting. To apply the + formatting while you type, select \uicontrol {Format while typing}. To apply + the formatting to the edited code when you save the file, select + \uicontrol {Format edited code on file save}. This creates a local configuration file that overrides the one stored in the file system. From 96be267a6e4a4c7439bffd4c5d557ca7f20554c2 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 4 Jul 2022 13:39:33 +0200 Subject: [PATCH 10/33] ClangCodeModel: Prevent documents from getting opened in wrong clangd As per 8ad7ab2d2a7fefcd3a9ef3ff2f0ef7e5fe792417, we prefer to open non- project sources in a project-specific clangd, rather than the fallback client. However, we do *not* want clangd to open files from "foreign" projects. Checking for the existence of a client for a specific file is not enough, as we might be in the process of loading a session or the respective project might have clangd turned off. Change-Id: I2d5cb7027c6a3ad23e99606d6d6742d67fbc5384 Reviewed-by: Qt CI Bot Reviewed-by: David Schulz Reviewed-by: --- .../clangcodemodel/clangmodelmanagersupport.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index 1437aff83f6..361bf191929 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -431,9 +431,13 @@ void ClangModelManagerSupport::updateLanguageClient( const Client * const currentClient = LanguageClientManager::clientForDocument(doc); if (!settings.sizeIsOkay(doc->filePath())) continue; - if (!currentClient || !currentClient->project() - || currentClient->state() != Client::Initialized - || project->isKnownFile(doc->filePath())) { + if (currentClient && currentClient->project() + && currentClient->project() != project) { + continue; + } + if (const Project * const docProject + = SessionManager::projectForFile(doc->filePath()); + !docProject || docProject == project) { LanguageClientManager::openDocumentWithClient(doc, client); hasDocuments = true; } @@ -546,7 +550,8 @@ void ClangModelManagerSupport::claimNonProjectSources(ClangdClient *client) } if (!ClangdSettings::instance().sizeIsOkay(doc->filePath())) continue; - client->openDocument(doc); + if (!ProjectExplorer::SessionManager::projectForFile(doc->filePath())) + LanguageClientManager::openDocumentWithClient(doc, client); } } From a1a5ad2017de0ce077a756f3957dcd8cbdf97b82 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 4 Jul 2022 13:58:50 +0200 Subject: [PATCH 11/33] QmlDesigner: Fix license headers Those files originally came from Qt. Change-Id: I724c98d2a09fb004f19042f348e0994ae1970b73 Reviewed-by: Christian Stenger --- .../QtQuick/AdvancedSection.qml | 2 +- .../Controls/AbstractButtonSection.qml | 31 ++++++------------- .../Controls/BusyIndicatorSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/ButtonSection.qml | 31 ++++++------------- .../QtQuick/Controls/ButtonSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/CheckBoxSpecifics.qml | 31 ++++++------------- .../Controls/CheckDelegateSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/CheckSection.qml | 31 ++++++------------- .../QtQuick/Controls/ComboBoxSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/ContainerSection.qml | 31 ++++++------------- .../QtQuick/Controls/ControlSection.qml | 31 ++++++------------- .../QtQuick/Controls/ControlSpecifics.qml | 29 ++++++----------- .../QtQuick/Controls/DelayButtonSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/DialSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/DialogSpecifics.qml | 2 +- .../QtQuick/Controls/DrawerSpecifics.qml | 2 +- .../QtQuick/Controls/FrameSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/GroupBoxSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/IconSection.qml | 29 ++++++----------- .../QtQuick/Controls/InsetSection.qml | 29 ++++++----------- .../QtQuick/Controls/ItemDelegateSection.qml | 31 ++++++------------- .../Controls/ItemDelegateSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/LabelSpecifics.qml | 31 ++++++------------- .../Controls/PageIndicatorSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/PageSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/PaneSection.qml | 31 ++++++------------- .../QtQuick/Controls/PaneSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/PopupSection.qml | 2 +- .../QtQuick/Controls/PopupSpecifics.qml | 2 +- .../QtQuick/Controls/ProgressBarSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/RadioButtonSpecifics.qml | 31 ++++++------------- .../Controls/RadioDelegateSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/RangeSliderSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/RoundButtonSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/ScrollViewSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/SliderSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/SpinBoxSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/StackViewSpecifics.qml | 31 ++++++------------- .../Controls/SwipeDelegateSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/SwipeViewSpecifics.qml | 31 ++++++------------- .../Controls/SwitchDelegateSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/SwitchSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/TabBarSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/TabButtonSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/TextAreaSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/TextFieldSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/TextSection.qml | 31 ++++++------------- .../QtQuick/Controls/ToolBarSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/ToolButtonSpecifics.qml | 31 ++++++------------- .../Controls/ToolSeparatorSpecifics.qml | 31 ++++++------------- .../QtQuick/Controls/TumblerSpecifics.qml | 31 ++++++------------- 51 files changed, 462 insertions(+), 968 deletions(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml index 260c2507cdf..d2830cbcb36 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Creator. diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/AbstractButtonSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/AbstractButtonSection.qml index 208632d8c04..eed6afb5c9d 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/AbstractButtonSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/AbstractButtonSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/BusyIndicatorSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/BusyIndicatorSpecifics.qml index 6d025a77619..190060a7de7 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/BusyIndicatorSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/BusyIndicatorSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ButtonSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ButtonSection.qml index 63ed1b4436c..c75820e5b9e 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ButtonSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ButtonSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ButtonSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ButtonSpecifics.qml index 8f155958453..daea616b9ec 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ButtonSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ButtonSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckBoxSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckBoxSpecifics.qml index 3280065a3e2..0c80d55e8c9 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckBoxSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckBoxSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckDelegateSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckDelegateSpecifics.qml index 3b79e7bc811..148e11197ee 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckDelegateSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckDelegateSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckSection.qml index edf449fcaf7..edeba4a0864 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/CheckSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ComboBoxSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ComboBoxSpecifics.qml index 3e04a71fee6..9d75a9bcb58 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ComboBoxSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ComboBoxSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ContainerSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ContainerSection.qml index e5f3fad767e..881e4d488bb 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ContainerSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ContainerSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ControlSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ControlSection.qml index 681f2357b79..7ebd381717e 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ControlSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ControlSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ControlSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ControlSpecifics.qml index d692c7ae6e3..8275a75f6d5 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ControlSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ControlSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** ** Copyright (C) 2022 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DelayButtonSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DelayButtonSpecifics.qml index 8e3fda088fa..43d836efa12 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DelayButtonSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DelayButtonSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialSpecifics.qml index b1fc7b60319..47d86d1d4e4 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialogSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialogSpecifics.qml index 47a02fc2845..bbe1453c50d 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialogSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialogSpecifics.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Creator. diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DrawerSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DrawerSpecifics.qml index 38242385db6..df3a568b3bf 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DrawerSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DrawerSpecifics.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Creator. diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/FrameSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/FrameSpecifics.qml index 201356811af..0df9c220ee5 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/FrameSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/FrameSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/GroupBoxSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/GroupBoxSpecifics.qml index 5f811e08fda..3bebc986605 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/GroupBoxSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/GroupBoxSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/IconSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/IconSection.qml index a487223608b..465d2bc9a7f 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/IconSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/IconSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** ** Copyright (C) 2022 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/InsetSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/InsetSection.qml index b7d838e62b6..6e368d59746 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/InsetSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/InsetSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** ** Copyright (C) 2022 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ItemDelegateSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ItemDelegateSection.qml index fc5c0e5f0d5..7d13b86618b 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ItemDelegateSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ItemDelegateSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ItemDelegateSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ItemDelegateSpecifics.qml index a3ab1a1a8aa..5031f10015b 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ItemDelegateSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ItemDelegateSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/LabelSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/LabelSpecifics.qml index 01e53e244c0..a88b7c5380a 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/LabelSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/LabelSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PageIndicatorSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PageIndicatorSpecifics.qml index f951120b994..f113fe1d741 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PageIndicatorSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PageIndicatorSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PageSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PageSpecifics.qml index 4b0745617fb..d860a06ed83 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PageSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PageSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PaneSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PaneSection.qml index 78dcd1a9b53..f4104109d7c 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PaneSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PaneSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PaneSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PaneSpecifics.qml index e61b880e5fc..d4cf276d8e3 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PaneSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PaneSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PopupSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PopupSection.qml index acf1df0b2d3..f52c3e9e123 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PopupSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PopupSection.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Creator. diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PopupSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PopupSpecifics.qml index 1f56aff049d..552cd88e601 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PopupSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/PopupSpecifics.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Creator. diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ProgressBarSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ProgressBarSpecifics.qml index 4acec20e119..649d917f44b 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ProgressBarSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ProgressBarSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RadioButtonSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RadioButtonSpecifics.qml index 7573c4a8496..5611bdd9d84 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RadioButtonSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RadioButtonSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RadioDelegateSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RadioDelegateSpecifics.qml index 341f6d73694..d71689db1b1 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RadioDelegateSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RadioDelegateSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RangeSliderSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RangeSliderSpecifics.qml index c3737bf6ebe..bbd769c84bb 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RangeSliderSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RangeSliderSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RoundButtonSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RoundButtonSpecifics.qml index e2b38a3b04d..f6ce86c61a5 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RoundButtonSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/RoundButtonSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ScrollViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ScrollViewSpecifics.qml index 53f4effcc52..b555daa4ae6 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ScrollViewSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ScrollViewSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SliderSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SliderSpecifics.qml index 8b04f8c1a26..d5d72e975eb 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SliderSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SliderSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SpinBoxSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SpinBoxSpecifics.qml index 83486e7f14b..b23dbc6af21 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SpinBoxSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SpinBoxSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/StackViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/StackViewSpecifics.qml index 7f70792e96f..9f16e8855cf 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/StackViewSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/StackViewSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwipeDelegateSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwipeDelegateSpecifics.qml index e888c6500bd..6fe6255bb09 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwipeDelegateSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwipeDelegateSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwipeViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwipeViewSpecifics.qml index f12353e6512..d2bb5397262 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwipeViewSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwipeViewSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwitchDelegateSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwitchDelegateSpecifics.qml index 8f5b4d00008..618c9f7db5c 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwitchDelegateSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwitchDelegateSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwitchSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwitchSpecifics.qml index 77487cf28bc..40660736bfb 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwitchSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/SwitchSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TabBarSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TabBarSpecifics.qml index e58a8abf71e..18bfab40da7 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TabBarSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TabBarSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TabButtonSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TabButtonSpecifics.qml index 7573c4a8496..5611bdd9d84 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TabButtonSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TabButtonSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextAreaSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextAreaSpecifics.qml index 2efd3333a03..723ae01caa5 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextAreaSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextAreaSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextFieldSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextFieldSpecifics.qml index 3c4c0dc8dc4..44e5e79e447 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextFieldSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextFieldSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextSection.qml index e5b2bcae655..18a0e7bab3d 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TextSection.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolBarSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolBarSpecifics.qml index 3bd62e1acbf..0a8a20acf3b 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolBarSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolBarSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolButtonSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolButtonSpecifics.qml index 7e9e2ada89a..701611eb81c 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolButtonSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolButtonSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolSeparatorSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolSeparatorSpecifics.qml index 34e74c87ae3..7815bf4bd6f 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolSeparatorSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/ToolSeparatorSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TumblerSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TumblerSpecifics.qml index 5769a040070..da309d9b652 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TumblerSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/TumblerSpecifics.qml @@ -1,36 +1,25 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** This file is part of Qt Creator. ** -** $QT_BEGIN_LICENSE:LGPL3$ ** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ From de4c8cb174feb422b6022216f798a51dcb26efa7 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 1 Jul 2022 12:56:40 +0200 Subject: [PATCH 12/33] Doc: Describe Squish Coco plugin Fixes: QTCREATORBUG-27693 Change-Id: Ia4fadaeca08fc0f63d761394f1b8750a3ae6c010 Reviewed-by: David Schulz --- ...-coveragebrowser-load-execution-report.png | Bin 0 -> 10187 bytes doc/qtcreator/images/qtcreator-coco.png | Bin 0 -> 5550 bytes .../src/analyze/creator-analyze.qdoc | 22 ++-- doc/qtcreator/src/analyze/creator-coco.qdoc | 120 ++++++++++++++++++ .../analyze/creator-valgrind-overview.qdoc | 2 +- .../editors/creator-editors-options-text.qdoc | 22 ++-- doc/qtcreator/src/qtcreator-toc.qdoc | 1 + .../src/qtquick/qtquick-profiler.qdoc | 2 +- 8 files changed, 148 insertions(+), 21 deletions(-) create mode 100644 doc/qtcreator/images/coco-coveragebrowser-load-execution-report.png create mode 100644 doc/qtcreator/images/qtcreator-coco.png create mode 100644 doc/qtcreator/src/analyze/creator-coco.qdoc diff --git a/doc/qtcreator/images/coco-coveragebrowser-load-execution-report.png b/doc/qtcreator/images/coco-coveragebrowser-load-execution-report.png new file mode 100644 index 0000000000000000000000000000000000000000..b99df7773d097fc4600e29aaa4668502bc91e672 GIT binary patch literal 10187 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 VHTSu>85kHCJYD@<);T3K0RUjK@HGGc literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-coco.png b/doc/qtcreator/images/qtcreator-coco.png new file mode 100644 index 0000000000000000000000000000000000000000..851897ef2b314201253eb703412fb798a82de205 GIT binary patch literal 5550 zcmeAS@N?(olHy`uVBq!ia0y~yV0^~Fz_5gaiGhLPteBKH1A}O(r;B4q#jUq<|Mtr~ ztv&G9`|3aTzZ(zgitgK7X*iWb-!m)2nc@ELpK&>p3!d-ZTf5VE-IP^KJ>_qUf>y6u zbue3d>MH9itA1SLI=X1$`2%u)E~w>-C~&)E9>{bOy0mIhN1KLkUH1OZn~cw&u`#xO zJ^SwMnSX1(I-WUe_xVoEe&f$K)92m%{LaczfW>i%O4-T!|Ly`Tj$djP;GBydind;HD)VtEJ}TIYwPQ; z*W>xuO`rPd(zYqJ->)t_Uz=R=XYEdL`#rx7$NzhAeE+Wpv+b*kf8ITQ^xWip`RcEa z>;GNUuU9(J^haXZo9y)Wx1PGZ^XloDqWjLOx>wmpz@^RU%Af50|D^4*v%|NoeRKcT zj<>UqZ|{%2_JYCo7c6T2 zZ(qLkl-b+YRlmH>{qz(owfmM^@b=A3?dyS)C!FJKQm8tA%dl3~`)2jL{lB07uX%fD zceeT7iu39F3~L_koqYfI(XD^>|NUrR_v6#m{}&?bjjVoGVav&{!MR>&09XxS8_M= z>xNBxYt6oQ%oJ`?*koatWK&o3{-(KI-RpnTm$A*;|NGHz{XeJO*T3Ii^M3yR&u6UX z*L-iBzAXRlp7#gMo#pJ+%%;n(N_a07`&?tTLPy-!t>2F4YDWLqd%C{hWBdOP&Hrov ztMC7{^25{osi{vNeE$CDF2CMMub&g{-?snl_bxhKuKM%D7m~d1k2^Xo$?TiXJYV9Y ze@Vr*lDIEts#|<}EDje<@fA37?)NU;?BhY(4zJa}^ZV=nf6uPh{rWU-{k^xt$GfJeRU#(H3>%rsk|t=G{B5Z^&X!{`~CxF=p3t=DUyGuRaF3PPT*ZpQi7H)8F&@ z{{EX9I8*oI+W)J|_X%aE=TK51{M{E-`$mT6Oy^Hn?LovMA5%MmWH?SrjK4*zuS{-xV_}h zMPW%dp*@c;m%r;x%$?G^iLvVYs+-0ZJ2uQXE#B4MFLTyl(t;(LCl}>R;hpekwVN96 zwD7+3a(0s{ReU|gQWxhmT+yyh`{wb?@ur5fg7m4lnKNzYRI2!bObS~6=F+EAU(Vz_ zn`jbfc8bko@22jhPglO2c}6+2%;~1Gf3De^8!@uCejbjA%HFXt?9I)|`fKtw{eRth zp=X_)=^gHu6qi}Eefpk+jnA@=(XDSCV6hotHZ0G)f%2*Ei@JM zFs?oHs)kD=di@)xjU^dbR%VOdto?lY*{4sfYmY7UlD_>;Wm4LvQ)b6H_m-bpwLFu5 z?xs^Gudm8e`tmg>KYdEWCg#j#0THtPjH$1u>dudxXJaBd`|_eUS(-cUy!M#Ysb!tS zlijB@btUKeC0(z-1zgNc`TY1ucmHj8~UAtVI z@cqieN#zsra^9UwxRI+=cH2|;(G%{~vv;rko(l1ym-&+mm%BN zb64EC#Vg8mo?Q5$_0rpT%ej4juTMJ^^Wp0QPj^qnM-8j;mln?Y8Pu^k^!j?%de&W~ zx-VK4UibRFnakc+6buxnY-M!`YTiPVAORwe~581Y@ch}mx#Yc{KtnP6-eRa{H zvj0cFw#^E;@@3cij8}JZmp)#<#N5|+t}=i52l1Cx0hbEzo9z+35T>7Ie1Brs_R#6; zS+92I*rk;R;L#)E8~+PCMP($m&{eRb02H7Bl%Y*GI1wKnelrYN!1&zfG> zo{e_eeEwd@wz4fRV%N`^a`y1!`uNf|{(Bpv3-5kDb2fQb+UXa5Th1TZvitg*Jsa}+ zyn3EKV>tCk^j+qaqV3W59vz*Pm>+iXz57>RjWD-`&JPk=ozoMPj$L`U_)WsXnyFuw zO0FsH{(Jqu+uP{5+kFcdR;-SjlQv7_QO;K3>rLO@F0{Vhv~1?wzz=Rmiq!?zy}1)q zSCeF9HkEf`@x>UuQ$KD*eOtR`>g>0vHG2ci!mq7neSExXYmV;pp8uk2zqP%4`>*@l zjN5V*+c)P2dd!NQd7961=UVfu-*2Px_1>ObGDq*%Ws^O^<^0iemwn6MsHYeir(bdW z&^3|9e@S`aH$To}eDU5t*(SAj^_zs&$>H0c%{{qx$ve(@%g?>lx_!UCe9Bs# z-B(^c^@{z$;MX!Y>Yv^{w_@SH08{@TX%!iHTF)P`p>ho z<8I%|oZP#AZfCLYSG;s3ZHZ=hN$cd$vIPMLy;fzi#b1@nTYmG`t~5RCH;yF-f)&qS zsPV6TZ1UN*rDtd8^>wVT6BqnCu_gMt(~FrOmV7?;%x?C_@0Y!9cJI8n@#75%uUxmk zG4~>0>h$+Nn|qS?{;6mEuRdum-`}hLceeDqa4UYjEsaZNPTgPkW+{J6`G@uL-LG#g zbia1$s@2(f|2IShxv#Qc*ZQ{pM1EpnVM>Y4XOCHuf!jXLTt4qd_oR|P2dkt`Pu+N4 zytrU;=(mlnM;}hSct$yMS=7x_@fFJpA}*GuF5exau{)nn@6@?9n|`J*WZ03#lY0KF zytI_uNt;P(r`&Ebyxfz4X`R&Dt0o2p8i)O7nw&70lpqtoIESIZ zq;V4?q9*gzg;i^IPuvCmeo)+h|L>i>=6Ak7$WN2<{BZ32o$gIPgQXfuK($yjf1mxN z)6eB?11rAt8+9&GU{ENZ6+;K=>}=|HPyD-L zhi8;C!IfcM>h!Q<%hHYem)zt`)xMwkq=tR&v)$|V-dE2}s@Y$3zs51-^OMOzDqqj~ zpIv{wXg~Ar-|;)9CRp8EaJMOgKT_#<;q19zj!fU~s!?51WoA~ts^)N2^5Zi(*0_t(D)Tk|&CIalV+hV1Dxe|Jyv zR)4#UPn+YEU))XZqfaNUoOxr;&KozX(r(7Y?F-0{soK<=TQ1~j9GNQpIQ#5PP3N5d z;davP^|^mvJ$u!${N}G;QU5h>S9pKEQ?MlZ=EcuVp6U=SOw(;+;Imz0arC{+PeYt}C}9&zjY3U1PZ1;c%JqlNGL7 zza#dU*jUO+M_)cx^fYL3*|EsVjoYqf#8_$CPfPidd;DnE#ZM_`<38l*o$WarK5u2U zl=ke|dsSPO%-pic*)&U@;r_$&_mXdOn=cu@$&m?9=85Z)*}43uW7pK=F9#x{+Y8cn zhEEUGIM1@({rgHvM>yu)lfChvj#UHnDs^^47Oi3Ug|1{pM#C@T4O?*Y4UTY3b9aekWb&yy$fE^Up^Yo`mH1#g{DKl&wB> z>iUrBbDwsL7T3P~qusl9xp%Ph)TqT}w<3a9?hU%XDM~NwEbDXC?b^k{t2f?FXY!bJ zS2C47eb-d>)Mt%3yP|6wmbJ*(6!*T{bN<-o_m^h<=3BD&D#vPP@6_FoK8Q!&-d`sC ze&W?HkN0Q$DaqdV&VAFoUiiJG5hmnUmkM{`9j`zka$tKE8JO>1#zV zU+&u3c`>dee$#LB`jC4fT5sP(i%d!jf3~T1KIg|6wr94<7cH%?I2Q{U z?o!96NqcuC=v<#SA??_vyEzN9&a_G(DylONoBs-+v$)q5X&*1ht<$DXJy!I1=cdaGzU|n#(BtRSs#v$n*FF_Xn`YlUn31r?(CquZCna(* z8O`pK!neJzJ1cAbd*1dRdRotU&7SP@-}b3?leKcc{MCuAzbBlkvw2z{w|sT;@{M&< za_!b~Ri}u*h~M9N%O_v;yq)?azXz&!?KCFyygS~@G+C(k!toggSN5M1U-B~{x41U< zvT?yj`?@P@dhT3(V7jRO)GeclFW#K_``xCJOC<99YUQbSe;vtK_~z)+_G4;E!FA{6 zZd)<`thM&sr=9Jeu7>~NT{HEp{MDzyrs+aY3jaU*bnyMAOO*u+c~yM>{n|L)Zrzf4 zkFCY?{cfw-PUK^K*}cE+&!wby2QPjE7p4CaY*)|kS*B3CVUXf8lS)X-$#F)l_lMTrkJQkf_oh`SO1)| zWoNUiFG#BT_TtW;!^OwJHN(4~huib^JZCs{PqJv|on#irEy6`tGuAJ=zwh~h<$QPa zC$mYq3H3bAp2Ev8K`p?Hf#DPz1H%+vhK5ZmS&=x53=FBvU_Piv*02e}hxO1ve2`uk zUjx092IWJ|W&p{_%gS;^xPsQ z4QU0_HinHoGLBtqef)RHo5#<$-#If~_}+ixt;eqY6rI9*;rl5) z5%2b8%O*eE@}uhYpG{vMcWL;TOpbVd+xZeta2bx>*ki#+tgd#{A)gS@12Pt zf0}4U+ikS2%+TVTwmP~u$~7|BDt@}?$&!7sDrXH+^LH~f9+~`ni^lG#R~`_@?wz9V z<0I$A5PTu^{HdU=dW$Bub|uc~GBH>br>i+TA~83^Z1pv%eQBNwnQfZYyG1Xklb@TOqP0h7jkrZ*N>gt4vj|#n=r_Oq*zjPz%;uBdCYl_cviB}mhEV<^zRk_08G7vI`GGTAv>P@tURsj#lfC)a zG4)9cD%R=ggA}9c4UU(ijo-RX@+iX|5E#p&t+Q~wr%Q;q_<9AV{XPou7CD+%HgTGQuYDu z9j6xLG}MKCOUf(Bu`%?^wJ`r8y?oBswn8(rSO30Nrm`h0&M~!~UT&VLr{1tca@89b ztp(45*6T@Xb3cFceC?!NQ@taap7O?DT%HWCs1(QoyzsbCQ;PkCWD4_>f#)R7Y&=9 zKkMh^?N5>OH1@e!8^<_>cY+kS?HPFvrR}*Clq`>)n9g{w?DyNt#>T}$pFiJB$@3Gs zv%mho!-;bHZ \uicontrol {About Plugins} > + \uicontrol Utilities > \uicontrol Coco to enable the plugin. + \li Select \uicontrol {Restart Now} to restart \QC and load the plugin. + \endlist + + \section1 Configuring Coco + + \list 1 + \li Select \uicontrol Analyze > \uicontrol {Squish Coco}. + \image qtcreator-coco.png "Coco CoverageBrowser and CSMes file" + \li In \uicontrol {CoverageBrowser}, enter the path to the Coco + coverage browser to use for analyzing a .csmes file. + \li In \uicontrol CSMes, select the instrumentation database to load. + \li Select \uicontrol Open to start CoverageBrowser. + \li In CoverageBrowser, select \uicontrol File > + \uicontrol {Load Execution Report} and select the .csexe for the + coverage scan. + \image coco-coveragebrowser-load-execution-report.png "Load Execution Report dialog" + \li If you want to reuse the execution report, deselect the + \uicontrol {Delete execution report after loading} check box. + \endlist + + Open the analyzed files in \QC. The results of the analysis are displayed + after the code in \uicontrol Edit mode. You can change the fonts and colors + used for different types of results. + + \section1 Changing Fonts and Colors + + To change the default fonts and colors, select \uicontrol Tools > + \uicontrol Options > \uicontrol {Text Editor} > \uicontrol {Font & Colors}. + Create your own color scheme and select new fonts and colors for the + following results: + + \list + \li Code Coverage Added Code + \li Partially Covered Code + \li Uncovered Code + \li Fully Covered Code + \li Manually Validated Code + \li Code Coverage Dead Code + \li Code Coverage Execution Count too Low + \li Implicitly Not Covered Code + \li Implicitly Covered Code + \li Implicit Manual Coverage Validation + \endlist + + For more information, see \l{Specifying Text Editor Settings}. +*/ diff --git a/doc/qtcreator/src/analyze/creator-valgrind-overview.qdoc b/doc/qtcreator/src/analyze/creator-valgrind-overview.qdoc index 384ff4d1a91..0692f3f6b25 100644 --- a/doc/qtcreator/src/analyze/creator-valgrind-overview.qdoc +++ b/doc/qtcreator/src/analyze/creator-valgrind-overview.qdoc @@ -30,7 +30,7 @@ // ********************************************************************** /*! - \previouspage creator-qml-performance-monitor.html + \previouspage creator-coco.html \page creator-valgrind-overview.html \nextpage creator-analyzer.html diff --git a/doc/qtcreator/src/editors/creator-editors-options-text.qdoc b/doc/qtcreator/src/editors/creator-editors-options-text.qdoc index a627a5032a7..00c284ada94 100644 --- a/doc/qtcreator/src/editors/creator-editors-options-text.qdoc +++ b/doc/qtcreator/src/editors/creator-editors-options-text.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -40,8 +40,9 @@ \title Specifying Text Editor Settings - Set the font preferences and apply color schemes for syntax highlighting in - \uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor} > + Set the font preferences and apply color schemes for syntax highlighting, + diff editor, and code analysis results in \uicontrol Edit > + \uicontrol Preferences\uicontrol Tools > \uicontrol {Text Editor} > \uicontrol {Font & Colors}. \image qtcreator-font-colors.png "Text editor options" @@ -62,9 +63,8 @@ \section2 Defining Color Schemes - You can select one of the predefined color schemes for syntax highlighting - or create customized color schemes. The color schemes apply to highlighting - both C++ and QML files and generic files. + You can select one of the predefined color schemes or create customized + color schemes. To create a color scheme: @@ -77,20 +77,20 @@ \li Enter a name for the color scheme and click \uicontrol OK. \li In the \uicontrol Foreground field, specify the color of the selected - code element. + code element or message. \li In the \uicontrol Background field, select the background - color for the code element. + color for the code element or message. The backgound of the \uicontrol Text element determines the background of the code editor. \li In \uicontrol Font, select \uicontrol Bold or \uicontrol Italic to - format the text of the selected code element by making it bold or - italic. + format the text of the selected code element or message by making it + bold or italic. \li In \uicontrol Underline, select the color and style to use for - underlining code elements. + underlining code elements or messages. \endlist diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc index b401e05bffa..ec7e5148726 100644 --- a/doc/qtcreator/src/qtcreator-toc.qdoc +++ b/doc/qtcreator/src/qtcreator-toc.qdoc @@ -193,6 +193,7 @@ \li \l{Analyzing Code} \list \li \l{Profiling QML Applications} + \li \l{Checking Code Coverage} \li \l{Using Valgrind Code Analysis Tools} \list \li \l{Detecting Memory Leaks with Memcheck} diff --git a/doc/qtcreator/src/qtquick/qtquick-profiler.qdoc b/doc/qtcreator/src/qtquick/qtquick-profiler.qdoc index 97c8d45fe19..d2fafc7e38e 100644 --- a/doc/qtcreator/src/qtquick/qtquick-profiler.qdoc +++ b/doc/qtcreator/src/qtquick/qtquick-profiler.qdoc @@ -36,7 +36,7 @@ \nextpage studio-advanced.html \else \previouspage creator-analyze-mode.html - \nextpage creator-valgrind-overview.html + \nextpage creator-coco.html \endif \title Profiling QML Applications From 946d08c6fdb8b66e47d450c517a775633d5c564c Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 4 Jul 2022 18:16:19 +0200 Subject: [PATCH 13/33] Fix display of build errors/warnings in status bar We show a summary of errors/warnings with icons in the status bar, if the "Progress Details" are toggled off. The change that fixed the size of that details widget to a grid, to prevent constant relayouting of the output pane buttons while indexing runs, broke the size of the build result summary. The size was adapted in ProgressManagerPrivate::updateStatusDetailsWidget() but that is only called when FutureProgress::setWidget is called. When the build manager later makes the warning/error details visible, the size was left at the minimum size of 20 pixels, leading to the widget being cut off. Amends b4f2ac0dd45c62d04a75c3e445734a0b37961dec Change-Id: Ia41cf3db7e4485dff4712412976c1d4f5dd315b2 Reviewed-by: David Schulz --- .../progressmanager/progressmanager.cpp | 40 ++++++++++++------- .../progressmanager/progressmanager_p.h | 1 - 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.cpp b/src/plugins/coreplugin/progressmanager/progressmanager.cpp index fc14df4257e..cac1b2bc427 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager.cpp +++ b/src/plugins/coreplugin/progressmanager/progressmanager.cpp @@ -226,6 +226,27 @@ using namespace Utils; static ProgressManagerPrivate *m_instance = nullptr; +const int RASTER = 20; + +class StatusDetailsWidgetContainer : public QWidget +{ +public: + StatusDetailsWidgetContainer(QWidget *parent) + : QWidget(parent) + {} + + QSize sizeHint() const override + { + // make size fit on raster, to avoid flickering in status bar + // because the output pane buttons resize, if the widget changes a lot (like it is the case for + // the language server indexing) + const QSize preferredSize = layout()->sizeHint(); + const int preferredWidth = preferredSize.width(); + const int width = preferredWidth + (RASTER - preferredWidth % RASTER); + return {width, preferredSize.height()}; + } +}; + ProgressManagerPrivate::ProgressManagerPrivate() : m_opacityEffect(new QGraphicsOpacityEffect(this)) { @@ -273,13 +294,13 @@ void ProgressManagerPrivate::init() summaryProgressLayout->setContentsMargins(0, 0, 0, 2); summaryProgressLayout->setSpacing(0); m_summaryProgressWidget->setLayout(summaryProgressLayout); - m_statusDetailsWidgetContainer = new QWidget(m_summaryProgressWidget); - m_statusDetailsWidgetLayout = new QHBoxLayout(m_statusDetailsWidgetContainer); + auto statusDetailsWidgetContainer = new StatusDetailsWidgetContainer(m_summaryProgressWidget); + m_statusDetailsWidgetLayout = new QHBoxLayout(statusDetailsWidgetContainer); m_statusDetailsWidgetLayout->setContentsMargins(0, 0, 0, 0); m_statusDetailsWidgetLayout->setSpacing(0); m_statusDetailsWidgetLayout->addStretch(1); - m_statusDetailsWidgetContainer->setLayout(m_statusDetailsWidgetLayout); - summaryProgressLayout->addWidget(m_statusDetailsWidgetContainer); + statusDetailsWidgetContainer->setLayout(m_statusDetailsWidgetLayout); + summaryProgressLayout->addWidget(statusDetailsWidgetContainer); m_summaryProgressBar = new ProgressBar(m_summaryProgressWidget); m_summaryProgressBar->setMinimumWidth(70); m_summaryProgressBar->setTitleVisible(false); @@ -616,8 +637,6 @@ void ProgressManagerPrivate::updateVisibilityWithDelay() QTimer::singleShot(150, this, &ProgressManagerPrivate::updateVisibility); } -const int RASTER = 20; - void ProgressManagerPrivate::updateStatusDetailsWidget() { QWidget *candidateWidget = nullptr; @@ -645,15 +664,6 @@ void ProgressManagerPrivate::updateStatusDetailsWidget() } } - // make size fit on raster, to avoid flickering in status bar - // because the output pane buttons resize, if the widget changes a lot (like it is the case for - // the language server indexing) - if (candidateWidget) { - const int preferredWidth = candidateWidget->sizeHint().width(); - const int width = preferredWidth + (RASTER - preferredWidth % RASTER); - m_statusDetailsWidgetContainer->setFixedWidth(width); - } - if (candidateWidget == m_currentStatusDetailsWidget) return; diff --git a/src/plugins/coreplugin/progressmanager/progressmanager_p.h b/src/plugins/coreplugin/progressmanager/progressmanager_p.h index edd933fa2cb..b28ad4f711d 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager_p.h +++ b/src/plugins/coreplugin/progressmanager/progressmanager_p.h @@ -101,7 +101,6 @@ private: StatusBarWidget *m_statusBarWidgetContainer; QWidget *m_statusBarWidget; QWidget *m_summaryProgressWidget; - QWidget *m_statusDetailsWidgetContainer = nullptr; QHBoxLayout *m_statusDetailsWidgetLayout = nullptr; QWidget *m_currentStatusDetailsWidget = nullptr; QPointer m_currentStatusDetailsProgress; From 5d3b8c4d887a020a08289a512aa867fad3955ab6 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 4 Jul 2022 10:02:46 +0200 Subject: [PATCH 14/33] tst_QtcProcess::crashAfterOneSecond(): Increase the timeout Increase the timeout to default 30 seconds when waiting for finished. Apparently 2 seconds were sometimes too short. We still ensure that waitForFinished didn't timeout but finished eariler. Change-Id: I12ca647b45537174c7c66d271e7c8a477184f2ff Reviewed-by: Eike Ziller Reviewed-by: Reviewed-by: Qt CI Bot --- tests/auto/utils/qtcprocess/tst_qtcprocess.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp b/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp index c422b690d1f..1294774e3a5 100644 --- a/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp +++ b/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp @@ -1208,8 +1208,8 @@ void tst_QtcProcess::crashAfterOneSecond() timer.start(); // Please note that QProcess documentation says it should return false, but apparently // it doesn't (try running this test with QTC_USE_QPROCESS=) - QVERIFY(process.waitForFinished(2000)); - QVERIFY(timer.elapsed() < 2000); + QVERIFY(process.waitForFinished(30000)); + QVERIFY(timer.elapsed() < 30000); QCOMPARE(process.state(), QProcess::NotRunning); QCOMPARE(process.error(), QProcess::Crashed); } From 5e96768eac138b634e11e41183338829fa8a6b53 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 4 Jul 2022 17:58:45 +0200 Subject: [PATCH 15/33] QmlDesigner: Rename Connections View to simply Connections Change-Id: I13f126b5a847cdd047a39063fd0d68c6606c24fa Reviewed-by: Brook Cronin Reviewed-by: Reviewed-by: Mats Honkamaa Reviewed-by: Thomas Hartmann --- .../components/connectioneditor/connectionview.cpp | 2 +- .../components/connectioneditor/connectionviewwidget.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp b/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp index 5043cec88b0..4884925c0e3 100644 --- a/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp +++ b/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp @@ -210,7 +210,7 @@ WidgetInfo ConnectionView::widgetInfo() QLatin1String("ConnectionView"), WidgetInfo::LeftPane, 0, - tr("Connection View")); + tr("Connections")); } bool ConnectionView::hasWidget() const diff --git a/src/plugins/qmldesigner/components/connectioneditor/connectionviewwidget.cpp b/src/plugins/qmldesigner/components/connectioneditor/connectionviewwidget.cpp index de64139cb91..dc230ef86c1 100644 --- a/src/plugins/qmldesigner/components/connectioneditor/connectionviewwidget.cpp +++ b/src/plugins/qmldesigner/components/connectioneditor/connectionviewwidget.cpp @@ -70,7 +70,7 @@ ConnectionViewWidget::ConnectionViewWidget(QWidget *parent) : editorForDynamic(); - setWindowTitle(tr("Connections", "Title of connection view")); + setWindowTitle(tr("Connections", "Title of connections window")); ui->setupUi(this); QStyle *style = QStyleFactory::create("fusion"); @@ -81,9 +81,9 @@ ConnectionViewWidget::ConnectionViewWidget(QWidget *parent) : ui->tabBar->setUsesScrollButtons(true); ui->tabBar->setElideMode(Qt::ElideRight); - ui->tabBar->addTab(tr("Connections", "Title of connection view")); - ui->tabBar->addTab(tr("Bindings", "Title of connection view")); - ui->tabBar->addTab(tr("Properties", "Title of dynamic properties view")); + ui->tabBar->addTab(tr("Connections", "Title of connection tab")); + ui->tabBar->addTab(tr("Bindings", "Title of connection tab")); + ui->tabBar->addTab(tr("Properties", "Title of dynamic properties tab")); const Qt::Alignment headerAlignment = Qt::AlignLeft | Qt::AlignVCenter; ui->connectionView->horizontalHeader()->setDefaultAlignment(headerAlignment); From 106f034caf7b7278100fd194b7768802ca994b72 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 4 Jul 2022 17:59:40 +0200 Subject: [PATCH 16/33] QmlDesigner: Rename text editor view from "Text" to "Code" Change-Id: Ic279e33d051c071417ae9ea1bf45027c7f9d2c04 Reviewed-by: Brook Cronin Reviewed-by: Reviewed-by: Mats Honkamaa Reviewed-by: Thomas Hartmann --- .../qmldesigner/components/texteditor/texteditorview.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp index 077a6e14c36..30375f9fc04 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp +++ b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp @@ -146,7 +146,7 @@ void TextEditorView::nodeReparented(const ModelNode &/*node*/, const NodeAbstrac WidgetInfo TextEditorView::widgetInfo() { - return createWidgetInfo(m_widget, "TextEditor", WidgetInfo::CentralPane, 0, tr("Text"), DesignerWidgetFlags::IgnoreErrors); + return createWidgetInfo(m_widget, "TextEditor", WidgetInfo::CentralPane, 0, tr("Code"), DesignerWidgetFlags::IgnoreErrors); } void TextEditorView::contextHelp(const Core::IContext::HelpCallback &callback) const From 26f135f2438b55e299406743cf714206fb2ada98 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 1 Jul 2022 16:25:53 +0200 Subject: [PATCH 17/33] ProjectExplorer: Drop unused Macro::toByteArray(const QVector &) Change-Id: Ic3f0b8bda4fac1d31e2b3239e4a3ee261547b30a Reviewed-by: Christian Kandeler Reviewed-by: Qt CI Bot Reviewed-by: --- src/plugins/projectexplorer/projectmacro.cpp | 10 ---------- src/plugins/projectexplorer/projectmacro.h | 1 - 2 files changed, 11 deletions(-) diff --git a/src/plugins/projectexplorer/projectmacro.cpp b/src/plugins/projectexplorer/projectmacro.cpp index 4a6ca945c97..5692382aa88 100644 --- a/src/plugins/projectexplorer/projectmacro.cpp +++ b/src/plugins/projectexplorer/projectmacro.cpp @@ -63,16 +63,6 @@ QByteArray Macro::toByteArray(const Macros ¯os) return text; } -QByteArray Macro::toByteArray(const QVector ¯osVector) -{ - QByteArray text; - - for (const Macros ¯os : macrosVector) - text += toByteArray(macros); - - return text; -} - Macros Macro::toMacros(const QByteArray &text) { return tokensLinesToMacros(tokenizeLines(splitLines(text))); diff --git a/src/plugins/projectexplorer/projectmacro.h b/src/plugins/projectexplorer/projectmacro.h index 0cdef8fee3e..059f630841e 100644 --- a/src/plugins/projectexplorer/projectmacro.h +++ b/src/plugins/projectexplorer/projectmacro.h @@ -61,7 +61,6 @@ public: QByteArray toByteArray() const; static QByteArray toByteArray(const Macros ¯os); - static QByteArray toByteArray(const QVector ¯oss); static Macros toMacros(const QByteArray &text); From d059a610b1243f99984a15fdda38a8e3db048708 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 24 Jun 2022 09:57:23 +0200 Subject: [PATCH 18/33] COIN: Arm auto tests Some of our auto tests fail, so add an EXCLUDE_FROM_PRECHECK option for add_qtc_test, which sets a corresponding label on the ctest, and exclude these when running ctest on COIN. Disable the Googletest based unittests for now, they are inconsistently failing on CI, e.g. sometimes timing out after 60 seconds for tests that usually take only a fraction of a second. tst_perfdata from the perfparser submodule also fails. Temporarily disable it explicitly, until the EXCLUDE_FROM_PRECHECK change can be merged there. Change-Id: I7e9d7aded75bbe8800f82f7aa125c181271a2a1f Reviewed-by: Qt CI Bot Reviewed-by: Jarek Kobus Reviewed-by: --- cmake/QtCreatorAPI.cmake | 28 +++++++++++++++---- coin/instructions/test.yaml | 3 +- .../mesonprojectmanager/CMakeLists.txt | 2 ++ tests/auto/debugger/CMakeLists.txt | 1 + tests/auto/qml/codemodel/check/CMakeLists.txt | 1 + .../qml/codemodel/dependencies/CMakeLists.txt | 1 + .../qml/codemodel/importscheck/CMakeLists.txt | 1 + .../qml/qmldesigner/coretests/CMakeLists.txt | 1 + .../tracing/flamegraphview/CMakeLists.txt | 2 ++ .../tracing/timelinerenderer/CMakeLists.txt | 1 + tests/auto/utils/qtcprocess/CMakeLists.txt | 1 + tests/unit/unittest/CMakeLists.txt | 4 ++- 12 files changed, 38 insertions(+), 8 deletions(-) diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake index d61d4d4c43e..257d351426b 100644 --- a/cmake/QtCreatorAPI.cmake +++ b/cmake/QtCreatorAPI.cmake @@ -807,10 +807,10 @@ function(extend_qtc_executable name) endfunction() function(add_qtc_test name) - cmake_parse_arguments(_arg "GTEST;MANUALTEST" "TIMEOUT" + cmake_parse_arguments(_arg "GTEST;MANUALTEST;EXCLUDE_FROM_PRECHECK" "TIMEOUT" "DEFINES;DEPENDS;INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;SKIP_PCH;CONDITION" ${ARGN}) - if ($_arg_UNPARSED_ARGUMENTS) + if (${_arg_UNPARSED_ARGUMENTS}) message(FATAL_ERROR "add_qtc_test had unparsed arguments!") endif() @@ -871,6 +871,9 @@ function(add_qtc_test name) if (NOT _arg_GTEST AND NOT _arg_MANUALTEST) add_test(NAME ${name} COMMAND ${name}) + if (_arg_EXCLUDE_FROM_PRECHECK) + set_tests_properties(${name} PROPERTIES LABELS exclude_from_precheck) + endif() if (DEFINED _arg_TIMEOUT) set(timeout_option TIMEOUT ${_arg_TIMEOUT}) else() @@ -880,17 +883,32 @@ function(add_qtc_test name) endif() endfunction() -function(finalize_qtc_gtest test_name exclude_sources_regex) +function(finalize_qtc_gtest test_name) if (NOT TARGET ${test_name}) return() endif() + + cmake_parse_arguments(_arg "EXCLUDE_ALL_FROM_PRECHECK" "EXCLUDE_SOURCES_REGEX" + "EXCLUDE_FROM_PRECHECK" ${ARGN}) + + if (${_arg_UNPARSED_ARGUMENTS}) + message(FATAL_ERROR "finalize_qtc_gtest had unparsed arguments!") + endif() + get_target_property(test_sources ${test_name} SOURCES) - if (exclude_sources_regex) - list(FILTER test_sources EXCLUDE REGEX "${exclude_sources_regex}") + if (_arg_EXCLUDE_SOURCES_REGEX) + list(FILTER test_sources EXCLUDE REGEX "${_arg_EXCLUDE_SOURCES_REGEX}") endif() include(GoogleTest) gtest_add_tests(TARGET ${test_name} SOURCES ${test_sources} TEST_LIST test_list SKIP_DEPENDENCY) + if(_arg_EXCLUDE_ALL_FROM_PRECHECK) + set_tests_properties(${test_list} + PROPERTIES LABELS exclude_from_precheck) + elseif(_arg_EXCLUDE_FROM_PRECHECK) + set_tests_properties(${_arg_EXCLUDE_FROM_PRECHECK} + PROPERTIES LABELS exclude_from_precheck) + endif() foreach(test IN LISTS test_list) finalize_test_setup(${test}) endforeach() diff --git a/coin/instructions/test.yaml b/coin/instructions/test.yaml index f40036cf611..7786d75f5ed 100644 --- a/coin/instructions/test.yaml +++ b/coin/instructions/test.yaml @@ -3,8 +3,7 @@ instructions: - type: ChangeDirectory directory: "{{.AgentWorkingDir}}/qt-creator/qt-creator_build/build" - type: ExecuteCommand - command: "ctest -j 4 --timeout 60 --output-on-failure" + command: "ctest -j 4 --timeout 60 --output-on-failure --label-exclude exclude_from_precheck --exclude-regex tst_perfdata" maxTimeInSeconds: 600 maxTimeBetweenOutput: 600 userMessageOnFailure: "Failed to run tests, check logs" - ignoreExitCode: true diff --git a/src/plugins/mesonprojectmanager/CMakeLists.txt b/src/plugins/mesonprojectmanager/CMakeLists.txt index ea66df93f88..cea74e07510 100644 --- a/src/plugins/mesonprojectmanager/CMakeLists.txt +++ b/src/plugins/mesonprojectmanager/CMakeLists.txt @@ -91,6 +91,7 @@ file(RELATIVE_PATH TEST_RELATIVE_LIBEXEC_PATH "/${RELATIVE_TEST_PATH}" "/${IDE_L if(WITH_TESTS) add_qtc_test(tst_mesonwrapper + EXCLUDE_FROM_PRECHECK INCLUDES BEFORE "." DEPENDS @@ -111,6 +112,7 @@ add_qtc_test(tst_mesonwrapper ) add_qtc_test(tst_mesoninfoparser + EXCLUDE_FROM_PRECHECK INCLUDES BEFORE "." DEPENDS diff --git a/tests/auto/debugger/CMakeLists.txt b/tests/auto/debugger/CMakeLists.txt index 5ab4c63f244..8dbf475ca6c 100644 --- a/tests/auto/debugger/CMakeLists.txt +++ b/tests/auto/debugger/CMakeLists.txt @@ -51,6 +51,7 @@ if (WITH_DEBUGGER_DUMPERS) get_target_property(qmake_binary Qt5::qmake IMPORTED_LOCATION) add_qtc_test(tst_debugger_dumpers + EXCLUDE_FROM_PRECHECK TIMEOUT 0 DEPENDS Qt5::Network Utils DEFINES diff --git a/tests/auto/qml/codemodel/check/CMakeLists.txt b/tests/auto/qml/codemodel/check/CMakeLists.txt index 462c2765171..ad78f01f5b7 100644 --- a/tests/auto/qml/codemodel/check/CMakeLists.txt +++ b/tests/auto/qml/codemodel/check/CMakeLists.txt @@ -1,4 +1,5 @@ add_qtc_test(tst_qml_check + EXCLUDE_FROM_PRECHECK DEPENDS QmlJS QmlJSTools ExtensionSystem Utils DEFINES QT_CREATOR diff --git a/tests/auto/qml/codemodel/dependencies/CMakeLists.txt b/tests/auto/qml/codemodel/dependencies/CMakeLists.txt index 43e915176a0..606663fb2c7 100644 --- a/tests/auto/qml/codemodel/dependencies/CMakeLists.txt +++ b/tests/auto/qml/codemodel/dependencies/CMakeLists.txt @@ -1,4 +1,5 @@ add_qtc_test(tst_qml_dependencies + EXCLUDE_FROM_PRECHECK DEPENDS QmlJS QmlJSTools ExtensionSystem Utils INCLUDES "${PROJECT_SOURCE_DIR}/src/plugins" DEFINES diff --git a/tests/auto/qml/codemodel/importscheck/CMakeLists.txt b/tests/auto/qml/codemodel/importscheck/CMakeLists.txt index a7c10f9d5e2..60a22d77696 100644 --- a/tests/auto/qml/codemodel/importscheck/CMakeLists.txt +++ b/tests/auto/qml/codemodel/importscheck/CMakeLists.txt @@ -1,4 +1,5 @@ add_qtc_test(tst_qml_importscheck + EXCLUDE_FROM_PRECHECK DEPENDS QmlJS QmlJSTools Utils CPlusPlus INCLUDES "${PROJECT_SOURCE_DIR}/src/plugins" DEFINES diff --git a/tests/auto/qml/qmldesigner/coretests/CMakeLists.txt b/tests/auto/qml/qmldesigner/coretests/CMakeLists.txt index 253c91e4b72..349a721d9e1 100644 --- a/tests/auto/qml/qmldesigner/coretests/CMakeLists.txt +++ b/tests/auto/qml/qmldesigner/coretests/CMakeLists.txt @@ -1,4 +1,5 @@ add_qtc_test(tst_qml_testcore + EXCLUDE_FROM_PRECHECK CONDITION TARGET QmlProjectManager DEFINES QT_CREATOR diff --git a/tests/auto/tracing/flamegraphview/CMakeLists.txt b/tests/auto/tracing/flamegraphview/CMakeLists.txt index 23f73fde899..e34941bd636 100644 --- a/tests/auto/tracing/flamegraphview/CMakeLists.txt +++ b/tests/auto/tracing/flamegraphview/CMakeLists.txt @@ -5,6 +5,7 @@ set(TSTFLAMEGRAPHVIEW_CPP_SOURCES if(${Qt5_VERSION} VERSION_LESS "6.2.0") add_qtc_test(tst_tracing_flamegraphview + EXCLUDE_FROM_PRECHECK DEPENDS Tracing Qt5::QuickWidgets Qt5::Quick Utils SOURCES ${TSTFLAMEGRAPHVIEW_CPP_SOURCES} @@ -12,6 +13,7 @@ if(${Qt5_VERSION} VERSION_LESS "6.2.0") ) else() # < Qt 6.2 add_qtc_test(tst_tracing_flamegraphview + EXCLUDE_FROM_PRECHECK DEPENDS Tracing Qt5::QuickWidgets Qt5::Quick Utils ) diff --git a/tests/auto/tracing/timelinerenderer/CMakeLists.txt b/tests/auto/tracing/timelinerenderer/CMakeLists.txt index 30e44a5cd20..db71a10c4a1 100644 --- a/tests/auto/tracing/timelinerenderer/CMakeLists.txt +++ b/tests/auto/tracing/timelinerenderer/CMakeLists.txt @@ -1,4 +1,5 @@ add_qtc_test(tst_tracing_timelinerenderer + EXCLUDE_FROM_PRECHECK DEPENDS Tracing Qt5::Gui Qt5::Quick SOURCES tst_timelinerenderer.cpp ) diff --git a/tests/auto/utils/qtcprocess/CMakeLists.txt b/tests/auto/utils/qtcprocess/CMakeLists.txt index c03eee4945b..4040548b334 100644 --- a/tests/auto/utils/qtcprocess/CMakeLists.txt +++ b/tests/auto/utils/qtcprocess/CMakeLists.txt @@ -4,6 +4,7 @@ file(RELATIVE_PATH RELATIVE_TEST_PATH "${PROJECT_BINARY_DIR}" "${CMAKE_CURRENT_B file(RELATIVE_PATH TEST_RELATIVE_LIBEXEC_PATH "/${RELATIVE_TEST_PATH}" "/${IDE_LIBEXEC_PATH}") add_qtc_test(tst_qtcprocess + CONDITION Qt5_VERSION VERSION_GREATER_EQUAL 6.2.0 TIMEOUT 30 DEFINES "TEST_RELATIVE_LIBEXEC_PATH=\"${TEST_RELATIVE_LIBEXEC_PATH}\"" "PROCESS_TESTAPP=\"${CMAKE_CURRENT_BINARY_DIR}/processtestapp\"" diff --git a/tests/unit/unittest/CMakeLists.txt b/tests/unit/unittest/CMakeLists.txt index a0b39262ef2..70cff54788a 100644 --- a/tests/unit/unittest/CMakeLists.txt +++ b/tests/unit/unittest/CMakeLists.txt @@ -147,7 +147,9 @@ extend_qtc_test(unittest smallstring-benchmark.cpp ) -finalize_qtc_gtest(unittest ".c$") +finalize_qtc_gtest(unittest + EXCLUDE_SOURCES_REGEX ".c$" + EXCLUDE_ALL_FROM_PRECHECK) # Path needs to be before CppEditor target_include_directories(unittest From c67ef789ee6e85c31b9381e1e3ef67678178c4a0 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 5 Jul 2022 12:42:30 +0200 Subject: [PATCH 19/33] AndroidSettingsWidget: Remove unneeded includes Change-Id: I8a0f78868a335125b5ccdbb3554d222d68d5751d Reviewed-by: Alessandro Portale --- src/plugins/android/androidsettingswidget.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp index a2784deaabe..2b0a5864f82 100644 --- a/src/plugins/android/androidsettingswidget.cpp +++ b/src/plugins/android/androidsettingswidget.cpp @@ -32,14 +32,11 @@ #include "androidsdkdownloader.h" #include "androidsdkmanager.h" #include "androidsdkmanagerwidget.h" -#include "androidtoolchain.h" #include -#include #include #include -#include #include #include #include @@ -49,16 +46,10 @@ #include #include #include -#include -#include #include #include #include -#include -#include -#include #include -#include #include #include #include From c7aa3a960577cb4f9ec7fa4cdf53366152d1bc9d Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 5 Jul 2022 12:15:50 +0200 Subject: [PATCH 20/33] AvdDialog: Connect to watcher before setting a future This fixes the runtime warning: "QFutureWatcher::connect: connecting after calling setFuture() is likely to produce race". Change-Id: I5c54ec10cef6bfd43a905e4e48fea05cb7b49297 Reviewed-by: Alessandro Portale --- src/plugins/android/avddialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/android/avddialog.cpp b/src/plugins/android/avddialog.cpp index b92f4cedf84..4f0f8e8a4a4 100644 --- a/src/plugins/android/avddialog.cpp +++ b/src/plugins/android/avddialog.cpp @@ -107,13 +107,13 @@ int AvdDialog::exec() const AndroidAvdManager avdManager = AndroidAvdManager(m_androidConfig); QFutureWatcher createAvdFutureWatcher; - createAvdFutureWatcher.setFuture(avdManager.createAvd(result)); QEventLoop loop; QObject::connect(&createAvdFutureWatcher, &QFutureWatcher::finished, &loop, &QEventLoop::quit); QObject::connect(&createAvdFutureWatcher, &QFutureWatcher::canceled, &loop, &QEventLoop::quit); + createAvdFutureWatcher.setFuture(avdManager.createAvd(result)); loop.exec(QEventLoop::ExcludeUserInputEvents); const QFuture future = createAvdFutureWatcher.future(); From 96c5a8a789d0fc24696e8f893261f476c120d412 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 5 Jul 2022 13:07:37 +0200 Subject: [PATCH 21/33] PipSupport: Connect to watcher before setting a future In order to avoid runtime warning: "QFutureWatcher::connect: connecting after calling setFuture() is likely to produce race". Change-Id: I921396628e5615e7c2d87045d2e787388dbddcc6 Reviewed-by: David Schulz --- src/plugins/python/pipsupport.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/plugins/python/pipsupport.cpp b/src/plugins/python/pipsupport.cpp index b290f75d2ee..3d479f871ba 100644 --- a/src/plugins/python/pipsupport.cpp +++ b/src/plugins/python/pipsupport.cpp @@ -50,13 +50,12 @@ static constexpr char pipInstallTaskId[] = "Python::pipInstallTask"; PipInstallTask::PipInstallTask(const FilePath &python) : m_python(python) { - m_watcher.setFuture(m_future.future()); - connect(&m_process, &QtcProcess::done, this, &PipInstallTask::handleDone); connect(&m_process, &QtcProcess::readyReadStandardError, this, &PipInstallTask::handleError); connect(&m_process, &QtcProcess::readyReadStandardOutput, this, &PipInstallTask::handleOutput); connect(&m_killTimer, &QTimer::timeout, this, &PipInstallTask::cancel); connect(&m_watcher, &QFutureWatcher::canceled, this, &PipInstallTask::cancel); + m_watcher.setFuture(m_future.future()); } void PipInstallTask::setPackage(const PipPackage &package) From df47dad53c2439afcb89ae0000248a3c75ccf7f6 Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Tue, 5 Jul 2022 15:30:27 +0200 Subject: [PATCH 22/33] QmlDesigner: Avoid focus lose live preview Change the behavior of the output pane when an error occurs in the QML live preview to avoid focus lose. Change-Id: I78326af5060c775837d7a2d930c1fdd73b500f16 Reviewed-by: Thomas Hartmann Reviewed-by: Brook Cronin --- src/plugins/qmlpreview/qmlpreviewconnectionmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmlpreview/qmlpreviewconnectionmanager.cpp b/src/plugins/qmlpreview/qmlpreviewconnectionmanager.cpp index e5f5ec8b2d1..67dcb82081c 100644 --- a/src/plugins/qmlpreview/qmlpreviewconnectionmanager.cpp +++ b/src/plugins/qmlpreview/qmlpreviewconnectionmanager.cpp @@ -202,7 +202,7 @@ void QmlPreviewConnectionManager::createPreviewClient() &QmlPreviewClient::errorReported, this, [](const QString &error) { - Core::MessageManager::writeDisrupting("Error loading QML Live Preview:"); + Core::MessageManager::writeFlashing("Error loading QML Live Preview:"); Core::MessageManager::writeSilently(error); }); From b694b1bd6ec7aecf88a18616249c1cff2997babc Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 5 Jul 2022 16:39:38 +0200 Subject: [PATCH 23/33] Doc: Reorganize kit preferences in a table - The settings depend on the setup and a table is easier to browse. - Describe the "Build device" field. Task-number: QTCREATORBUG-27560 Change-Id: I5ec5534f45a069ac92b0c42f5233c8e9cb1648b4 Reviewed-by: Reviewed-by: Christian Kandeler --- doc/qtcreator/images/qtcreator-kits-add.png | Bin 31584 -> 0 bytes doc/qtcreator/images/qtcreator-kits.png | Bin 32416 -> 34560 bytes .../creator-projects-targets.qdoc | 179 ++++++++++-------- 3 files changed, 102 insertions(+), 77 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-kits-add.png diff --git a/doc/qtcreator/images/qtcreator-kits-add.png b/doc/qtcreator/images/qtcreator-kits-add.png deleted file mode 100644 index 396368b5039733e2d7ae7dfaf551a32581030347..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31584 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�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 O@;OgeKbLh*2~7Y!xZY3z diff --git a/doc/qtcreator/images/qtcreator-kits.png b/doc/qtcreator/images/qtcreator-kits.png index efa38f4df6b97249d0c188b0d5a0cdc7412e94e9..9cd08c36cc548a1fe959e8c79dcb31ab9124917a 100644 GIT binary patch literal 34560 zcmeAS@N?(olHy`uVBq!ia0y~yV0z5Jz*Nq`#K6F?@x_T{3=D0@JzX3_DsH{m8$DU( zcoWN}{?b8jrhjn1QGeHXwbAO;=~Y#~KCS-2 z8Zde4%&AlFPX0Oj%$im9Kdxo3zq{jSoZj^FPr2oG@BB0K(Hzz3(A`}s)z@5lcJYA24?eO@|! z$t(ANhmJq@YX3Fqun{u@&x(~NKDhliJ?iZDw^uxF$CtJFx;lED`n{Y*8`tmqrTbFO z4W@jrQT=Dv6jlbdYayRni;bt&IQqCsotk=etNfnN?`9~7Yfsln_EfHa__%nfbM48x znfre#tyN@5&`JxQxc}8L_h6eRlTxqL%IMY9tSecee^c8SEIWg1*`fCCl?)6CS|w>Q zn$vq$G8{NDqw9{DjkS5b-kV+8S%#wPrg$F>Ky^c?Uz&_XSy2Z^@LOulVd{ zoz?Td4|j!5{Bdm8{rcOj^SAjKh%!hB25Vl4ew(IyH2K`QkUMF=ZrUDoZCZBcirecf zrHT9Zm~WXoGg-*%=XU$QCnIA|@0{&bQC1vo+q5j{U%_1NDZcyN&Ob2_WjGKL|w`<&{ixRoR7!M3-ntgl_YIiu?r=Pa(|{al}0YyM95H)i|xe$ra`b>VeaH`wa; zuX}xO`o{Hpe<^O$jj!-wWpJzWS*mqd^_5Ql$&jvd6TFfXPiOibeOc&x`CFcT>c4Cw z3n{<98W-Q$atpEjjk(jZr7ZrXzVO^el`p#*^`;*xxj1vC__7<^&yJRJEsKf0@|#VN z=X9{osY^T8ox2rsrgdX{>(9r*VwE?Te%GDMlwTJ-Bjeho{+WMP9k(+oouF3fI)jUW zXXDBzY0sYpt=y$&^qgnrmf2S$61F@JE=X^Xy1LWv=DCwA{cV;_%F}XuEaxMnsVs0X ze$mJMd!}Bqu~_o|YW4&<-L&1w^%pkV@7^qa#w;tzV`;4Svt3r!!6yS|^vQcIVVcYI zyZ)r?v5-ZJq;jJpYh?6t1GzGHDEY85v|S4+D=WU9_B^OC=E;T!Z=T<6oVrI$LY8-8 zhLZl=O>-v)&p&B3)!@+H1<^)N1pHr|othErRPMCkS-~-H$*KgclaAbyJDZq<-?=X>Sh>>7Gq1=ZN0)RsClpTKng|%|6*`oh~amIq7@-$1VxS)=kk0WqM@! z<;z6rtdq{Mrz1ABbnjU0BK*2wt#+36wX2af{;uIH!HGiQ3q^ePx<8BC@!{uXzQ*ST zC%5sNn`JDycT}uzYsJU;wUY9YCH$^(hu`osBxu!|hz9?*yHLKG?_RRc`G^1RIaVgD zE;L(mT2p9VAU8w9$`1!heV+PUNaw%IWGKqO;KLexFyvSBrv+7SZ>qdqmsV^55q#*i zGsTCMAtAu`>9Mol_x*1!KgP8)<)y^2htR@uuhC^GrUMIRojUjKYWC*mO>=G;PL(#_ z_x@8jp|=R5a8h(tLPL&L%Y##3+Z ztbBOu&723V=VSJ&`J9gtUFUQDhR@Tb+~V8I%RaX*+B1#sSLc*5 z!@=iMmML8pczWvIsaH~8pLSe0|SqRt>M(CQ%zskgM8Docx6q+`*|07 zSB6Xr4_o-(?eh0dXJ{=gO3kcf{ndZv&r9Fb z|B<`z)@@r~qpq^#tH$y7Yzz!Mb5>f+`t*QrP*cJ7rwLQtj4qoS$#sc^6EtOIxA&d8w|^POcUP}hOLZEXTd({%>HGB5mo43kHRivQ zDqrSXD5HIIqC@%j*Y3N+|I~gIvVD8}{GY`P3=GR3d|9S+^7%7ywi!WtRnKiS2)D}G z+Sir1xC9cN%*2=-JJ zn&J>S=Wo>JyLs2<{7w41-$lcIe!-kM}2sFMarlxXbTJ9hozop zzh4Wnxmw^JpyJY3^Ecx*|CuzccM4~&&wux+nw5dU)?{kW4IkGh$E15CJy!LWTB9!vTRAr@q&J@RPd# z-*MK;CEq%qpWbI}u&C`xOlaXZ{y!I|T}!;%Id%S4Hc+^MQfq>itdHxo%^!X(DR#{I zXR@q_m4PAQgXP|pCniP9eXZ8>I6MDNNZp5X)(i{`&HT%ZmMxo9t7*!>aA0S#RPfCk zcP6o~bND}T*6|Q_J(7M%UGlxY;vmo?Z=~K5e>r z%I!NXb{jV;me#$zw6yc2rVlHqL9}}1j!j02^*2wOuzV3-Sv-4Lf))cq!^#5=%_|ug z7?v@C91Nurv}SOD%xzc+E?F8@f&@U#u0v0*q@HZN-S)fZ%FiQDQo#mKH3=5Rz;qo_SuIv;ODemvZr^r?&6!@%p@Fish%vPDV~2S4!n|ubFFDcV+Dy7sER$2e(?M zcM6HkdsV98zW9l;{V%OmFSPR#9%e3j*39$x=L%NiW1JkHuGq;gKl9JiSN_hI!|TsI zxXjWJXe3(cuJ}dXNA+6%OzUT7mK8;n7xF5+>YpojUBAaNz4OD8j5DW7o0j{}f3Y)C zDVz1e@4DxE;%lewIdgz{4xgRH(JzPPMU%4@&AHOKQshAQo4>1L6Ero7B_{2d_F_p} zR_E$TQO`tzEt45p8y=cZJ@x677O2ScaeY7Y%DV06mnB(jExDBVKi6dHm&;R2f?r0M z>DE=a`p^4kWa#thioXBHObe@|U0nvw$IXIlHFpHLmXzdnom$o=eMKv5p2Drk?fm-> zg)kUQojl8HWlUsLT;o4w)Bcr5s??VHm$oxb;hdQ9=}_+iK4y<8{_~Ec z^Vh?V_J6-#k_Arb9b(b^3phFcd*H(`Sm3q)t{Ox-W{F6#jwmsXW6Fm5}7}> zrGIw3X|c)J*59u+<5b6NuN_Q_*Xrh#I)C}e5qVgU|KsLM?t)Er(bnNL4?8k_RA;YT zqI1rmCuN3mH8cOVQ=GdhAGaQvzVOFH(XXD;!54FsC$Dr_-Oy_stXgV+s^FH*@5$ii zTCm{^uZ0m&5iwFar}~cu&HBDrzJE^b^^jBE%;C2tE1BAJEmP|E_N<@hwfN$js<~ZD zi@*Llu^>PDbXM?Q^RszcolB+ft`B~>Wy`fJt&=CtdG#fEJ>8+IxlH$Kz_FI3iNV)a zs<0IqtqJzrJ#ELznolnK*RRZ#5&*|)-!disZ!_W}WK>RleO$JA8qa?HWkLG7d=Z)c zeOLZy%;@sk8us~(OWCgdt?n~78Ll~C&|j?KETXyD{^4G&w=ewvxLkjI=gs2p?_PfY zr}Az?udDIbch627TRH!SNJLU-JBwY&?wZn!BPFv7AKjb(#9-3beR7w#s$Bp4s+{Mj zYrxFEo;6&c0H2hmwX-HMuP(7cLw4(}v#TBkoHdWk}F!PS;wyIBC|(6MhOBeH|{1La$hM9bav@bET(E?cA3$p)c%%KHDr71C{?itih5o!GZIaC)HQS@1J%& zt6$>e2M_-L59L2jIuf^Rg|N+rBVX(eZTr~yFZb`y{D+%;9`QfBKJSUxRK*&*=zv?> zzMc4!lDNqH_Y(0NQOtfbgYV7Bsky_=kf2ots;hPx*)soi&yox7w2v_Rth|3x?1Rj^ zM@yOBO8$9ye#O>3?~ZrIci78?>n{1IxIw(xTvC;pnLnV|*fu4sS~c-g=azf>Z>^l% z`f=Ww-(Nb57Oh{y>R0(N(E4o14ry+N;Frfj;%Z(#UHWwD)~~PM$IWc3Q!3Rn)&JVR za>l*im+OOH{@QE5RDGqs#{Ts{`^XnoAP9IcC5$&b%W31bdyyZr3t z{3D`?S`0I|mNl)MWBX~xlrPU$nn;~pcYS5VuITmGd8&4ATVsFq_w_f+CPkdN_||Hw z&az3boR5`i9o!UFe(cD;E6$RPU9NtS%NO17X+JdM{@Xdv%Fg{$f0Y|^aLR;@=L|(5 z9kO$sA4*Tnj9-!iD%?(j3O8eYP~mo0`|XSVe=g~7K!w})mEZqmd_SEbTd*-?$Amqn z)yn?+z3NK%e(b@IQc?L;vHPq{l6IZ7D17f9w0upg;Y_b0+w}|Crp%dobH2;mWSA#} z_y0VbZxj6UZGQdin<0nJ8XOlq`|m}+Q0M&!X`ksc!mh0P^~fhNVt$EG^}H^-+{B1- zp?OMbCfkng`DGj^#M;4YZ)5thFOzfC$B!ymZ+A{z93Pdy|Lo9;WkU0=m@F1q&$xJ{ z%4?flLB&UzKn<@`Gx=7OSgyHbzUvS7z4vWD7t1p+1T)?XuxJ3a#hMef^7sF}Yku#? zIhE*o^Oc{s-}|MvtO-0Cmbpx6)~9df|8vsKx0k;*`y#xuc;%n%_v(H>S@x;@^J`G+ z@_eSx)34_HHt*d$TVEvn`ZZA3&HJqP-(+wjFv8b$nc}Ibd#7GC1(g^<|DE%-*!%x~ zPCxtKxV69kpYi^s3=A_)W%{_@3*`8l?&9Mb^Tc{8f6xSuKhu~P610{ZAeu2xFUS9x zy>09MKizug>XzS}X0kuK?mf@C*VXa=_Pq}Jdv<-Z$o~HyWpAhc+m+-Q_jBsUj0s^o zeax2?O?$B?j<5dXFxU0t; z7$l5?HK%HOpVq!mzvP*r=yv^{uM6V#mr4Z}?%p2p{FdlEt{;{w_GWrL%T)jS<#=3t zcIfI0qHmT7ef?O~F+DwC&#CouWcJMBv99>){`S(JCf1{$i@%)`s56PXd8kRXOG;Eh zY;*EimdI3-sloMY7z~!6G-zh6{F7K@@W5r+qVi*R7k~fj*jBevXXbA4OE)(rU0?m= z|LSEsXO~ajQvbbr@8N&7)+<)bm?Dv_rd9vwl26yOV<933ty{}ao?Nub{p#Oyrowz% zmdxo3KPb&< zieA9%;~%Y##{b-dW^jHnU|XPt=);jsKPIhHRM>k$uc`gZ}LO9W%Y&ICJ{tuB~K{U=G$4@#gOK zetz8TVe{?V+3)^UFa2(>ao6Vjp)aBm={qA4yqr0chZ4%$NDR}4agR$+8dJS&z+8fj-Csw|mR{f><)U{VJHl4zW zd3B|$AH97s^LVkH`I2Yu2Sc6|YQ8)l{PV?&&3e~YN?dD^5;OPEs!vml+Hz4ixKn@O z*-d^&&o0@#a*6Jdmnm8on?%+73QJtdb<7Xn|NBdPe{j|fo4-%`TW|0vFU;GvXx-|t zl=U;uPmS)K!YS*+$^fd!KYo3b_s@3mz8!jx+&+gm&ruc;Nw*J~dB9snym0dAiwftZ zE8k}rrTZ)`UlT50Ri`r{zvh%pFkI9U8hpxV3 zG&{4ZB-kpwlPbsfRefhLB*gfnnoplUcecHK-m`b_a`n!i*UO*&UTj@;rl{RzseG#2ZYX`TnJPS^ zt7`VTB(441!xq%vyK$lW*B6oH3?H?7&&o#@b9ArLFZTO8eV|MhoEPrd#0tn1DATRL}lR^L`GkL^#p*+0oeGH&m-KXErt zD{^!`ugSZvXWG9K)I6Nw#U6a~-p!dit9U_!S}Q@_?}P}8-jzAI?|sh4w1WG2puT+5 z$^@aax@+*EMJm-%24Sv`mgG&m^Jlqy-PMni=2`^i#ua+6nButJMAPk2 z$uaGsQxBd^dl`Hp$d7?R*e$s7^V#ij^^bc|+Ftwr{dyhre}>nM)iZa$f^@>?DhP2b zKmUz8`COz@#FbSc8f~>@XFOs$D}R0IyctsW^J@6XZm(GZUCUeyx&7}3udsSlh$GvxjxnKwa<-pe5Wm#qS~@y=T=<_U)LX(&F@dy z|3>}huic(=Z=0m%_#VBn_510NGhq)?GtTV%a^z0s@vf9Tb0(b)nP+qL?ZJ;d%Wtkb zU8rzapf4soz%OvJI=_6~({AsIQrUGU{99Kt9C+z-wAyO-cN@d?`k&u5e+|n!HK{`+ zxREg>#@F?2-r`Q4^}+qVD_c1CPMiVmj!τ72$WRbrgemrPQ)q1kJ{kMP5XUBcc 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 literal 32416 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 diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-targets.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-targets.qdoc index 8f73038296c..49b332c528c 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-targets.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-targets.qdoc @@ -84,21 +84,42 @@ \li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits > \uicontrol Add. - \image qtcreator-kits-add.png - To clone the selected kit, select \uicontrol Clone. - \li In the \uicontrol Name column, enter a name for the kit. + \li Specify kit settings. The settings to specify depend on the build + system and device type. - \li Select the \inlineimage icons/qtcreator-desktopdevice-button.png - button to select an image to use as an icon for the kit. + \li Select \uicontrol OK to create the kit. - \li In the \uicontrol {File system name} field, enter a name for the kit - to use as a part of directory names. This value is used for the - \e CurrentKit:FileSystemName variable, which determines the name of - the shadow build directory, for example. + \endlist - \li In the \uicontrol{Device type} field, select the type of the device. + \QC uses the \e {default kit} if it does not have enough information to + choose the kit to use. To set the selected kit as the default kit, + select \uicontrol {Make Default}. + + \section2 Kit Settings + + The following table summarizes the available kit settings. + + \table + \header + \li Setting + \li Value + \row + \li \uicontrol Name + \li Name of the kit. You can use variables to generate the kit name + based on the values you set in the other fields. + \row + \li \inlineimage icons/qtcreator-desktopdevice-button.png + \li Image to use as an icon for the kit. + \row + \li \uicontrol {File system name} + \li Name for the kit to use as a part of directory names. This value is + used for the \c CurrentKit:FileSystemName variable, which determines + the name of the shadow build directory, for example. + \row + \li \uicontrol{Device type} + \li Type of the device. Double-click the icon next to the field to select the image that is displayed in the kit selector for this kit. You can use any @@ -106,92 +127,96 @@ scaled to the size 64x64 pixels. For example, using the compiler logo as an icon allows you to easily see, which compiler is used to build the project for the selected kit. + \row + \li \uicontrol Device + \li The device to run applications on. + \row + \li \uicontrol {Build device} + \li The device to build applications on. - \li In the \uicontrol Device field, select a device. + \row + \li \uicontrol Sysroot + \li Directory where the device image is located. If you are not + cross-compiling, leave this field empty. + \row + \li \uicontrol {Emulator skin} + \li Skin to use for the \l {Emulator}{Boot2Qt Emulator Device}. + \row + \li \uicontrol {Compiler} + \li C or C++ compiler that you use to build the project. You can add + compilers to the list if they are installed on the development PC, + but were not detected automatically. For more information, see + \l{Adding Compilers}. - \li In the \uicontrol Sysroot field, specify the directory where the device - image is located. If you are not cross-compiling, leave this field - empty. - - \li In the \uicontrol {Emulator skin} field, select the skin to use for - the \l {Emulator}{Boot2Qt Emulator Device}. - - \li In the \uicontrol {Compiler} field, select the C or C++ compiler - that you use to build the project. You can add compilers to the list - if they are installed on the development PC, but were not detected - automatically. For more information, see \l{Adding Compilers}. This setting is used to tell the code model which compiler is used. If your project type and build tool support it, \QC also tells the build tool to use this compiler for building the project. - - \li In the \uicontrol Environment field, select \uicontrol Change to modify - environment variable values for build environments in - the \uicontrol {Edit Environment Changes} dialog. For more information - about how to add and remove variable values, see \l{Batch Editing}. - - \li Select the \uicontrol {Force UTF-8 MSVC compiler output} check box - to either switch the language of MSVC to English or to keep the - language setting and just force UTF-8 output, depending on the + \row + \li \uicontrol Environment + \li Select \uicontrol Change to modify environment variable values for + build environments in the \uicontrol {Edit Environment Changes} + dialog. For more information about how to add and remove variable + values, see \l{Batch Editing}. + \row + \li \uicontrol {Force UTF-8 MSVC compiler output} + \li Either switches the language of MSVC to English or keeps the + language setting and just forces UTF-8 output, depending on the MSVC compiler used. - - \li In the \uicontrol Debugger field, select the debugger to debug the project - on the target platform. \QC automatically detects available - debuggers and displays a suitable debugger in the field. You can - add debuggers to the list. For more information, see - \l{Adding Debuggers}. + \row + \li \uicontrol Debugger + \li Debugger to debug the project on the target platform. \QC + automatically detects available debuggers and displays a + suitable debugger in the field. You can add debuggers to the list. + For more information, see \l{Adding Debuggers}. For Android kits, the \uicontrol {Android GDB server} field will display the path to GDB server executable. - - \li In the \uicontrol {Qt version} field, select the Qt version to use for - building the project. You can add Qt versions to the list if they - are installed on the development PC, but were not detected - automatically. For more information, see \l{Adding Qt Versions}. + \row + \li \uicontrol {Qt version} + \li Qt version to use for building the project. You can add Qt versions + to the list if they are installed on the development PC, but were not + detected automatically. For more information, see \l{Adding Qt Versions}. \QC checks the directories listed in the \c{PATH} environment variable for the qmake executable. If a qmake executable is found, it is referred to as \b{Qt in PATH} and selected as the Qt version to use for the \uicontrol Desktop kit that is created by default. - - \li In the \uicontrol {Qt mkspec} field, specify the name of the mkspec - configuration that should be used by qmake. If you leave this field - empty, the default mkspec of the selected Qt version is used. - - \li In the \uicontrol {Additional Qbs profile settings} field, select - \uicontrol Change to add settings to Qbs build profiles. For more - information, see \l {Editing Qbs Profiles}. - - \li In the \uicontrol {CMake Tool} field, select the CMake executable - to use for building the project. Select \uicontrol Manage to add - installed CMake executables to the list. For more information, see - \l{Adding CMake Tools}. - - \li In the \uicontrol {CMake generator} field, select \uicontrol Change - to edit the CMake - Generator to use for producing project files. Only the generators + \row + \li \uicontrol {Qt mkspec} + \li Name of the mkspec configuration that should be used by qmake. If + you leave this field empty, the default mkspec of the selected Qt + version is used. + \row + \li \uicontrol {Additional Qbs profile settings} + \li Select \uicontrol Change to add settings to Qbs build profiles. + For more information, see \l {Editing Qbs Profiles}. + \row + \li \uicontrol {CMake Tool} + \li CMake executable to use for building the project. Select + \uicontrol Manage to add installed CMake executables to + the list. For more information, see \l{Adding CMake Tools}. + \row + \li \uicontrol {CMake generator} + \li Select \uicontrol Change to edit the CMake Generator to use for + producing project files. Only the generators with names beginning with the string \uicontrol CodeBlocks produce all the necessary data for the \QC code model. \QC displays a warning if you select a generator that is not supported. For more information, see \l{Using Ninja as a CMake Generator}. - - \li In the \uicontrol {CMake configuration} field, select - \uicontrol Change to edit the parameters of the CMake configuration - for the kit. - - \li In the \uicontrol {Meson tool} field, select the Meson tool to use - for building the project. Select \uicontrol Manage to add installed - Meson tools to the list. For more information, see + \row + \li \uicontrol {CMake configuration} + \li Select \uicontrol Change to edit the parameters of the CMake + configuration for the kit. + \row + \li \uicontrol {Meson tool} + \li Meson tool to use for building the project. Select \uicontrol Manage + to add installed Meson tools to the list. For more information, see \l{Adding Meson Tools}. - - \li In the \uicontrol {Ninja tool} field, select the Ninja tool to use - for building the project with Meson. Select \uicontrol Manage to add installed - Ninja tools to the list. - - \endlist - - \QC uses the \e {default kit} if it does not have enough information to - choose the kit to use. To set the selected kit as the default kit, - select \uicontrol {Make Default}. + \row + \li \uicontrol {Ninja tool} + \li Ninja tool to use for building the project with Meson. Select + \uicontrol Manage to add installed Ninja tools to the list. + \endtable \section1 Editing Qbs Profiles From 1f1570f0e69d1536ef0adab0c41576078606ac68 Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Wed, 6 Jul 2022 13:27:38 +0200 Subject: [PATCH 24/33] QmlDesigner: Fix hover issue in UrlChooser Fix UrlChooser ItemDelegates not getting the hover event due to a MouseArea overlayed on top which also accepts hover events. This issue wasn't there in Qt 6.2.4 and only happend since Qt 6.3.1 Change-Id: Ifc43fe70fbefab9696a17a59966afdaf47b93829 Reviewed-by: Thomas Hartmann --- .../imports/StudioControls/FilterComboBox.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/FilterComboBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/FilterComboBox.qml index 1c2fa82c14d..da0850fb14a 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/FilterComboBox.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/FilterComboBox.qml @@ -744,7 +744,7 @@ Item { anchors.fill: parent enabled: popup.visible && popupMouseArea.active - hoverEnabled: true + hoverEnabled: popupMouseArea.enabled onPositionChanged: { popupMouseArea.active = false } } } From 1231c9e546869c72fbc639e155857d0b3cd93a3d Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 6 Jul 2022 12:01:26 +0200 Subject: [PATCH 25/33] QbsBuildSystem: Don't delete an object from its signal handler Delete it later instead. Change-Id: Iff0b0d2410752f324f0fea15c0314b60fd637b5e Reviewed-by: Christian Kandeler --- src/plugins/qbsprojectmanager/qbsproject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 8a78718cf54..1ce9752f9f4 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -561,7 +561,7 @@ void QbsBuildSystem::handleQbsParsingDone(bool success) m_qbsUpdateFutureInterface->reportCanceled(); } - delete m_qbsProjectParser; + m_qbsProjectParser->deleteLater(); m_qbsProjectParser = nullptr; m_qbsUpdateFutureInterface->reportFinished(); delete m_qbsUpdateFutureInterface; From 650bc260c6a40fbea034fe3c22c302ed6111d0b9 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 6 Jul 2022 11:27:55 +0200 Subject: [PATCH 26/33] ClangdClient: Don't delete an object from its signal handler Delete it later instead. Fixes: QTCREATORBUG-27803 Change-Id: I1108a87bc762a7da690b8999c9e73e127d79d3c4 Reviewed-by: Christian Kandeler --- src/plugins/clangcodemodel/clangdclient.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index e1f0319ff83..08f9f10b1e1 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -1608,7 +1608,7 @@ void ClangdClient::followSymbol(TextDocument *document, d->followSymbol = new ClangdFollowSymbol(this, adjustedCursor, editorWidget, document, callback, openInSplit); connect(d->followSymbol, &ClangdFollowSymbol::done, this, [this] { - delete d->followSymbol; + d->followSymbol->deleteLater(); d->followSymbol = nullptr; }); } @@ -1625,7 +1625,7 @@ void ClangdClient::switchDeclDef(TextDocument *document, const QTextCursor &curs delete d->switchDeclDef; d->switchDeclDef = new ClangdSwitchDeclDef(this, document, cursor, editorWidget, callback); connect(d->switchDeclDef, &ClangdSwitchDeclDef::done, this, [this] { - delete d->switchDeclDef; + d->switchDeclDef->deleteLater(); d->switchDeclDef = nullptr; }); } From 0456643a86bbb1f7fbcc4235c2fb5e5d7e9976ae Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 6 Jul 2022 12:21:04 +0200 Subject: [PATCH 27/33] ClangCodeModel: Use the correct language type options for MSVC This was broken by our compiler command line optimizations, resulting in "-x" rather than "/T" appearing for MSVC/clang-cl toolchains and causing clangd to assume C instead of C++ for some files. Change-Id: Ib98db88ac90e4e45a7016a7edcb80a279df372aa Reviewed-by: Reviewed-by: David Schulz --- src/plugins/clangcodemodel/clangdclient.cpp | 11 +++++++---- src/plugins/clangcodemodel/clangutils.cpp | 12 ++++++++---- src/plugins/clangcodemodel/clangutils.h | 2 +- src/plugins/cppeditor/compileroptionsbuilder.h | 1 + 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 08f9f10b1e1..6dd7226b951 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -845,9 +845,11 @@ static void addToCompilationDb(QJsonObject &cdb, CppEditor::UsePrecompiledHeaders usePch, const QJsonArray &projectPartOptions, const Utils::FilePath &workingDir, - const CppEditor::ProjectFile &sourceFile) + const CppEditor::ProjectFile &sourceFile, + bool clStyle) { - QJsonArray args = clangOptionsForFile(sourceFile, projectPart, projectPartOptions, usePch); + QJsonArray args = clangOptionsForFile(sourceFile, projectPart, projectPartOptions, usePch, + clStyle); // TODO: clangd seems to apply some heuristics depending on what we put here. // Should we make use of them or keep using our own? @@ -889,7 +891,8 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir) const QJsonArray projectPartOptions = fullProjectPartOptions( optionsBuilder, globalClangOptions()); const QJsonArray clangOptions = clangOptionsForFile({}, optionsBuilder.projectPart(), - projectPartOptions, usePch); + projectPartOptions, usePch, + optionsBuilder.isClStyle()); initOptions.insert("fallbackFlags", clangOptions); setInitializationOptions(initOptions); } @@ -1328,7 +1331,7 @@ void ClangdClient::updateParserConfig(const Utils::FilePath &filePath, const QJsonArray projectPartOptions = fullProjectPartOptions( optionsBuilder, globalClangOptions()); addToCompilationDb(cdbChanges, *projectPart, CppEditor::getPchUsage(), projectPartOptions, - filePath.parentDir(), file); + filePath.parentDir(), file, optionsBuilder.isClStyle()); QJsonObject settings; addCompilationDb(settings, cdbChanges); DidChangeConfigurationParams configChangeParams; diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp index a1c4393eab0..c85ee98e1cf 100644 --- a/src/plugins/clangcodemodel/clangutils.cpp +++ b/src/plugins/clangcodemodel/clangutils.cpp @@ -130,7 +130,8 @@ static QJsonObject createFileObject(const FilePath &buildDir, const ProjectFile &projFile, CompilationDbPurpose purpose, const QJsonArray &projectPartOptions, - UsePrecompiledHeaders usePch) + UsePrecompiledHeaders usePch, + bool clStyle) { QJsonObject fileObject; fileObject["file"] = projFile.path; @@ -155,7 +156,7 @@ static QJsonObject createFileObject(const FilePath &buildDir, args.append(langOptionPart); } } else { - args = clangOptionsForFile(projFile, projectPart, projectPartOptions, usePch); + args = clangOptionsForFile(projFile, projectPart, projectPartOptions, usePch, clStyle); args.prepend("clang"); // TODO: clang-cl for MSVC targets? Does it matter at all what we put here? } @@ -200,7 +201,8 @@ GenerateCompilationDbResult generateCompilationDB(const CppEditor::ProjectInfo:: } for (const ProjectFile &projFile : projectPart->files) { const QJsonObject json = createFileObject(baseDir, args, *projectPart, projFile, - purpose, ppOptions, usePch); + purpose, ppOptions, usePch, + optionsBuilder.isClStyle()); if (compileCommandsFile.size() > 1) compileCommandsFile.write(","); compileCommandsFile.write('\n' + QJsonDocument(json).toJson().trimmed()); @@ -274,9 +276,11 @@ QString DiagnosticTextInfo::clazyCheckName(const QString &option) QJsonArray clangOptionsForFile(const ProjectFile &file, const ProjectPart &projectPart, - const QJsonArray &generalOptions, UsePrecompiledHeaders usePch) + const QJsonArray &generalOptions, UsePrecompiledHeaders usePch, + bool clStyle) { CompilerOptionsBuilder optionsBuilder(projectPart); + optionsBuilder.setClStyle(clStyle); ProjectFile::Kind fileKind = file.kind; if (fileKind == ProjectFile::AmbiguousHeader) { fileKind = projectPart.languageVersion <= LanguageVersion::LatestC diff --git a/src/plugins/clangcodemodel/clangutils.h b/src/plugins/clangcodemodel/clangutils.h index 4eef4b90ddc..bb90b84bfc8 100644 --- a/src/plugins/clangcodemodel/clangutils.h +++ b/src/plugins/clangcodemodel/clangutils.h @@ -66,7 +66,7 @@ QJsonArray fullProjectPartOptions(const QJsonArray &projectPartOptions, QJsonArray clangOptionsForFile(const CppEditor::ProjectFile &file, const CppEditor::ProjectPart &projectPart, const QJsonArray &generalOptions, - CppEditor::UsePrecompiledHeaders usePch); + CppEditor::UsePrecompiledHeaders usePch, bool clStyle); CppEditor::ProjectPart::ConstPtr projectPartForFile(const QString &filePath); diff --git a/src/plugins/cppeditor/compileroptionsbuilder.h b/src/plugins/cppeditor/compileroptionsbuilder.h index ffdb7c20873..3a0b1e459a9 100644 --- a/src/plugins/cppeditor/compileroptionsbuilder.h +++ b/src/plugins/cppeditor/compileroptionsbuilder.h @@ -95,6 +95,7 @@ public: void evaluateCompilerFlags(); bool isClStyle() const; + void setClStyle(bool clStyle) { m_clStyle = clStyle; } const ProjectPart &projectPart() const { return m_projectPart; } From 06e2f8d8fa3a5335e8d91de9d5fe5db2ee4ea379 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 6 Jul 2022 13:24:32 +0200 Subject: [PATCH 28/33] CppEditor: Always use "clang:std=" for specifying the language version ... when in clang-cl mode. We observe strange behavior when keeping the MSVC /std:c++xx syntax, namely that files that are not specified in the compilation database appear to get parsed without a language version. The problem does not occur when passing the flag via "clang:". Fixes: QTCREATORBUG-27764 Change-Id: I0035e5fef6dfd37fbbe396b538f38fc29b23923b Reviewed-by: Reviewed-by: David Schulz --- src/plugins/cppeditor/compileroptionsbuilder.cpp | 14 ++++++-------- .../cppeditor/compileroptionsbuilder_test.cpp | 6 +++--- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/plugins/cppeditor/compileroptionsbuilder.cpp b/src/plugins/cppeditor/compileroptionsbuilder.cpp index abe6a758e98..505cb4ee0a1 100644 --- a/src/plugins/cppeditor/compileroptionsbuilder.cpp +++ b/src/plugins/cppeditor/compileroptionsbuilder.cpp @@ -473,16 +473,16 @@ void CompilerOptionsBuilder::addLanguageVersionAndExtensions() default: break; case LanguageVersion::CXX14: - option = "/std:c++14"; + option = "-clang:std=c++14"; break; case LanguageVersion::CXX17: - option = "/std:c++17"; + option = "-clang:std=c++17"; break; case LanguageVersion::CXX20: - option = "/std:c++20"; + option = "-clang:std=c++20"; break; case LanguageVersion::CXX2b: - option = "/std:c++latest"; + option = "-clang:std=c++2b"; break; } @@ -910,12 +910,10 @@ void CompilerOptionsBuilder::evaluateCompilerFlags() theOption[0] = '-'; } - // Clang-cl (as of Clang 12) frontend doesn't know about -std:c++20 - // but the clang front end knows about -std=c++20 - // https://github.com/llvm/llvm-project/blob/release/12.x/clang/lib/Driver/ToolChains/Clang.cpp#L5855 if (toolChain == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID || toolChain == ProjectExplorer::Constants::CLANG_CL_TOOLCHAIN_TYPEID) { - theOption.replace("-std:c++20", "-clang:-std=c++20"); + theOption.replace("-std:c++latest", "-clang:-std=c++2b"); + theOption.replace("-std:c++", "-clang:-std=c++"); } m_compilerFlags.flags.append(theOption); diff --git a/src/plugins/cppeditor/compileroptionsbuilder_test.cpp b/src/plugins/cppeditor/compileroptionsbuilder_test.cpp index 1fca97f592e..65d18291849 100644 --- a/src/plugins/cppeditor/compileroptionsbuilder_test.cpp +++ b/src/plugins/cppeditor/compileroptionsbuilder_test.cpp @@ -192,7 +192,7 @@ void CompilerOptionsBuilderTest::testLanguageVersionIsExplicitlySetIfNotProvided UseTweakedHeaderPaths::No, UseLanguageDefines::Yes}; compilerOptionsBuilder.build(ProjectFile::CXXSource, UsePrecompiledHeaders::No); - QVERIFY(compilerOptionsBuilder.options().contains("/std:c++17")); + QVERIFY(compilerOptionsBuilder.options().contains("-clang:std=c++17")); } void CompilerOptionsBuilderTest::testAddWordWidth() @@ -633,7 +633,7 @@ void CompilerOptionsBuilderTest::testBuildAllOptionsMsvc() [&t](const QString &o) { return o.contains(t.toNative("wrappedQtHeaders/QtCore")); }); QCOMPARE(compilerOptionsBuilder.options(), (QStringList{"-nostdinc", "-nostdinc++", "--driver-mode=cl", "/Zs", "-m64", - "--target=x86_64-apple-darwin10", "/TP", "/std:c++17", + "--target=x86_64-apple-darwin10", "/TP", "-clang:std=c++17", "-fms-compatibility-version=19.00", "-DprojectFoo=projectBar", "-D__FUNCSIG__=\"void __cdecl someLegalAndLongishFunctionNameThatWorksAroundQTCREATORBUG-24580(void)\"", "-D__FUNCTION__=\"someLegalAndLongishFunctionNameThatWorksAroundQTCREATORBUG-24580\"", @@ -662,7 +662,7 @@ void CompilerOptionsBuilderTest::testBuildAllOptionsMsvcWithExceptions() [&t](const QString &o) { return o.contains(t.toNative("wrappedQtHeaders/QtCore")); }); QCOMPARE(compilerOptionsBuilder.options(), (QStringList{"-nostdinc", "-nostdinc++", "--driver-mode=cl", "/Zs", "-m64", - "--target=x86_64-apple-darwin10", "/TP", "/std:c++17", "-fcxx-exceptions", + "--target=x86_64-apple-darwin10", "/TP", "-clang:std=c++17", "-fcxx-exceptions", "-fexceptions", "-fms-compatibility-version=19.00", "-DprojectFoo=projectBar", "-D__FUNCSIG__=\"void __cdecl someLegalAndLongishFunctionNameThatWorksAroundQTCREATORBUG-24580(void)\"", From 5d8e53038eb13f03d75774d09867a45ffecd0018 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 6 Jul 2022 13:57:26 +0200 Subject: [PATCH 29/33] ClangCodeModel: Fix "Find References" for operators We broke this in 49bb40f19e71ab92f3318b29c2e929bdfb418178. Change-Id: Ifc18501745c4515899c57ea461305db0f9ed6662 Reviewed-by: Reviewed-by: David Schulz --- src/plugins/clangcodemodel/clangdclient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 6dd7226b951..6699242283e 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -1021,7 +1021,7 @@ void ClangdClient::findUsages(TextDocument *document, const QTextCursor &cursor, // Otherwise get the proper spelling of the search term from clang, so we can put it into the // search widget. const auto symbolInfoHandler = [this, doc = QPointer(document), adjustedCursor, replacement, categorize] - (const QString &, const QString &name, const MessageId &) { + (const QString &name, const QString &, const MessageId &) { if (!doc) return; if (name.isEmpty()) From 78958d574097e2b8ceb2811d257ef4348e741a03 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 6 Jul 2022 16:43:06 +0200 Subject: [PATCH 30/33] TerminalProcess: Emit done() signal when stop() was called When we call QtcProcess::stop(), the terminal process invokes stopProcess() method. However, if it doesn't emit done() then subsequent call to waitForFinished() will timeout with 30 s. This should fix the 30 seconds hang when debugging in terminal after pressing the red square button. Change-Id: Iea1f9ade85dc8a4414dc49d7c8a2cbe80f0b5756 Reviewed-by: Cristian Adam Reviewed-by: David Schulz --- src/libs/utils/terminalprocess.cpp | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/libs/utils/terminalprocess.cpp b/src/libs/utils/terminalprocess.cpp index 556ae5dc3c0..17a15adc4a1 100644 --- a/src/libs/utils/terminalprocess.cpp +++ b/src/libs/utils/terminalprocess.cpp @@ -483,29 +483,26 @@ void TerminalImpl::killProcess() void TerminalImpl::killStub() { + if (!isRunning()) + return; + #ifdef Q_OS_WIN - if (d->m_pid) { - TerminateProcess(d->m_pid->hProcess, (unsigned)-1); - WaitForSingleObject(d->m_pid->hProcess, INFINITE); - cleanupStub(); - } + TerminateProcess(d->m_pid->hProcess, (unsigned)-1); + WaitForSingleObject(d->m_pid->hProcess, INFINITE); + cleanupStub(); #else sendCommand('s'); stubServerShutdown(); + d->m_process.waitForFinished(); #endif + + emitFinished(-1, QProcess::CrashExit); } void TerminalImpl::stopProcess() { killProcess(); killStub(); - if (isRunning() && HostOsInfo::isAnyUnixHost()) { - d->m_process.terminate(); - if (!d->m_process.waitForFinished(1000) && d->m_process.state() == QProcess::Running) { - d->m_process.kill(); - d->m_process.waitForFinished(); - } - } } bool TerminalImpl::isRunning() const From b47b6cddc7ea12e709cd917d8b851e01facfeec5 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 7 Jul 2022 08:40:05 +0200 Subject: [PATCH 31/33] Python: Prepend pyside6-project path to PATH env variable Otherwise pyside6-project cannot find uic or rcc or might use those tools from another pyside installation. Change-Id: I34eff2fc2627b07a18a705e5d658bd7cf8ce9350 Reviewed-by: Christian Stenger --- src/plugins/python/pysidebuildconfiguration.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/python/pysidebuildconfiguration.cpp b/src/plugins/python/pysidebuildconfiguration.cpp index 058b877f571..2e2540755c0 100644 --- a/src/plugins/python/pysidebuildconfiguration.cpp +++ b/src/plugins/python/pysidebuildconfiguration.cpp @@ -87,6 +87,9 @@ PySideBuildStep::PySideBuildStep(BuildStepList *bsl, Id id) setCommandLineProvider([this] { return CommandLine(m_pysideProject->filePath(), {"build"}); }); setWorkingDirectoryProvider([this] { return target()->project()->projectDirectory(); }); + setEnvironmentModifier([this](Environment &env) { + env.prependOrSetPath(m_pysideProject->filePath().parentDir()); + }); } void PySideBuildStep::updatePySideProjectPath(const Utils::FilePath &pySideProjectPath) From 9b8fd63cd0e137faf5d1980941b74a6b71237268 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 5 Jul 2022 14:37:49 +0200 Subject: [PATCH 32/33] GitHub Actions: (re) Enable running of tests The precheck tests have only a few cases which should not block the runners anymore. Change-Id: I00bea0d208aa646dbdb4c146f46fdb853bc8aa5b Reviewed-by: Reviewed-by: Eike Ziller --- .github/workflows/build_cmake.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index ed0a3958f3e..39bb74a8dff 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -585,7 +585,6 @@ jobs: execute_process(COMMAND ccache -s) - name: Run tests - if: matrix.config.artifact == 'running-of-tests-is-disabled' shell: cmake -P {0} run: | include(ProcessorCount) @@ -598,7 +597,7 @@ jobs: endif() execute_process( - COMMAND ctest -j ${N} --timeout 5 + COMMAND ctest -j ${N} --timeout 60 --label-exclude exclude_from_precheck --exclude-regex tst_perfdata WORKING_DIRECTORY build/build RESULT_VARIABLE result OUTPUT_VARIABLE output From 777ae87779fe360599cad02158305571688c08b0 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 6 Jul 2022 18:49:15 +0200 Subject: [PATCH 33/33] Android: Update devices list after creating an AVD Ensure that a freshly created AVD is properly listed and is usable. By forcing a AndroidDeviceManager::updateAvdsList() after successful creation. Fixes: QTCREATORBUG-27804 Change-Id: I1ef0fb23d2c13b99d285f07505189f37929f4ed7 Reviewed-by: Assam Boudjelthia --- src/plugins/android/avddialog.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/android/avddialog.cpp b/src/plugins/android/avddialog.cpp index 4f0f8e8a4a4..f9f9dce9147 100644 --- a/src/plugins/android/avddialog.cpp +++ b/src/plugins/android/avddialog.cpp @@ -117,8 +117,10 @@ int AvdDialog::exec() loop.exec(QEventLoop::ExcludeUserInputEvents); const QFuture future = createAvdFutureWatcher.future(); - if (future.isResultReadyAt(0)) + if (future.isResultReadyAt(0)) { m_createdAvdInfo = future.result(); + AndroidDeviceManager::instance()->updateAvdsList(); + } } return execResult;