From 084dced9bee5ac7a9415d9c71c68a3e9684c6183 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 10 Nov 2021 14:44:41 +0100 Subject: [PATCH 01/33] ClangCodeModel: Provide signal/slot icons for clangd completions Fixes: QTCREATORBUG-26555 Change-Id: I3b647f6fdbeed69bc453d64a69fb57731d92231e Reviewed-by: Qt CI Bot Reviewed-by: David Schulz --- src/plugins/clangcodemodel/clangdclient.cpp | 49 +++++++++++++++++---- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 46c85f06cdf..be8dbfda9a3 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -66,6 +66,7 @@ #include #include #include +#include #include #include @@ -1110,6 +1111,12 @@ public: using LanguageClientCompletionItem::LanguageClientCompletionItem; void apply(TextDocumentManipulatorInterface &manipulator, int basePosition) const override; + + enum class SpecialQtType { Signal, Slot, None }; + static SpecialQtType getQtType(const CompletionItem &item); + +private: + QIcon icon() const override; }; class ClangdClient::ClangdCompletionAssistProcessor : public LanguageClientCompletionAssistProcessor @@ -1155,15 +1162,7 @@ ClangdClient::ClangdCompletionAssistProcessor::generateCompletionItems( // whether the cursor was on the second argument of a (dis)connect() call. // If so, we offer only signals, as nothing else makes sense in that context. static const auto criterion = [](const CompletionItem &ci) { - const Utils::optional doc = ci.documentation(); - if (!doc) - return false; - QString docText; - if (Utils::holds_alternative(*doc)) - docText = Utils::get(*doc); - else if (Utils::holds_alternative(*doc)) - docText = Utils::get(*doc).content(); - return docText.contains("Annotation: qt_signal"); + return ClangdCompletionItem::getQtType(ci) == ClangdCompletionItem::SpecialQtType::Signal; }; const QTextDocument *doc = document(); const int pos = basePos(); @@ -3009,6 +3008,38 @@ void ClangdCompletionItem::apply(TextDocumentManipulatorInterface &manipulator, } } +ClangdCompletionItem::SpecialQtType ClangdCompletionItem::getQtType(const CompletionItem &item) +{ + const Utils::optional doc = item.documentation(); + if (!doc) + return SpecialQtType::None; + QString docText; + if (Utils::holds_alternative(*doc)) + docText = Utils::get(*doc); + else if (Utils::holds_alternative(*doc)) + docText = Utils::get(*doc).content(); + if (docText.contains("Annotation: qt_signal")) + return SpecialQtType::Signal; + if (docText.contains("Annotation: qt_slot")) + return SpecialQtType::Slot; + return SpecialQtType::None; +} + +QIcon ClangdCompletionItem::icon() const +{ + const SpecialQtType qtType = getQtType(item()); + switch (qtType) { + case SpecialQtType::Signal: + return Utils::CodeModelIcon::iconForType(Utils::CodeModelIcon::Signal); + case SpecialQtType::Slot: + // FIXME: Add visibility info to completion item tags in clangd? + return Utils::CodeModelIcon::iconForType(Utils::CodeModelIcon::SlotPublic); + case SpecialQtType::None: + break; + } + return LanguageClientCompletionItem::icon(); +} + MessageId ClangdClient::Private::getAndHandleAst(const TextDocOrFile &doc, const AstHandler &astHandler, AstCallbackMode callbackMode, const Range &range) From c073810ba52e36a55aef6317846f7d89fd4c5552 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 10 Nov 2021 11:49:13 +0100 Subject: [PATCH 02/33] Doc: Describe options for running tests without deployment Add screenshot of CTest options tab. Task-number: QTCREATORBUG-26278 Change-Id: I5edc97f32724946486d04965323ee81180857e9d Reviewed-by: Christian Stenger --- .../qtcreator-autotests-options-ctest.png | Bin 0 -> 7002 bytes .../howto/creator-only/creator-autotest.qdoc | 39 ++++++++++++------ 2 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 doc/qtcreator/images/qtcreator-autotests-options-ctest.png diff --git a/doc/qtcreator/images/qtcreator-autotests-options-ctest.png b/doc/qtcreator/images/qtcreator-autotests-options-ctest.png new file mode 100644 index 0000000000000000000000000000000000000000..071cba4a718639aebda457a1e4cc5b91153b7b54 GIT binary patch literal 7002 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 JF6*2UngH-a2=o8| literal 0 HcmV?d00001 diff --git a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc index 22d6082d95e..85a7a2256c0 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc @@ -38,13 +38,20 @@ build system and uses it or even the build system as such to execute the respective tests. - \QC integrates the \l{Qt Test} framework, - \l{https://github.com/google/googletest}{Google C++ Testing Framework}, - \l{https://www.boost.org/doc/libs/1_70_0/libs/test/doc/html/index.html} - {Boost.Test}, and \l{https://github.com/catchorg/Catch2} - {Catch2 test framework} for unit testing applications and libraries. + \QC integrates the following testing frameworks for unit testing + applications and libraries: + + \list + \li \l{https://www.boost.org/doc/libs/1_70_0/libs/test/doc/html/index.html} + {Boost.Test} + \li \l{https://github.com/catchorg/Catch2}{Catch2 test framework} + \li \l{https://github.com/google/googletest}{Google C++ Testing Framework} + \li \l{Qt Test} framework + \endlist + Additional build system based support is provided for \l{https://cmake.org/cmake/help/latest/manual/ctest.1.html}{CTest}. + You can use \QC to create, build, and run code based tests for your projects. @@ -332,16 +339,23 @@ in the file currently open in the code editor. \endlist - \note By default, \QC builds a project before deploying and running - it. + \endlist + + By default, \QC builds a project before deploying and running it. + To run all tests without building and deploying them again, select + \uicontrol {Run All Tests Without Deployment} in the context menu. + To run the selected tests without deployment, select + \uicontrol {Run Selected Tests Without Deployment}. + + The functions to run tests are also available in the context menu in the + \uicontrol Tests view and in \uicontrol Tools > \uicontrol Tests. + \note If you have enabled build system based and code based tests, you may run tests twice when using \uicontrol {Run All Tests} or \uicontrol {Run Selected Tests}. This happens if the tests can be found by the code based test frameworks and are registered as test with the build system. - \endlist - If a test takes more than a minute to execute, the default timeout might stop the test execution. To increase the timeout, select \uicontrol Tools > \uicontrol Options > \uicontrol {Testing} > \uicontrol General. @@ -369,7 +383,8 @@ The test cases are listed in alphabetic, case insensitive order. To list them in the order in which they are defined in the source code, - select \inlineimage leafsort.png (\uicontrol {Sort Naturally}). + select \inlineimage leafsort.png + (\uicontrol {Sort Naturally}). \section2 Running and Debugging Tests from Code Editor @@ -511,7 +526,7 @@ \li To specify settings for running Catch2 tests, select \uicontrol Tools > \uicontrol Options > \uicontrol {Testing} > \uicontrol {Catch Test}. - \image qtcreator-autotests-options-catch2.png + \image qtcreator-autotests-options-catch2.png "Catch Test options" \li Select the \uicontrol {Show success} check box to show succeeding expressions as well. By default Catch2 will print only fails. \li Select the \uicontrol {Break on failure while debugging} check box @@ -543,7 +558,7 @@ \li To specify settings for running CTest-based tests, select \uicontrol Tools > \uicontrol Options > \uicontrol {Testing} > \uicontrol {CTest}. - //! insert image here + \image qtcreator-autotests-options-ctest.png "CTest options" \li Select the \uicontrol {Output on failure} check box to show test specific output if a test fails. Contrary to the CTest default this is enabled by default. From 4a510f7f6f92868ade2e11c3d8ade303bd232caa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4=C3=A4tt=C3=A4?= Date: Thu, 11 Nov 2021 09:48:26 +0200 Subject: [PATCH 03/33] Allow selecting particle system as root Not allowing this causes selection problems. Fixes: QDS-5371 Change-Id: I99d2591a3beb07e39413ba046f3f25e81f0cef50 Reviewed-by: Thomas Hartmann Reviewed-by: Miikka Heikkinen Reviewed-by: Qt CI Bot --- .../qml2puppet/instances/qt5informationnodeinstanceserver.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp index 419e75cfa04..3fcda0a18df 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp @@ -1858,7 +1858,8 @@ void Qt5InformationNodeInstanceServer::changeSelection(const ChangeSelectionComm #ifdef QUICK3D_MODULE if (qobject_cast(object) || qobject_cast(object) - || qobject_cast(object)) { + || qobject_cast(object) + || qobject_cast(object)) { return true; } // Node is a component if it has node children that have no instances From 5d3b0f78e72af2f679594562d9257b250dd58867 Mon Sep 17 00:00:00 2001 From: Samuel Ghinet Date: Thu, 11 Nov 2021 12:04:54 +0200 Subject: [PATCH 04/33] Fix: the wizards must use font icon constant names rather than codes At every change made to the .ttf file, the unicode codes for the font icons will change. Therefore, we can't use hardcoded unicode values for the icons in QDS. We need to use constant names and translate those names to unicode codes later, when passing to QML. Change-Id: If032ae3defabc65319b4ebf5c1ed43c376eaea0a Reviewed-by: Mahmoud Badri Reviewed-by: Thomas Hartmann --- src/plugins/coreplugin/iwizardfactory.h | 6 +++--- .../projectexplorer/jsonwizard/jsonwizardfactory.cpp | 6 +++--- src/plugins/qmldesigner/components/componentcore/theme.cpp | 5 +++++ src/plugins/qmldesigner/components/componentcore/theme.h | 1 + src/plugins/studiowelcome/wizardfactories.cpp | 3 ++- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/plugins/coreplugin/iwizardfactory.h b/src/plugins/coreplugin/iwizardfactory.h index 0cb1b96d43b..d5a435e0fc8 100644 --- a/src/plugins/coreplugin/iwizardfactory.h +++ b/src/plugins/coreplugin/iwizardfactory.h @@ -64,7 +64,7 @@ public: Utils::Id id() const { return m_id; } WizardKind kind() const { return m_supportedProjectTypes.isEmpty() ? FileWizard : ProjectWizard; } QIcon icon() const { return m_icon; } - QString fontIcondCode() const { return m_fontIconCode; } + QString fontIconName() const { return m_fontIconName; } QString description() const { return m_description; } QString displayName() const { return m_displayName; } QString category() const { return m_category; } @@ -79,7 +79,7 @@ public: void setId(const Utils::Id id) { m_id = id; } void setSupportedProjectTypes(const QSet &projectTypes) { m_supportedProjectTypes = projectTypes; } void setIcon(const QIcon &icon, const QString &iconText = {}); - void setFontIconCode(const QString &code) { m_fontIconCode = code; } + void setFontIconName(const QString &code) { m_fontIconName = code; } void setDescription(const QString &description) { m_description = description; } void setDisplayName(const QString &displayName) { m_displayName = displayName; } void setCategory(const QString &category) { m_category = category; } @@ -137,7 +137,7 @@ private: QAction *m_action = nullptr; QIcon m_icon; - QString m_fontIconCode; + QString m_fontIconName; QString m_description; QString m_displayName; QString m_category; diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp index d460995aa81..425cfcd5526 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp @@ -72,7 +72,7 @@ const char CATEGORY_NAME_KEY[] = "trDisplayCategory"; const char DISPLAY_NAME_KEY[] = "trDisplayName"; const char ICON_KEY[] = "icon"; const char ICON_TEXT_KEY[] = "iconText"; -const char FONT_ICON_CODE_KEY[] = "fontIconCode"; +const char FONT_ICON_NAME_KEY[] = "fontIconName"; const char IMAGE_KEY[] = "image"; const char ICON_KIND_KEY[] = "iconKind"; const char DESCRIPTION_KEY[] = "trDescription"; @@ -743,8 +743,8 @@ bool JsonWizardFactory::initialize(const QVariantMap &data, const FilePath &base : QIcon(iconPath.toString()), iconText); - const QString fontIconCode = data.value(QLatin1String(FONT_ICON_CODE_KEY)).toString(); - setFontIconCode(fontIconCode); + const QString fontIconName = data.value(QLatin1String(FONT_ICON_NAME_KEY)).toString(); + setFontIconName(fontIconName); strVal = data.value(QLatin1String(IMAGE_KEY)).toString(); if (!strVal.isEmpty()) { diff --git a/src/plugins/qmldesigner/components/componentcore/theme.cpp b/src/plugins/qmldesigner/components/componentcore/theme.cpp index 6fe7afe7603..df96fd61a36 100644 --- a/src/plugins/qmldesigner/components/componentcore/theme.cpp +++ b/src/plugins/qmldesigner/components/componentcore/theme.cpp @@ -186,6 +186,11 @@ QString Theme::getIconUnicode(Theme::Icon i) return instance()->m_constants->property(e.valueToKey(i)).toString(); } +QString Theme::getIconUnicode(const QString &name) +{ + return instance()->m_constants->property(name.toStdString().data()).toString(); +} + QColor Theme::qmlDesignerBackgroundColorDarker() const { return getColor(QmlDesigner_BackgroundColorDarker); diff --git a/src/plugins/qmldesigner/components/componentcore/theme.h b/src/plugins/qmldesigner/components/componentcore/theme.h index 159824b1f77..05348bc7dff 100644 --- a/src/plugins/qmldesigner/components/componentcore/theme.h +++ b/src/plugins/qmldesigner/components/componentcore/theme.h @@ -198,6 +198,7 @@ public: static QColor getColor(Color role); static QPixmap getPixmap(const QString &id); static QString getIconUnicode(Theme::Icon i); + static QString getIconUnicode(const QString &name); Q_INVOKABLE QColor qmlDesignerBackgroundColorDarker() const; Q_INVOKABLE QColor qmlDesignerBackgroundColorDarkAlternate() const; diff --git a/src/plugins/studiowelcome/wizardfactories.cpp b/src/plugins/studiowelcome/wizardfactories.cpp index a7cb20b0c62..d9a6d686e75 100644 --- a/src/plugins/studiowelcome/wizardfactories.cpp +++ b/src/plugins/studiowelcome/wizardfactories.cpp @@ -28,6 +28,7 @@ #include #include "wizardfactories.h" +#include namespace { // TODO: should be extern, check coreplugin/dialogs/newdialogwidget.cpp @@ -83,7 +84,7 @@ ProjectItem WizardFactories::makeProjectItem(Core::IWizardFactory *f, QWidget *p /*.categoryId =*/f->category(), /*. description =*/f->description(), /*.qmlPath =*/f->detailsPageQmlPath(), - /*.fontIconCode =*/f->fontIcondCode(), + /*.fontIconCode =*/QmlDesigner::Theme::getIconUnicode(f->fontIconName()), /*.create =*/ std::bind(&Core::IWizardFactory::runWizard, f, _1, parent, platform, QVariantMap(), false), }; From 2d1e4bcc5f42514c20229ed6c9bf6cf0eab4182f Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Wed, 10 Nov 2021 17:06:28 +0100 Subject: [PATCH 05/33] qmldesigner: add ShowDebugSettings variable also, enable it in debug mode always Task-number: QDS-5461 Change-Id: I254bbcd081ee38b57e27bcb39ddb02506b1a2d4b Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/designersettings.h | 1 + src/plugins/qmldesigner/settingspage.cpp | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/designersettings.h b/src/plugins/qmldesigner/designersettings.h index 9808c878a56..0afb86d6dd6 100644 --- a/src/plugins/qmldesigner/designersettings.h +++ b/src/plugins/qmldesigner/designersettings.h @@ -66,6 +66,7 @@ const char NAVIGATOR_REVERSE_ITEM_ORDER[] = "NavigatorReverseItemOrder"; const char REFORMAT_UI_QML_FILES[] = "ReformatUiQmlFiles"; /* These settings are not exposed in ui. */ const char IGNORE_DEVICE_PIXEL_RATIO[] = "IgnoreDevicePixelRaio"; /* The settings can be used to turn off the feature, if there are serious issues */ const char STANDALONE_MODE[] = "StandAloneMode"; +const char SHOW_DEBUG_SETTINGS[] = "ShowDebugSettings"; const char ENABLE_TIMELINEVIEW[] = "EnableTimelineView"; const char COLOR_PALETTE_RECENT[] = "ColorPaletteRecent"; const char COLOR_PALETTE_FAVORITE[] = "ColorPaletteFavorite"; diff --git a/src/plugins/qmldesigner/settingspage.cpp b/src/plugins/qmldesigner/settingspage.cpp index 2b6c3ba2d0f..30e06946d85 100644 --- a/src/plugins/qmldesigner/settingspage.cpp +++ b/src/plugins/qmldesigner/settingspage.cpp @@ -252,10 +252,14 @@ void SettingsPageWidget::setSettings(const DesignerSettings &settings) m_ui.askBeforeDeletingAssetCheckBox->setChecked(settings.value( DesignerSettingsKey::ASK_BEFORE_DELETING_ASSET).toBool()); - if (settings.value(DesignerSettingsKey::STANDALONE_MODE).toBool()) { - m_ui.debugGroupBox->hide(); - m_ui.featureTimelineEditorCheckBox->hide(); - } + const auto standaloneMode = settings.value(DesignerSettingsKey::STANDALONE_MODE).toBool(); +#ifdef QT_DEBUG + const auto showDebugSettings = true; +#else + const auto showDebugSettings = settings.value(DesignerSettingsKey::SHOW_DEBUG_SETTINGS).toBool(); +#endif + m_ui.debugGroupBox->setVisible(!standaloneMode || showDebugSettings); + m_ui.featureTimelineEditorCheckBox->setVisible(standaloneMode); } void SettingsPageWidget::apply() From 5cc183e0f7b46a38af88bc52a4a0c1c87d51ccb9 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 11 Nov 2021 12:30:14 +0100 Subject: [PATCH 06/33] StudioWelcome: Always initialize new project dialog If the SplashScreen was disabled the new factory was not registered. Change-Id: I3ab04510c33cb4ccfd2d85d3059ecafcc41fa654 Reviewed-by: Samuel Ghinet Reviewed-by: Tim Jenssen --- src/plugins/studiowelcome/studiowelcomeplugin.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index 56ef7302842..eab1a67d494 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -353,6 +353,10 @@ bool StudioWelcomePlugin::initialize(const QStringList &arguments, QString *erro void StudioWelcomePlugin::extensionsInitialized() { Core::ModeManager::activateMode(m_welcomeMode->id()); + + // Enable QDS new project dialog + Core::ICore::setNewDialogFactory([](QWidget *parent) { return new QdsNewDialog(parent); }); + if (Utils::CheckableMessageBox::shouldAskAgain(Core::ICore::settings(), DO_NOT_SHOW_SPLASHSCREEN_AGAIN_KEY)) { connect(Core::ICore::instance(), &Core::ICore::coreOpened, this, [this] { @@ -370,8 +374,6 @@ void StudioWelcomePlugin::extensionsInitialized() s_view->setSource(QUrl("qrc:/qml/splashscreen/main.qml")); #endif - // disabled by default - Core::ICore::setNewDialogFactory([](QWidget *parent) { return new QdsNewDialog(parent); }); QTC_ASSERT(s_view->rootObject(), qWarning() << "The StudioWelcomePlugin has a runtime depdendency on " From 9d90715752106f8cc6a8c75e3c242d66f52e42b9 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 11 Nov 2021 13:50:56 +0100 Subject: [PATCH 07/33] QmlDesigner: Refresh items if state is changed We have to paint each item after a state change. This seems to be a regression caused by the swtich to Qt 6. Task-number: QDS-5462 Change-Id: I10a1e0e03c7e887c0998864f397fcbe429364ec7 Reviewed-by: Miikka Heikkinen --- .../instances/qmlstatenodeinstance.cpp | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp index 5b320814594..c07cc4bfcff 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp @@ -25,10 +25,11 @@ #include "qmlstatenodeinstance.h" -#include - #include "qmlpropertychangesnodeinstance.h" +#include +#include + namespace QmlDesigner { namespace Internal { @@ -53,12 +54,28 @@ QmlStateNodeInstance::Pointer return instance; } +void setAllNodesDirtyRecursive(QQuickItem *parentItem) +{ +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + Q_UNUSED(parentItem) +#else + if (!parentItem) + return; + const QList children = parentItem->childItems(); + for (QQuickItem *childItem : children) + setAllNodesDirtyRecursive(childItem); + DesignerSupport::addDirty(parentItem, QQuickDesignerSupport::Content); +#endif +} + void QmlStateNodeInstance::activateState() { if (!QmlPrivateGate::States::isStateActive(object(), context()) && nodeInstanceServer()->hasInstanceForObject(object())) { nodeInstanceServer()->setStateInstance(nodeInstanceServer()->instanceForObject(object())); QmlPrivateGate::States::activateState(object(), context()); + + setAllNodesDirtyRecursive(nodeInstanceServer()->rootItem()); } } From 0c60370f3e3ab79b90a4530d104ed50606d09dce Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 10 Nov 2021 12:35:06 +0100 Subject: [PATCH 08/33] ClangCodeModel: Fix Qt header completion with clangd < 14 The problem is fixed upstream, but this must work now. Fixes: QTCREATORBUG-26482 Change-Id: I3b2e863efec0edf7eaa74d73eb94705aa28723cf Reviewed-by: David Schulz Reviewed-by: Qt CI Bot --- .../clangcompletionassistprocessor.cpp | 62 ++++++++++--------- .../clangcompletionassistprocessor.h | 16 +++-- src/plugins/clangcodemodel/clangdclient.cpp | 34 ++++++++-- .../clangcodemodel/test/clangdtests.cpp | 12 +++- 4 files changed, 85 insertions(+), 39 deletions(-) diff --git a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp index 1d924f8b2da..ac8f686910a 100644 --- a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp +++ b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp @@ -338,7 +338,9 @@ IAssistProposal *ClangCompletionAssistProcessor::startCompletionHelper() return createProposal(); break; case ClangCompletionContextAnalyzer::CompleteIncludePath: - if (completeInclude(analyzer.positionEndOfExpression())) + m_completions = completeInclude(analyzer.positionEndOfExpression(), m_completionOperator, + m_interface.data(), m_interface->headerPaths()); + if (!m_completions.isEmpty()) return createProposal(); break; case ClangCompletionContextAnalyzer::CompletePreprocessorDirective: @@ -441,38 +443,46 @@ bool ClangCompletionAssistProcessor::accepts() const /** * @brief Creates completion proposals for #include and given cursor - * @param cursor - cursor placed after opening bracked or quote - * @return false if completions list is empty + * @param position - cursor placed after opening bracked or quote + * @param completionOperator - the type of token + * @param interface - relevant document data + * @param headerPaths - the include paths + * @return the list of completion items */ -bool ClangCompletionAssistProcessor::completeInclude(const QTextCursor &cursor) +QList ClangCompletionAssistProcessor::completeInclude( + int position, unsigned completionOperator, const TextEditor::AssistInterface *interface, + const ProjectExplorer::HeaderPaths &headerPaths) { + QTextCursor cursor(interface->textDocument()); + cursor.setPosition(position); QString directoryPrefix; - if (m_completionOperator == T_SLASH) { + if (completionOperator == T_SLASH) { QTextCursor c = cursor; c.movePosition(QTextCursor::StartOfLine, QTextCursor::KeepAnchor); QString sel = c.selectedText(); int startCharPos = sel.indexOf(QLatin1Char('"')); if (startCharPos == -1) { startCharPos = sel.indexOf(QLatin1Char('<')); - m_completionOperator = T_ANGLE_STRING_LITERAL; + completionOperator = T_ANGLE_STRING_LITERAL; } else { - m_completionOperator = T_STRING_LITERAL; + completionOperator = T_STRING_LITERAL; } if (startCharPos != -1) directoryPrefix = sel.mid(startCharPos + 1, sel.length() - 1); } // Make completion for all relevant includes - ProjectExplorer::HeaderPaths headerPaths = m_interface->headerPaths(); + ProjectExplorer::HeaderPaths allHeaderPaths = headerPaths; const auto currentFilePath = ProjectExplorer::HeaderPath::makeUser( - m_interface->filePath().toFileInfo().path()); - if (!headerPaths.contains(currentFilePath)) - headerPaths.append(currentFilePath); + interface->filePath().toFileInfo().path()); + if (!allHeaderPaths.contains(currentFilePath)) + allHeaderPaths.append(currentFilePath); const ::Utils::MimeType mimeType = ::Utils::mimeTypeForName("text/x-c++hdr"); const QStringList suffixes = mimeType.suffixes(); - foreach (const ProjectExplorer::HeaderPath &headerPath, headerPaths) { + QList completions; + foreach (const ProjectExplorer::HeaderPath &headerPath, allHeaderPaths) { QString realPath = headerPath.path; if (!directoryPrefix.isEmpty()) { realPath += QLatin1Char('/'); @@ -480,11 +490,11 @@ bool ClangCompletionAssistProcessor::completeInclude(const QTextCursor &cursor) if (headerPath.type == ProjectExplorer::HeaderPathType::Framework) realPath += QLatin1String(".framework/Headers"); } - completeIncludePath(realPath, suffixes); + completions << completeIncludePath(realPath, suffixes, completionOperator); } QList> completionsForSorting; - for (AssistProposalItemInterface * const item : qAsConst(m_completions)) { + for (AssistProposalItemInterface * const item : qAsConst(completions)) { QString s = item->text(); s.replace('/', QChar(0)); // The dir separator should compare less than anything else. completionsForSorting << qMakePair(item, s); @@ -493,26 +503,21 @@ bool ClangCompletionAssistProcessor::completeInclude(const QTextCursor &cursor) return left.second < right.second; }); for (int i = 0; i < completionsForSorting.count(); ++i) - m_completions[i] = completionsForSorting[i].first; + completions[i] = completionsForSorting[i].first; - return !m_completions.isEmpty(); -} - -bool ClangCompletionAssistProcessor::completeInclude(int position) -{ - QTextCursor textCursor(m_interface->textDocument()); // TODO: Simplify, move into function - textCursor.setPosition(position); - return completeInclude(textCursor); + return completions; } /** - * @brief Adds #include completion proposals using given include path + * @brief Finds #include completion proposals using given include path * @param realPath - one of directories where compiler searches includes * @param suffixes - file suffixes for C/C++ header files + * @return a list of matching completion items */ -void ClangCompletionAssistProcessor::completeIncludePath(const QString &realPath, - const QStringList &suffixes) +QList ClangCompletionAssistProcessor::completeIncludePath( + const QString &realPath, const QStringList &suffixes, unsigned completionOperator) { + QList completions; QDirIterator i(realPath, QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); //: Parent folder for proposed #include completion const QString hint = tr("Location: %1").arg(QDir::toNativeSeparators(QDir::cleanPath(realPath))); @@ -529,10 +534,11 @@ void ClangCompletionAssistProcessor::completeIncludePath(const QString &realPath item->setText(text); item->setDetail(hint); item->setIcon(CPlusPlus::Icons::keywordIcon()); - item->setCompletionOperator(m_completionOperator); - m_completions.append(item); + item->setCompletionOperator(completionOperator); + completions.append(item); } } + return completions; } bool ClangCompletionAssistProcessor::completePreprocessorDirectives() diff --git a/src/plugins/clangcodemodel/clangcompletionassistprocessor.h b/src/plugins/clangcodemodel/clangcompletionassistprocessor.h index 78826f598a8..1d67344cc86 100644 --- a/src/plugins/clangcodemodel/clangcompletionassistprocessor.h +++ b/src/plugins/clangcodemodel/clangcompletionassistprocessor.h @@ -34,6 +34,11 @@ #include #include +namespace TextEditor { +class AssistInterface; +class AssistProposalItemInterface; +} + namespace ClangCodeModel { namespace Internal { @@ -48,6 +53,11 @@ public: ClangCompletionAssistProcessor(); ~ClangCompletionAssistProcessor() override; + static QList completeInclude( + int position, unsigned completionOperator, + const TextEditor::AssistInterface *interface, + const ProjectExplorer::HeaderPaths &headerPaths); + TextEditor::IAssistProposal *perform(const TextEditor::AssistInterface *interface) override; void handleAvailableCompletions(const CodeCompletions &completions); @@ -65,12 +75,10 @@ private: TextEditor::IAssistProposal *createProposal(); TextEditor::IAssistProposal *createFunctionHintProposal( const CodeCompletions &completions); - QList toAssistProposalItems( const CodeCompletions &completions) const; - bool completeInclude(const QTextCursor &cursor); - bool completeInclude(int position); - void completeIncludePath(const QString &realPath, const QStringList &suffixes); + static QList completeIncludePath( + const QString &realPath, const QStringList &suffixes, unsigned completionOperator); bool completePreprocessorDirectives(); bool completeDoxygenKeywords(); void addCompletionItem(const QString &text, diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index be8dbfda9a3..32996f6d015 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -25,6 +25,7 @@ #include "clangdclient.h" +#include "clangcompletionassistprocessor.h" #include "clangcompletioncontextanalyzer.h" #include "clangdiagnosticmanager.h" #include "clangmodelmanagersupport.h" @@ -811,14 +812,15 @@ public: }; -enum class CustomAssistMode { Doxygen, Preprocessor }; +enum class CustomAssistMode { Doxygen, Preprocessor, IncludePath }; class CustomAssistProcessor : public IAssistProcessor { public: - CustomAssistProcessor(ClangdClient *client, int position, unsigned completionOperator, - CustomAssistMode mode) + CustomAssistProcessor(ClangdClient *client, int position, int endPos, + unsigned completionOperator, CustomAssistMode mode) : m_client(client) , m_position(position) + , m_endPos(endPos) , m_completionOperator(completionOperator) , m_mode(mode) {} @@ -834,7 +836,7 @@ private: CPlusPlus::Icons::keywordIcon()); } break; - case CustomAssistMode::Preprocessor: + case CustomAssistMode::Preprocessor: { static QIcon macroIcon = Utils::CodeModelIcon::iconForType(Utils::CodeModelIcon::Macro); for (const QString &completion : CppEditor::CppCompletionAssistProcessor::preprocessorCompletions()) { @@ -844,6 +846,17 @@ private: completions << createItem("import", macroIcon); break; } + case ClangCodeModel::Internal::CustomAssistMode::IncludePath: { + HeaderPaths headerPaths; + const CppEditor::ProjectPart::ConstPtr projectPart + = projectPartForFile(interface->filePath().toString()); + if (projectPart) + headerPaths = projectPart->headerPaths; + completions = ClangCompletionAssistProcessor::completeInclude( + m_endPos, m_completionOperator, interface, headerPaths); + break; + } + } GenericProposalModelPtr model(new GenericProposalModel); model->loadContent(completions); const auto proposal = new GenericProposal(m_position, model); @@ -865,6 +878,7 @@ private: ClangdClient * const m_client; const int m_position; + const int m_endPos; const unsigned m_completionOperator; const CustomAssistMode m_mode; }; @@ -2816,14 +2830,26 @@ IAssistProcessor *ClangdClient::ClangdCompletionAssistProvider::createProcessor( qCDebug(clangdLogCompletion) << "creating doxygen processor"; return new CustomAssistProcessor(m_client, contextAnalyzer.positionForProposal(), + contextAnalyzer.positionEndOfExpression(), contextAnalyzer.completionOperator(), CustomAssistMode::Doxygen); case ClangCompletionContextAnalyzer::CompletePreprocessorDirective: qCDebug(clangdLogCompletion) << "creating macro processor"; return new CustomAssistProcessor(m_client, contextAnalyzer.positionForProposal(), + contextAnalyzer.positionEndOfExpression(), contextAnalyzer.completionOperator(), CustomAssistMode::Preprocessor); + case ClangCompletionContextAnalyzer::CompleteIncludePath: + if (m_client->versionNumber() < QVersionNumber(14)) { // https://reviews.llvm.org/D112996 + qCDebug(clangdLogCompletion) << "creating include processor"; + return new CustomAssistProcessor(m_client, + contextAnalyzer.positionForProposal(), + contextAnalyzer.positionEndOfExpression(), + contextAnalyzer.completionOperator(), + CustomAssistMode::IncludePath); + } + [[fallthrough]]; default: break; } diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp index cc532cfda03..bd1a803d41a 100644 --- a/src/plugins/clangcodemodel/test/clangdtests.cpp +++ b/src/plugins/clangcodemodel/test/clangdtests.cpp @@ -1488,9 +1488,15 @@ void ClangdTestCompletion::testCompleteIncludeDirective() getProposal("includeDirectiveCompletion.cpp", proposal); QVERIFY(proposal); - QVERIFY(hasItem(proposal, " file.h>")); - QVERIFY(hasItem(proposal, " otherFile.h>")); - QVERIFY(hasItem(proposal, " mylib/")); + if (client()->versionNumber() < QVersionNumber(14)) { + QVERIFY(hasItem(proposal, "file.h")); + QVERIFY(hasItem(proposal, "otherFile.h")); + QVERIFY(hasItem(proposal, "mylib/")); + } else { + QVERIFY(hasItem(proposal, " file.h>")); + QVERIFY(hasItem(proposal, " otherFile.h>")); + QVERIFY(hasItem(proposal, " mylib/")); + } QVERIFY(!hasSnippet(proposal, "class ")); } From bc0ebcf873219f40bb82280d94483baa805844f0 Mon Sep 17 00:00:00 2001 From: Ivan Komissarov Date: Thu, 11 Nov 2021 15:29:43 +0300 Subject: [PATCH 09/33] Update Qbs submodule to the top of 1.21 branch Change-Id: Ic87a13079f9bedfe4c8e8934f386424a508c9eb3 Reviewed-by: Qt CI Bot Reviewed-by: Christian Kandeler --- src/shared/qbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/qbs b/src/shared/qbs index c0f2da3065f..e08c3eedcdd 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit c0f2da3065fd00b4d4193786865f7603e07c4515 +Subproject commit e08c3eedcddbc18b251f56f7158353d8cbec2c81 From 25f1efc2b68fad176eea8330ca914d5394674404 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 11 Nov 2021 15:43:12 +0100 Subject: [PATCH 10/33] Bump version to 6.0.0 Change-Id: I68af70325909705107b2e880011c72d0b75000ae Reviewed-by: Eike Ziller --- cmake/QtCreatorIDEBranding.cmake | 6 +++--- qbs/modules/qtc/qtc.qbs | 10 +++++----- qtcreator_ide_branding.pri | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cmake/QtCreatorIDEBranding.cmake b/cmake/QtCreatorIDEBranding.cmake index cced80b3e20..270e0fe174c 100644 --- a/cmake/QtCreatorIDEBranding.cmake +++ b/cmake/QtCreatorIDEBranding.cmake @@ -1,6 +1,6 @@ -set(IDE_VERSION "5.84.0") # The IDE version. -set(IDE_VERSION_COMPAT "5.84.0") # The IDE Compatibility version. -set(IDE_VERSION_DISPLAY "6.0.0-rc1") # The IDE display version. +set(IDE_VERSION "6.0.0") # The IDE version. +set(IDE_VERSION_COMPAT "6.0.0") # The IDE Compatibility version. +set(IDE_VERSION_DISPLAY "6.0.0") # The IDE display version. set(IDE_COPYRIGHT_YEAR "2021") # The IDE current copyright year. set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation. diff --git a/qbs/modules/qtc/qtc.qbs b/qbs/modules/qtc/qtc.qbs index ea2dedef4bf..925d7d615f6 100644 --- a/qbs/modules/qtc/qtc.qbs +++ b/qbs/modules/qtc/qtc.qbs @@ -3,15 +3,15 @@ import qbs.Environment import qbs.FileInfo Module { - property string qtcreator_display_version: '6.0.0-rc1' - property string ide_version_major: '5' - property string ide_version_minor: '84' + property string qtcreator_display_version: '6.0.0' + property string ide_version_major: '6' + property string ide_version_minor: '0' property string ide_version_release: '0' property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' + ide_version_release - property string ide_compat_version_major: '5' - property string ide_compat_version_minor: '84' + property string ide_compat_version_major: '6' + property string ide_compat_version_minor: '0' property string ide_compat_version_release: '0' property string qtcreator_compat_version: ide_compat_version_major + '.' + ide_compat_version_minor + '.' + ide_compat_version_release diff --git a/qtcreator_ide_branding.pri b/qtcreator_ide_branding.pri index a47d5c24928..364f1a70691 100644 --- a/qtcreator_ide_branding.pri +++ b/qtcreator_ide_branding.pri @@ -1,6 +1,6 @@ -QTCREATOR_VERSION = 5.84.0 -QTCREATOR_COMPAT_VERSION = 5.84.0 -QTCREATOR_DISPLAY_VERSION = 6.0.0-rc1 +QTCREATOR_VERSION = 6.0.0 +QTCREATOR_COMPAT_VERSION = 6.0.0 +QTCREATOR_DISPLAY_VERSION = 6.0.0 QTCREATOR_COPYRIGHT_YEAR = 2021 IDE_DISPLAY_NAME = Qt Creator From c2fb654681970bf13a948db2bb700ae5ccb9471f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 11 Nov 2021 13:23:23 +0200 Subject: [PATCH 11/33] QmlDesigner: Handle undo/redo/manual edits while editing subcomponent Undo/redo stack is reset when changing between subcomponent and document edit modes, so we can assume any undo/redo is contained within the component. Manual edits can still happen outside the component code, but we can assume they are always limited to either outside or inside the component code, as the only way to make a manual edit that spans both is to delete a block that includes both, which invalidates the subcomponent anyway. Fixes: QDS-5392 Change-Id: I820de73f519215a9cb3672abc55d5aa60cce078a Reviewed-by: Mahmoud Badri Reviewed-by: Qt CI Bot Reviewed-by: Thomas Hartmann --- .../components/integration/designdocument.cpp | 5 ++ .../model/componenttextmodifier.cpp | 81 ++++++++++++------- 2 files changed, 58 insertions(+), 28 deletions(-) diff --git a/src/plugins/qmldesigner/components/integration/designdocument.cpp b/src/plugins/qmldesigner/components/integration/designdocument.cpp index a5d904c495a..8b8b3b91253 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocument.cpp @@ -279,6 +279,7 @@ bool DesignDocument::isDocumentLoaded() const void DesignDocument::resetToDocumentModel() { + plainTextEdit()->document()->clearUndoRedoStacks(); m_inFileComponentModel.reset(); } @@ -310,6 +311,8 @@ void DesignDocument::changeToDocumentModel() viewManager().detachRewriterView(); viewManager().detachViewsExceptRewriterAndComponetView(); + plainTextEdit()->document()->clearUndoRedoStacks(); + m_inFileComponentModel.reset(); m_inFileComponentTextModifier.reset(); @@ -345,6 +348,8 @@ void DesignDocument::changeToInFileComponentModel(ComponentTextModifier *textMod viewManager().detachRewriterView(); viewManager().detachViewsExceptRewriterAndComponetView(); + plainTextEdit()->document()->clearUndoRedoStacks(); + m_inFileComponentModel.reset(createInFileComponentModel()); m_inFileComponentModel->setTextModifier(m_inFileComponentTextModifier.data()); diff --git a/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp b/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp index 6aca50c4334..aaccaee40db 100644 --- a/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp +++ b/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp @@ -160,40 +160,65 @@ void ComponentTextModifier::handleOriginalTextChanged() const QString currentText = m_originalModifier->text(); - // Adjust for removal/addition of whitespace in the document - // Check that non-whitespace portion of the text is the same and count the whitespace diff const int oldLen = m_originalText.size(); const int newLen = currentText.size(); - int newSpace = 0; - int oldSpace = 0; - int newIdx = 0; - for (int oldIdx = 0; oldIdx < oldLen; ++oldIdx) { - const QChar oldChar = m_originalText[oldIdx]; - if (oldIdx == m_componentStartOffset) - m_componentStartOffset += newSpace - oldSpace; - if (oldIdx == m_componentEndOffset) { - m_componentEndOffset += newSpace - oldSpace; - break; + + if (oldLen != newLen) { + int newSpace = 0; + int oldSpace = 0; + int newIdx = 0; + int nonWhiteSpaceChangeIdx = -1; + int newStartOffset = m_componentStartOffset; + + // Adjust for removal/addition of whitespace in the document. + // Whitespace changes that happen when document is saved can be spread around throughout + // the entire document in multiple places. + // Check that non-whitespace portion of the text is the same and count the whitespace diff + for (int oldIdx = 0; oldIdx < oldLen; ++oldIdx) { + const QChar oldChar = m_originalText[oldIdx]; + if (oldIdx == m_componentStartOffset) + newStartOffset += newSpace - oldSpace; + if (oldIdx == m_componentEndOffset) { + m_componentEndOffset += newSpace - oldSpace; + m_componentStartOffset = newStartOffset; + m_originalText = currentText; + break; + } + + while (newIdx < newLen && currentText[newIdx].isSpace()) { + ++newSpace; + ++newIdx; + } + + if (oldChar.isSpace()) { + ++oldSpace; + continue; + } + + if (currentText[newIdx] != oldChar) { + nonWhiteSpaceChangeIdx = oldIdx; + // A non-whitespace change is a result of manual text edit or undo/redo operation. + // Assumption is that separate whitespace changes and a non-whitespace change can't + // both happen simultaneously, so break out of whitespace check loop. + break; + } else { + ++newIdx; + } } - while (newIdx < newLen && currentText[newIdx].isSpace()) { - ++newSpace; - ++newIdx; + if (nonWhiteSpaceChangeIdx >= 0) { + // For non-whitespace change, we assume the whole change is either before the component + // or inside the component. If the change spans both, it's likely the change is + // invalid anyway, and we don't care about trying to keep offsets up to date. + int diff = newLen - oldLen; + if (nonWhiteSpaceChangeIdx < m_componentEndOffset) + m_componentEndOffset += diff; + if (nonWhiteSpaceChangeIdx < m_componentStartOffset) + m_componentStartOffset += diff; + m_originalText = currentText; } - if (oldChar.isSpace()) { - ++oldSpace; - continue; - } - - if (currentText[newIdx] != oldChar) { - // Non-whitespace difference, we can't determine a valid offset in this case - // TODO: Needs proper handling to deal with undo/redo/arbitrary edits somehow (QDS-5392) - break; - } else { - ++newIdx; - } } - m_originalText = currentText; + emit textChanged(); } From 05122cc07ddff36210ecd9abda96b91453effd71 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 11 Nov 2021 15:03:49 +0100 Subject: [PATCH 12/33] QmlProject: Do not allow to dismiss info bar for ui.qml files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the info bar is dismissed ('Do Not Show Again') it will never appear again. Since .ui.qml files are supposed to be opened in QDS we do not want this to happen. Task-number: QTCREATORBUG-26567 Change-Id: I236de493988c3634b56c0ac6b543f21f0bcfbec8 Reviewed-by: Kimmo Leppälä Reviewed-by: Thomas Hartmann Reviewed-by: Qt CI Bot --- src/plugins/qmlprojectmanager/qmlprojectplugin.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp index c2fd4b45763..1faf0ccbaab 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp @@ -199,7 +199,7 @@ bool QmlProjectPlugin::initialize(const QStringList &, QString *errorMessage) info(openInQDSAppSetting, description + tr(" Learn more about Qt Design Studio here: ") + "Qt Design Studio", - Utils::InfoBarEntry::GlobalSuppression::Enabled); + Utils::InfoBarEntry::GlobalSuppression::Disabled); Core::ICore::infoBar()->addInfo(info); } return; @@ -209,7 +209,7 @@ bool QmlProjectPlugin::initialize(const QStringList &, QString *errorMessage) Utils::InfoBarEntry info(openInQDSAppSetting, description + "\n" + tr("Do you want to open this file in Qt Design Studio?"), - Utils::InfoBarEntry::GlobalSuppression::Enabled); + Utils::InfoBarEntry::GlobalSuppression::Disabled); info.setCustomButtonInfo(tr("Open in Qt Design Studio"), [filePath] { Core::ICore::infoBar()->removeInfo(openInQDSAppSetting); From 1e693bcc6737b078557cca03ae677da19d4676a2 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 10 Nov 2021 22:38:59 +0100 Subject: [PATCH 13/33] Android: Skip device list update no Android Kit is active This adds workaround to reduce the load added by the update of the Android device list, which currently happens in a polling style. Skip an update if (*): - The current open project is configured with a non-Android kit - No project is open - the current project target is null To summarize the timeline of the timer used here: - AndroidDeviceManager::setupDevicesWatcher() is called when Creator is started or when settings are changed. The setup makes the connections for the timeout and for AVD list future watcher. This will be done once. If the timer is active it won't be done again, so no duplicate connections. - In the setup, the list of devices in updated once. - On timer timeout, we attempt to update the list, however with conditions listed in (*) as well as only when an Android adb path is found. Fixes: QTCREATORBUG-26547 Change-Id: I13312c4b507ce4e4064adb1c1342f4648f915394 Reviewed-by: Alessandro Portale Reviewed-by: Assam Boudjelthia --- src/plugins/android/androiddevice.cpp | 35 ++++++++++++++++++++------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp index 7638d0b402f..a062299aab9 100644 --- a/src/plugins/android/androiddevice.cpp +++ b/src/plugins/android/androiddevice.cpp @@ -37,7 +37,10 @@ #include #include +#include #include +#include +#include #include #include @@ -418,11 +421,19 @@ QUrl AndroidDevice::toolControlChannel(const ControlChannelHint &) const void AndroidDeviceManager::updateDevicesList() { - connect(&m_devicesUpdaterTimer, &QTimer::timeout, this, [this]() { - updateDevicesListOnce(); - }); + // If a non-Android Kit is currently active, skip the device list update + const Target *startupTarget = SessionManager::startupTarget(); + if (!startupTarget) + return; + + const Kit *kit = startupTarget->kit(); + if (!kit) + return; + + if (DeviceTypeKitAspect::deviceTypeId(kit) != Constants::ANDROID_DEVICE_TYPE) + return; + updateDevicesListOnce(); - m_devicesUpdaterTimer.start(deviceUpdaterMsInterval); } void AndroidDeviceManager::updateDevicesListOnce() @@ -537,11 +548,17 @@ void AndroidDeviceManager::setEmulatorArguments(QWidget *parent) void AndroidDeviceManager::setupDevicesWatcher() { - // The call to avdmanager is always slower than the call to adb devices, - // so connecting the slot to the slower call should be enough. - connect(&m_avdsFutureWatcher, &QFutureWatcherBase::finished, - this, &AndroidDeviceManager::devicesListUpdated); - updateDevicesList(); + if (!m_devicesUpdaterTimer.isActive()) { + // The call to avdmanager is always slower than the call to adb devices, + // so connecting the slot to the slower call should be enough. + connect(&m_avdsFutureWatcher, &QFutureWatcherBase::finished, + this, &AndroidDeviceManager::devicesListUpdated); + connect(&m_devicesUpdaterTimer, &QTimer::timeout, this, [this]() { + updateDevicesList(); + }); + m_devicesUpdaterTimer.start(deviceUpdaterMsInterval); + } + updateDevicesListOnce(); } void AndroidDeviceManager::devicesListUpdated() From ef9569f9b1412d58b039f66c5098acbbdd3c1dbd Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 11 Nov 2021 17:45:55 +0100 Subject: [PATCH 14/33] Doc: Link to Qt Design Studio Manual Task-number: QTCREATORBUG-26278 Change-Id: Id51e9591a63aceae3bd92c0e12d8e423059efaf0 Reviewed-by: Thomas Hartmann --- doc/qtcreator/src/overview/creator-only/creator-overview.qdoc | 4 ++-- .../creator-only/creator-projects-build-run-tutorial.qdoc | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc index 6b4576e0772..081d968a3a5 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -65,7 +65,7 @@ \li \b {\l{Designing User Interfaces}} To create intuitive, modern-looking, fluid user interfaces, you - can use \l{Qt Quick} and \QDS. + can use \l{Qt Quick} and \l{Qt Design Studio Manual}{\QDS}. If you need a traditional user interface that is clearly structured and enforces a platform look and feel, you can use the integrated \QD. For more information, see diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc index b56754bf3e7..4b58e67f9db 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc @@ -51,7 +51,8 @@ \l{http://doc.qt.io/QtForDeviceCreation/index.html}{Qt for Device Creation} documentation. - If you have \QDS installed, you can open \QDS examples from \QC in \QDS. + If you have \l{Qt Design Studio Manual}{\QDS} installed, you can open + \QDS examples from \QC in \QDS. \list 1 From 5b84f409c82572c4feeb9f251a53b1b2355f35ed Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 11 Nov 2021 17:56:39 +0100 Subject: [PATCH 15/33] Doc: Fix UI string in docs Task-number: QTCREATORBUG-26278 Change-Id: I82aa350d869f5f2c71489be177096c86d41af73f Reviewed-by: Orgad Shaneh --- .../src/overview/creator-only/creator-configuring.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc b/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc index 780c5165bdc..041e8554053 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2020 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -158,7 +158,7 @@ However, some configuration options are available and you can set them in \uicontrol Tools > \uicontrol Options > \uicontrol {Version Control} > - \uicontrol Common. + \uicontrol General. For more information about the supported functions, see \l{Using Version Control Systems}. From 9e04c6133ce24c065f5e68be92fad0e6ff3ea952 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 12 Nov 2021 10:31:52 +0200 Subject: [PATCH 16/33] QmlDesigner: Compilation fix for Qt5 builds Change-Id: I37ddd5024588c14ea415ad43ffe5b7a89c3f6857 Reviewed-by: Mahmoud Badri --- .../instances/qt5informationnodeinstanceserver.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp index 3fcda0a18df..34d96265286 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp @@ -1859,7 +1859,10 @@ void Qt5InformationNodeInstanceServer::changeSelection(const ChangeSelectionComm if (qobject_cast(object) || qobject_cast(object) || qobject_cast(object) - || qobject_cast(object)) { +#ifdef QUICK3D_PARTICLES_MODULE + || qobject_cast(object) +#endif + ) { return true; } // Node is a component if it has node children that have no instances From d325db3eb2a53d5c82094c175df8a638d8227525 Mon Sep 17 00:00:00 2001 From: Tapani Mattila Date: Thu, 11 Nov 2021 18:36:48 +0200 Subject: [PATCH 17/33] CMake generating: Modify to generate files according to new dir structure Task-number: QDS-5380 Change-Id: Ic3a4d6f4cd05185ded31b5d40adef43ff6508407 Reviewed-by: Qt CI Bot Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/boilerplate.qrc | 5 + .../qmldesigner/generatecmakelists.cpp | 176 +++++++++--------- src/plugins/qmldesigner/generatecmakelists.h | 9 +- .../qmldesigner/qmlprojectmaincmakelists.tpl | 19 ++ .../qmldesigner/qmlprojectmaincppheader.tpl | 8 + src/plugins/qmldesigner/qmlprojectmainqml.tpl | 6 + .../qmlprojectmodulecmakelists.tpl | 11 ++ src/plugins/qmldesigner/qmlprojectmodules.tpl | 16 ++ 8 files changed, 155 insertions(+), 95 deletions(-) create mode 100644 src/plugins/qmldesigner/qmlprojectmaincmakelists.tpl create mode 100644 src/plugins/qmldesigner/qmlprojectmaincppheader.tpl create mode 100644 src/plugins/qmldesigner/qmlprojectmainqml.tpl create mode 100644 src/plugins/qmldesigner/qmlprojectmodulecmakelists.tpl create mode 100644 src/plugins/qmldesigner/qmlprojectmodules.tpl diff --git a/src/plugins/qmldesigner/boilerplate.qrc b/src/plugins/qmldesigner/boilerplate.qrc index 2680ec0da9c..3e2106beaa0 100644 --- a/src/plugins/qmldesigner/boilerplate.qrc +++ b/src/plugins/qmldesigner/boilerplate.qrc @@ -1,5 +1,10 @@ qmlprojectmaincpp.tpl + qmlprojectmaincppheader.tpl + qmlprojectmodules.tpl + qmlprojectmaincmakelists.tpl + qmlprojectmodulecmakelists.tpl + qmlprojectmainqml.tpl diff --git a/src/plugins/qmldesigner/generatecmakelists.cpp b/src/plugins/qmldesigner/generatecmakelists.cpp index feeaa2fe19e..24faa267397 100644 --- a/src/plugins/qmldesigner/generatecmakelists.cpp +++ b/src/plugins/qmldesigner/generatecmakelists.cpp @@ -78,7 +78,7 @@ void onGenerateCmakeLists() { queuedFiles.clear(); FilePath rootDir = ProjectExplorer::SessionManager::startupProject()->projectDirectory(); - GenerateCmakeLists::generateMainCmake(rootDir); + GenerateCmakeLists::generateCmakes(rootDir); GenerateEntryPoints::generateMainCpp(rootDir); GenerateEntryPoints::generateMainQml(rootDir); if (showConfirmationDialog(rootDir)) @@ -139,138 +139,125 @@ bool writeFile(const GeneratableFile &file) return true; } +QString readTemplate(const QString &templatePath) +{ + QFile templatefile(templatePath); + templatefile.open(QIODevice::ReadOnly); + QTextStream stream(&templatefile); + QString content = stream.readAll(); + templatefile.close(); + + return content; +} + } namespace GenerateCmakeLists { +QStringList moduleNames; + const QDir::Filters FILES_ONLY = QDir::Files; const QDir::Filters DIRS_ONLY = QDir::Dirs|QDir::Readable|QDir::NoDotAndDotDot; const char CMAKEFILENAME[] = "CMakeLists.txt"; const char QMLDIRFILENAME[] = "qmldir"; +const char MODULEFILENAME[] = "qmlmodules"; -QStringList processDirectory(const FilePath &dir) +bool generateCmakes(const FilePath &rootDir) { - QStringList moduleNames; + moduleNames.clear(); - FilePaths files = dir.dirEntries(FILES_ONLY); - for (FilePath &file : files) { - if (!file.fileName().compare(CMAKEFILENAME)) - files.removeAll(file); - } + FilePath contentDir = rootDir.pathAppended("content"); + FilePath importDir = rootDir.pathAppended("imports"); - if (files.isEmpty()) { - generateSubdirCmake(dir); - FilePaths subDirs = dir.dirEntries(DIRS_ONLY); - for (FilePath &subDir : subDirs) { - QStringList subDirModules = processDirectory(subDir); - moduleNames.append(subDirModules); - } - } - else { - QString moduleName = generateModuleCmake(dir); - if (!moduleName.isEmpty()) { - moduleNames.append(moduleName); - } - } + generateModuleCmake(contentDir); + generateImportCmake(importDir); + generateMainCmake(rootDir); - return moduleNames; + return true; } -const char MAINFILE_REQUIRED_VERSION[] = "cmake_minimum_required(VERSION 3.18)\n\n"; -const char MAINFILE_PROJECT[] = "project(%1 LANGUAGES CXX)\n\n"; -const char MAINFILE_CMAKE_OPTIONS[] = "set(CMAKE_INCLUDE_CURRENT_DIR ON)\nset(CMAKE_AUTOMOC ON)\n\n"; -const char MAINFILE_PACKAGES[] = "find_package(Qt6 COMPONENTS Gui Qml Quick)\n"; -const char MAINFILE_LIBRARIES[] = "set(QT_QML_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/qml)\n\n"; -const char MAINFILE_CPP[] = "add_executable(%1 main.cpp)\n\n"; -const char MAINFILE_MAINMODULE[] = "qt6_add_qml_module(%1\n\tURI \"Main\"\n\tVERSION 1.0\n\tNO_PLUGIN\n\tQML_FILES main.qml\n)\n\n"; -const char MAINFILE_LINK_LIBRARIES[] = "target_link_libraries(%1 PRIVATE\n\tQt${QT_VERSION_MAJOR}::Core\n\tQt${QT_VERSION_MAJOR}::Gui\n\tQt${QT_VERSION_MAJOR}::Quick\n\tQt${QT_VERSION_MAJOR}::Qml\n)\n\n"; - -const char ADD_SUBDIR[] = "add_subdirectory(%1)\n"; +const char MAIN_CMAKEFILE_TEMPLATE_PATH[] = ":/boilerplatetemplates/qmlprojectmaincmakelists.tpl"; +const char QMLMODULES_FILE_TEMPLATE_PATH[] = ":/boilerplatetemplates/qmlprojectmodules.tpl"; void generateMainCmake(const FilePath &rootDir) { //TODO startupProject() may be a terrible way to try to get "current project". It's not necessarily the same thing at all. QString projectName = ProjectExplorer::SessionManager::startupProject()->displayName(); + QString appName = projectName + "App"; - FilePaths subDirs = rootDir.dirEntries(DIRS_ONLY); + QString cmakeFileContent = GenerateCmake::readTemplate(MAIN_CMAKEFILE_TEMPLATE_PATH).arg(appName); + queueCmakeFile(rootDir, cmakeFileContent); + QString modulesAsPlugins; + for (const QString &moduleName : moduleNames) + modulesAsPlugins.append(" " + moduleName + "plugin\n"); + + QString moduleFileContent = GenerateCmake::readTemplate(QMLMODULES_FILE_TEMPLATE_PATH).arg(appName).arg(modulesAsPlugins); + GenerateCmake::queueFile(rootDir.pathAppended(MODULEFILENAME), moduleFileContent); +} + +const char DO_NOT_EDIT_FILE_COMMENT[] = "### This file is automatically generated by Qt Design Studio.\n### Do not change\n\n"; +const char ADD_SUBDIR[] = "add_subdirectory(%1)\n"; + +void generateImportCmake(const FilePath &dir) +{ QString fileContent; - fileContent.append(MAINFILE_REQUIRED_VERSION); - fileContent.append(QString(MAINFILE_PROJECT).arg(projectName)); - fileContent.append(MAINFILE_CMAKE_OPTIONS); - fileContent.append(MAINFILE_PACKAGES); - fileContent.append(QString(MAINFILE_CPP).arg(projectName)); - fileContent.append(QString(MAINFILE_MAINMODULE).arg(projectName)); - fileContent.append(MAINFILE_LIBRARIES); + fileContent.append(DO_NOT_EDIT_FILE_COMMENT); + + FilePaths subDirs = dir.dirEntries(DIRS_ONLY); for (FilePath &subDir : subDirs) { - QStringList subDirModules = processDirectory(subDir); - if (!subDirModules.isEmpty()) - fileContent.append(QString(ADD_SUBDIR).arg(subDir.fileName())); + fileContent.append(QString(ADD_SUBDIR).arg(subDir.fileName())); + generateModuleCmake(subDir); } - fileContent.append("\n"); - fileContent.append(QString(MAINFILE_LINK_LIBRARIES).arg(projectName)); - - createCmakeFile(rootDir, fileContent); + queueCmakeFile(dir, fileContent); } const char MODULEFILE_PROPERTY_SINGLETON[] = "QT_QML_SINGLETON_TYPE"; -const char MODULEFILE_PROPERTY_SET[] = "set_source_files_properties(%1\n\tPROPERTIES\n\t\t%2 %3\n)\n\n"; -const char MODULEFILE_CREATE_MODULE[] = "qt6_add_qml_module(%1\n\tURI \"%1\"\n\tVERSION 1.0\n%2)\n\n"; +const char MODULEFILE_PROPERTY_SET[] = "set_source_files_properties(%1\n PROPERTIES\n %2 %3\n)\n\n"; +const char MODULEFILE_TEMPLATE_PATH[] = ":/boilerplatetemplates/qmlprojectmodulecmakelists.tpl"; - -QString generateModuleCmake(const FilePath &dir) +void generateModuleCmake(const FilePath &dir) { - QString fileContent; + QString fileTemplate = GenerateCmake::readTemplate(MODULEFILE_TEMPLATE_PATH); const QStringList qmldirFilesOnly(QMLDIRFILENAME); + QString singletonContent; FilePaths qmldirFileList = dir.dirEntries(qmldirFilesOnly, FILES_ONLY); if (!qmldirFileList.isEmpty()) { QStringList singletons = getSingletonsFromQmldirFile(qmldirFileList.first()); for (QString &singleton : singletons) { - fileContent.append(QString(MODULEFILE_PROPERTY_SET).arg(singleton).arg(MODULEFILE_PROPERTY_SINGLETON).arg("true")); + singletonContent.append(QString(MODULEFILE_PROPERTY_SET).arg(singleton).arg(MODULEFILE_PROPERTY_SINGLETON).arg("true")); } } QStringList qmlFileList = getDirectoryTreeQmls(dir); QString qmlFiles; for (QString &qmlFile : qmlFileList) - qmlFiles.append(QString("\t\t%1\n").arg(qmlFile)); + qmlFiles.append(QString(" %1\n").arg(qmlFile)); QStringList resourceFileList = getDirectoryTreeResources(dir); QString resourceFiles; for (QString &resourceFile : resourceFileList) - resourceFiles.append(QString("\t\t%1\n").arg(resourceFile)); + resourceFiles.append(QString(" %1\n").arg(resourceFile)); QString moduleContent; if (!qmlFiles.isEmpty()) { - moduleContent.append(QString("\tQML_FILES\n%1").arg(qmlFiles)); + moduleContent.append(QString(" QML_FILES\n%1").arg(qmlFiles)); } if (!resourceFiles.isEmpty()) { - moduleContent.append(QString("\tRESOURCES\n%1").arg(resourceFiles)); + moduleContent.append(QString(" RESOURCES\n%1").arg(resourceFiles)); } QString moduleName = dir.fileName(); - fileContent.append(QString(MODULEFILE_CREATE_MODULE).arg(moduleName).arg(moduleContent)); + moduleNames.append(moduleName); - createCmakeFile(dir, fileContent); - - return moduleName; -} - -void generateSubdirCmake(const FilePath &dir) -{ QString fileContent; - FilePaths subDirs = dir.dirEntries(DIRS_ONLY); - - for (FilePath &subDir : subDirs) { - fileContent.append(QString(ADD_SUBDIR).arg(subDir.fileName())); - } - - createCmakeFile(dir, fileContent); + fileContent.append(fileTemplate.arg(singletonContent).arg(moduleName).arg(moduleContent)); + queueCmakeFile(dir, fileContent); } QStringList getSingletonsFromQmldirFile(const FilePath &filePath) @@ -347,7 +334,7 @@ QStringList getDirectoryTreeResources(const FilePath &dir) return resourceFileList; } -void createCmakeFile(const FilePath &dir, const QString &content) +void queueCmakeFile(const FilePath &dir, const QString &content) { FilePath filePath = dir.pathAppended(CMAKEFILENAME); GenerateCmake::queueFile(filePath, content); @@ -370,35 +357,42 @@ bool generateEntryPointFiles(const FilePath &dir) return cppOk && qmlOk; } -const char MAIN_CPPFILE_CONTENT[] = ":/boilerplatetemplates/qmlprojectmaincpp.tpl"; +const char MAIN_CPPFILE_TEMPLATE_PATH[] = ":/boilerplatetemplates/qmlprojectmaincpp.tpl"; +const char MAIN_CPPFILE_DIR[] = "src"; const char MAIN_CPPFILE_NAME[] = "main.cpp"; +const char MAIN_CPPFILE_HEADER_TEMPLATE_PATH[] = ":/boilerplatetemplates/qmlprojectmaincppheader.tpl"; +const char MAIN_CPPFILE_HEADER_NAME[] = "import_qml_plugins.h"; +const char MAIN_CPPFILE_HEADER_PLUGIN_LINE[] = "Q_IMPORT_QML_PLUGIN(%1)\n"; bool generateMainCpp(const FilePath &dir) { - QFile templatefile(MAIN_CPPFILE_CONTENT); - templatefile.open(QIODevice::ReadOnly); - QTextStream stream(&templatefile); - QString content = stream.readAll(); - templatefile.close(); + FilePath srcDir = dir.pathAppended(MAIN_CPPFILE_DIR); - FilePath filePath = dir.pathAppended(MAIN_CPPFILE_NAME); - return GenerateCmake::queueFile(filePath, content); + QString cppContent = GenerateCmake::readTemplate(MAIN_CPPFILE_TEMPLATE_PATH); + FilePath cppFilePath = srcDir.pathAppended(MAIN_CPPFILE_NAME); + bool cppOk = GenerateCmake::queueFile(cppFilePath, cppContent); + + QString modulesAsPlugins; + for (const QString &moduleName : GenerateCmakeLists::moduleNames) + modulesAsPlugins.append( + QString(MAIN_CPPFILE_HEADER_PLUGIN_LINE).arg(moduleName + "plugin")); + + QString headerContent = GenerateCmake::readTemplate(MAIN_CPPFILE_HEADER_TEMPLATE_PATH) + .arg(modulesAsPlugins); + FilePath headerFilePath = srcDir.pathAppended(MAIN_CPPFILE_HEADER_NAME); + bool headerOk = GenerateCmake::queueFile(headerFilePath, headerContent); + + return cppOk && headerOk; } -const char MAIN_QMLFILE_CONTENT[] = "import %1Qml\n\n%2 {\n}\n"; +const char MAIN_QMLFILE_PATH[] = ":/boilerplatetemplates/qmlprojectmainqml.tpl"; const char MAIN_QMLFILE_NAME[] = "main.qml"; bool generateMainQml(const FilePath &dir) { + QString content = GenerateCmake::readTemplate(MAIN_QMLFILE_PATH); FilePath filePath = dir.pathAppended(MAIN_QMLFILE_NAME); - QString projectName = ProjectExplorer::SessionManager::startupProject()->displayName(); - ProjectExplorer::RunConfiguration *runConfiguration = ProjectExplorer::SessionManager::startupRunConfiguration(); - QString mainClass; - - if (const auto aspect = runConfiguration->aspect()) - mainClass = FilePath::fromString(aspect->mainScript()).baseName(); - - return GenerateCmake::queueFile(filePath, QString(MAIN_QMLFILE_CONTENT).arg(projectName).arg(mainClass)); + return GenerateCmake::queueFile(filePath, content); } } diff --git a/src/plugins/qmldesigner/generatecmakelists.h b/src/plugins/qmldesigner/generatecmakelists.h index d1603a1860b..b9f225e9465 100644 --- a/src/plugins/qmldesigner/generatecmakelists.h +++ b/src/plugins/qmldesigner/generatecmakelists.h @@ -45,16 +45,17 @@ bool showConfirmationDialog(const Utils::FilePath &rootDir); bool queueFile(const Utils::FilePath &filePath, const QString &fileContent); bool writeFile(const GeneratableFile &file); bool writeQueuedFiles(); +QString readTemplate(const QString &templatePath); } namespace GenerateCmakeLists { +bool generateCmakes(const Utils::FilePath &rootDir); void generateMainCmake(const Utils::FilePath &rootDir); -void generateSubdirCmake(const Utils::FilePath &dir); -QString generateModuleCmake(const Utils::FilePath &dir); -QStringList processDirectory(const Utils::FilePath &dir); +void generateImportCmake(const Utils::FilePath &dir); +void generateModuleCmake(const Utils::FilePath &dir); QStringList getSingletonsFromQmldirFile(const Utils::FilePath &filePath); QStringList getDirectoryTreeQmls(const Utils::FilePath &dir); QStringList getDirectoryTreeResources(const Utils::FilePath &dir); -void createCmakeFile(const Utils::FilePath &filePath, const QString &content); +void queueCmakeFile(const Utils::FilePath &filePath, const QString &content); bool isFileBlacklisted(const QString &fileName); } namespace GenerateEntryPoints { diff --git a/src/plugins/qmldesigner/qmlprojectmaincmakelists.tpl b/src/plugins/qmldesigner/qmlprojectmaincmakelists.tpl new file mode 100644 index 00000000000..926f7b43be9 --- /dev/null +++ b/src/plugins/qmldesigner/qmlprojectmaincmakelists.tpl @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.18) + +project(%1 LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) + +find_package(Qt6 COMPONENTS Gui Qml Quick) +add_executable(%1 src/main.cpp) + +target_link_libraries(%1 PRIVATE + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Quick + Qt${QT_VERSION_MAJOR}::Qml +) + +include(${CMAKE_CURRENT_SOURCE_DIR}/qmlmodules) + diff --git a/src/plugins/qmldesigner/qmlprojectmaincppheader.tpl b/src/plugins/qmldesigner/qmlprojectmaincppheader.tpl new file mode 100644 index 00000000000..60cef09a82c --- /dev/null +++ b/src/plugins/qmldesigner/qmlprojectmaincppheader.tpl @@ -0,0 +1,8 @@ +/* + * This file is automatically generated by Qt Design Studio. + * Do not change. +*/ + +#include + +%1 diff --git a/src/plugins/qmldesigner/qmlprojectmainqml.tpl b/src/plugins/qmldesigner/qmlprojectmainqml.tpl new file mode 100644 index 00000000000..fa8f6d1cc18 --- /dev/null +++ b/src/plugins/qmldesigner/qmlprojectmainqml.tpl @@ -0,0 +1,6 @@ +import QtQuick +import content + +App { +} + diff --git a/src/plugins/qmldesigner/qmlprojectmodulecmakelists.tpl b/src/plugins/qmldesigner/qmlprojectmodulecmakelists.tpl new file mode 100644 index 00000000000..46132d8c1a4 --- /dev/null +++ b/src/plugins/qmldesigner/qmlprojectmodulecmakelists.tpl @@ -0,0 +1,11 @@ +### This file is automatically generated by Qt Design Studio. +### Do not change + +%1 + +qt_add_library(%2 STATIC) +qt6_add_qml_module(%2 + URI "%2" + VERSION 1.0 +%3 +) diff --git a/src/plugins/qmldesigner/qmlprojectmodules.tpl b/src/plugins/qmldesigner/qmlprojectmodules.tpl new file mode 100644 index 00000000000..2cae6017cc3 --- /dev/null +++ b/src/plugins/qmldesigner/qmlprojectmodules.tpl @@ -0,0 +1,16 @@ +### This file is automatically generated by Qt Design Studio. +### Do not change + +qt6_add_qml_module(%1 + URI "Main" + VERSION 1.0 + NO_PLUGIN + QML_FILES main.qml +) + +add_subdirectory(content) +add_subdirectory(imports) + +target_link_libraries(%1 PRIVATE +%2 +) From 1e9e61e4bf39200c69d4748de191ad71532aa3bf Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 11 Nov 2021 17:53:35 +0100 Subject: [PATCH 18/33] Doc: Update info about sidebar views and output panes Add icons for toolbar buttons. Task-number: QTCREATORBUG-26278 Change-Id: I92f34775142ebba0489944f90fb956494d0a3174 Reviewed-by: Eike Ziller --- .../images/qtcreator-parse-build-output.png | Bin 8706 -> 8437 bytes .../creator-open-documents-view.qdoc | 9 ++------- .../src/user-interface/creator-ui.qdoc | 16 +++++++++------- .../src/user-interface/creator-views.qdoc | 9 ++++++--- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/doc/qtcreator/images/qtcreator-parse-build-output.png b/doc/qtcreator/images/qtcreator-parse-build-output.png index 56d9724ea6668bd2028ae9df6cebf67b32868416..abd84fa04f1cb0113b7122a826c1f9e24a49f445 100644 GIT binary patch literal 8437 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 HP6 \uicontrol Options > \uicontrol {Build & Run} > - \uicontrol {Application Output}, or click the \uicontrol {Open Settings Page} - button. You can select whether to open the \uicontrol{Application Output} pane - on output when running or debugging applications, to clear old output on a new run, + \uicontrol {Application Output}, or click the \inlineimage settings.png + (\uicontrol {Open Settings Page}) button. You can select whether to open + the \uicontrol{Application Output} pane on output when running or debugging + applications, to clear old output on a new run, to word-wrap output, and to limit output to the specified number of lines. \section1 Compile Output @@ -575,8 +577,8 @@ In the \uicontrol {Limit output to} field, you can specify the maximum amount of build output lines to display in the pane. - You can also reach the options page by clicking the \uicontrol {Open Settings Page} - button. + You can also reach the options page by clicking \inlineimage settings.png + (\uicontrol {Open Settings Page}). To copy the output from the pane to the clipboard, select \uicontrol {Select All} in the context menu, and then select diff --git a/doc/qtcreator/src/user-interface/creator-views.qdoc b/doc/qtcreator/src/user-interface/creator-views.qdoc index 65d41d0bbf1..ec9466d7c4b 100644 --- a/doc/qtcreator/src/user-interface/creator-views.qdoc +++ b/doc/qtcreator/src/user-interface/creator-views.qdoc @@ -97,12 +97,14 @@ \list \li To see a complete list of all bindings, select - \uicontrol {Filter Tree} > \uicontrol {Show All Bindings}. + \inlineimage filtericon.png + (\uicontrol {Filter Tree}) > \uicontrol {Show All Bindings}. \li To sort types or symbols alphabetically, select \inlineimage sort_alphabetically.png (\uicontrol {Sort Alphabetically}). \li To stop the synchronization with the type or symbol selected in the - editor, deselect \uicontrol {Synchronize with Editor}. + editor, deselect \inlineimage linkicon.png + (\uicontrol {Synchronize with Editor}). \endlist \section1 Viewing the Class Hierarchy @@ -144,5 +146,6 @@ \image qtcreator-include-hierarchy-view.png "Include Hierarchy view" To keep the view synchronized with the file currently opened in the editor, - select \uicontrol {Synchronize with Editor}. + select \inlineimage linkicon.png + (\uicontrol {Synchronize with Editor}). */ From 66900b1deb5137616137662a1163ce5d337f046b Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 9 Nov 2021 12:33:00 +0100 Subject: [PATCH 19/33] Autotest: Simplify ITestConfiguration::executableFilePath() Change-Id: I7a3cdcc896b073a5cc24d00487902f4baff8719c Reviewed-by: Christian Stenger --- src/plugins/autotest/testconfiguration.cpp | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/src/plugins/autotest/testconfiguration.cpp b/src/plugins/autotest/testconfiguration.cpp index 09f17670c9c..4599fc7606b 100644 --- a/src/plugins/autotest/testconfiguration.cpp +++ b/src/plugins/autotest/testconfiguration.cpp @@ -83,21 +83,9 @@ FilePath ITestConfiguration::executableFilePath() const if (!hasExecutable()) return {}; - if (m_runnable.command.executable().isExecutableFile() && m_runnable.command.executable().path() != ".") { - return m_runnable.command.executable().absoluteFilePath(); - } else if (m_runnable.command.executable().path() == "."){ - QString fullCommandFileName = m_runnable.command.executable().toString(); - // TODO: check if we can use searchInPath() from Utils::Environment - const QStringList &pathList = m_runnable.environment.toProcessEnvironment().value("PATH") - .split(HostOsInfo::pathListSeparator()); - - for (const QString &path : pathList) { - QString filePath(path + QDir::separator() + fullCommandFileName); - if (QFileInfo(filePath).isExecutable()) - return m_runnable.command.executable().absoluteFilePath(); - } - } - return {}; + const Environment env = m_runnable.environment.size() == 0 ? Environment::systemEnvironment() + : m_runnable.environment; + return env.searchInPath(m_runnable.command.executable().path()); } Environment ITestConfiguration::filteredEnvironment(const Environment &original) const From 2c1adffb11e0935441ca49cc0eaac3f0fcc075c0 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 9 Nov 2021 14:16:14 +0100 Subject: [PATCH 20/33] CppEditor: Fix renaming etc in non-project sources Was probably broken in 33108795d6. Change-Id: I54e2a668c00b132e3a7757be9e5ab294427f1f6d Reviewed-by: Christian Stenger --- src/plugins/cppeditor/projectpart.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/cppeditor/projectpart.cpp b/src/plugins/cppeditor/projectpart.cpp index 1376186d804..930466e0fe4 100644 --- a/src/plugins/cppeditor/projectpart.cpp +++ b/src/plugins/cppeditor/projectpart.cpp @@ -57,7 +57,7 @@ QString ProjectPart::projectFileLocation() const bool ProjectPart::belongsToProject(const ProjectExplorer::Project *project) const { - return project && topLevelProject == project->projectFilePath(); + return project ? topLevelProject == project->projectFilePath() : !hasProject(); } QByteArray ProjectPart::readProjectConfigFile(const QString &projectConfigFile) From daeb6a0eae5d507980b6c1778f664e45dd84d471 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 11 Nov 2021 17:57:32 +0100 Subject: [PATCH 21/33] Doc: Add Catch 2 test to list of supported testing frameworks Task-number: QTCREATORBUG-26278 Change-Id: Ic42f63c298c4d7f9ca0373b7737f3653599dbe4d Reviewed-by: Christian Stenger --- .../src/overview/creator-only/creator-overview.qdoc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc index 081d968a3a5..46f384599d2 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc @@ -114,9 +114,10 @@ execution. In addition, the QML Profiler enables you to profile Qt Quick applications. - \QC is integrated to the \l{Qt Test}, Google C++ Testing, and - Boost.Test frameworks for unit testing applications and - libraries. You can use \QC to create, build, and run autotests. + \QC is integrated to the \l{Qt Test}, Boost.Test, Catch 2 test, + and Google C++ Testing frameworks for unit testing applications + and libraries. You can use \QC to create, build, and run + autotests. For more information, see \l{Testing}. \li \b {Publishing} From eab7a82301810d22975468b11ed6f55f07c560e3 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Fri, 12 Nov 2021 11:20:10 +0100 Subject: [PATCH 22/33] StudioWelcome: Ensure only wizards with the QtSudio feature are shown This is is easiest way to hide all unrelated wizards and we do not have to maintain any list. Change-Id: Id3f3b710b670cbe4e670d9dd86526daecab3fa9b Reviewed-by: Samuel Ghinet Reviewed-by: Thomas Hartmann Reviewed-by: Qt CI Bot --- src/plugins/studiowelcome/wizardfactories.cpp | 16 ++++------------ src/plugins/studiowelcome/wizardfactories.h | 1 - 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/plugins/studiowelcome/wizardfactories.cpp b/src/plugins/studiowelcome/wizardfactories.cpp index d9a6d686e75..83a97d455d4 100644 --- a/src/plugins/studiowelcome/wizardfactories.cpp +++ b/src/plugins/studiowelcome/wizardfactories.cpp @@ -30,11 +30,6 @@ #include "wizardfactories.h" #include -namespace { -// TODO: should be extern, check coreplugin/dialogs/newdialogwidget.cpp -const char BLACKLISTED_CATEGORIES_KEY[] = "Core/NewDialog/BlacklistedCategories"; -} - using namespace StudioWelcome; WizardFactories::WizardFactories(QList &factories, QWidget *wizardParent, const Utils::Id &platform) @@ -42,9 +37,6 @@ WizardFactories::WizardFactories(QList &factories, QWidg , m_platform{platform} , m_factories{factories} { - QVariant value = Core::ICore::settings()->value(BLACKLISTED_CATEGORIES_KEY); - m_blacklist = Utils::Id::fromStringList(value.toStringList()); - sortByCategoryAndId(); filter(); m_projectItems = makeProjectItemsGroupedByCategory(); @@ -66,10 +58,10 @@ void WizardFactories::filter() // TODO: perhaps I could use Utils::filtered here. std::copy_if(std::begin(m_factories), std::end(m_factories), std::back_inserter(acceptedFactories), [&](auto *wizard) { - return wizard->isAvailable(m_platform) - && wizard->kind() == Core::IWizardFactory::ProjectWizard - && !m_blacklist.contains(Utils::Id::fromString(wizard->category())); - }); + return wizard->isAvailable(m_platform) + && wizard->kind() == Core::IWizardFactory::ProjectWizard + && wizard->requiredFeatures().contains("QtStudio"); + }); m_factories = acceptedFactories; } diff --git a/src/plugins/studiowelcome/wizardfactories.h b/src/plugins/studiowelcome/wizardfactories.h index c41300ff091..9353ecf59f7 100644 --- a/src/plugins/studiowelcome/wizardfactories.h +++ b/src/plugins/studiowelcome/wizardfactories.h @@ -55,7 +55,6 @@ private: std::map makeProjectItemsGroupedByCategory(); private: - QSet m_blacklist; QWidget *m_wizardParent; Utils::Id m_platform; From d2c378ef75a4e7c995441b62dab4b53803d83c49 Mon Sep 17 00:00:00 2001 From: Samuel Ghinet Date: Fri, 12 Nov 2021 15:20:40 +0200 Subject: [PATCH 23/33] Fix wizard details & styles panes not loading on Linux Change-Id: I84ced8de858fb3aa9b72e3a9b8524154c0274c7a Reviewed-by: Thomas Hartmann --- .../newprojectdialog/imports/ProjectType/DefaultProject.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/qmldesigner/newprojectdialog/imports/ProjectType/DefaultProject.qml b/share/qtcreator/qmldesigner/newprojectdialog/imports/ProjectType/DefaultProject.qml index 05bc5fff042..75dfd684094 100644 --- a/share/qtcreator/qmldesigner/newprojectdialog/imports/ProjectType/DefaultProject.qml +++ b/share/qtcreator/qmldesigner/newprojectdialog/imports/ProjectType/DefaultProject.qml @@ -29,7 +29,7 @@ import QtQuick.Controls import QtQuick import QtQuick.Layouts -import newprojectdialog +import NewProjectDialog Item { anchors.fill: parent From 95e8afabba0ee66e5fe36514b2f27bf0d4f28dc2 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 12 Nov 2021 11:33:07 +0100 Subject: [PATCH 24/33] ClangCodeModel: Handle UI header updates with clangd We need to manually refresh the documents that include the generated header, as clangd does not know about it. Change-Id: I8c4303ac029bbb56c01aa99b7950dcc651701678 Reviewed-by: David Schulz --- src/plugins/clangcodemodel/clangdclient.cpp | 24 +++++++++++++++++++ src/plugins/clangcodemodel/clangdclient.h | 2 ++ .../clangmodelmanagersupport.cpp | 2 ++ 3 files changed, 28 insertions(+) diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 32996f6d015..7d034f7aac3 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -1539,6 +1539,30 @@ QString ClangdClient::displayNameFromDocumentSymbol(SymbolKind kind, const QStri } } +// Force re-parse of all open files that include the changed ui header. +// Otherwise, we potentially have stale diagnostics. +void ClangdClient::handleUiHeaderChange(const QString &fileName) +{ + const QRegularExpression includeRex("#include.*" + fileName + R"([>"])"); + const QVector &allClients = LanguageClientManager::clients(); + for (Client * const client : allClients) { + if (!client->reachable() || !qobject_cast(client)) + continue; + for (IDocument * const doc : DocumentModel::openedDocuments()) { + const auto textDoc = qobject_cast(doc); + if (!textDoc || !client->documentOpen(textDoc)) + continue; + const QTextCursor includePos = textDoc->document()->find(includeRex); + if (includePos.isNull()) + continue; + qCDebug(clangdLog) << "updating" << textDoc->filePath() << "due to change in UI header" + << fileName; + client->documentContentsChanged(textDoc, 0, 0, 0); + break; // No sane project includes the same UI header twice. + } + } +} + void ClangdClient::Private::handleFindUsagesResult(quint64 key, const QList &locations) { const auto refData = runningFindUsages.find(key); diff --git a/src/plugins/clangcodemodel/clangdclient.h b/src/plugins/clangcodemodel/clangdclient.h index 580168c3e33..de898696ec0 100644 --- a/src/plugins/clangcodemodel/clangdclient.h +++ b/src/plugins/clangcodemodel/clangdclient.h @@ -86,6 +86,8 @@ public: static QString displayNameFromDocumentSymbol(LanguageServerProtocol::SymbolKind kind, const QString &name, const QString &detail); + static void handleUiHeaderChange(const QString &fileName); + signals: void indexingFinished(); void foundReferences(const QList &items); diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index 3bd9d2640f6..371fb224524 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -608,6 +608,7 @@ void ClangModelManagerSupport::onAbstractEditorSupportContentsUpdated(const QStr const QString mappedPath = m_uiHeaderOnDiskManager.write(filePath, content); m_communicator.unsavedFilesUpdated(mappedPath, content, 0); + ClangdClient::handleUiHeaderChange(Utils::FilePath::fromString(filePath).fileName()); } void ClangModelManagerSupport::onAbstractEditorSupportRemoved(const QString &filePath) @@ -618,6 +619,7 @@ void ClangModelManagerSupport::onAbstractEditorSupportRemoved(const QString &fil const QString mappedPath = m_uiHeaderOnDiskManager.remove(filePath); const QString projectPartId = projectPartIdForFile(filePath); m_communicator.unsavedFilesRemoved({{mappedPath, projectPartId}}); + ClangdClient::handleUiHeaderChange(Utils::FilePath::fromString(filePath).fileName()); } } From 76d3ffa57a525b53ccfa16c7204a7848ce36a13a Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 11 Nov 2021 16:11:00 +0100 Subject: [PATCH 25/33] ClangCodeModel: Clean file paths resulting from "follow symbol" Apparently, libclang can give us non-cleaned paths, which we never noticed until ea215d612d. We also restore the previous behavior of TextDocument::setFilePath() in order to prevent similar regressions elsewhere. Fixes: QTCREATORBUG-26561 Change-Id: I218ed29600e9fb6b299aa2ba0b9d1464f475c06b Reviewed-by: Qt CI Bot Reviewed-by: David Schulz Reviewed-by: Eike Ziller --- src/plugins/clangcodemodel/clangfollowsymbol.cpp | 9 +++++---- src/plugins/texteditor/textdocument.cpp | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/clangcodemodel/clangfollowsymbol.cpp b/src/plugins/clangcodemodel/clangfollowsymbol.cpp index 87e336d5508..bb107285567 100644 --- a/src/plugins/clangcodemodel/clangfollowsymbol.cpp +++ b/src/plugins/clangcodemodel/clangfollowsymbol.cpp @@ -155,9 +155,10 @@ static ::Utils::ProcessLinkCallback extendedCallback(::Utils::ProcessLinkCallbac // If globalFollowSymbol finds nothing follow to the declaration. return [original_callback = std::move(callback), result](const ::Utils::Link &link) { if (link.linkTextStart < 0 && result.isResultOnlyForFallBack) { - return original_callback(::Utils::Link(::Utils::FilePath::fromString(result.fileName), - result.startLine, - result.startColumn - 1)); + return original_callback(Utils::Link( + Utils::FilePath::fromString(result.fileName).cleanPath(), + result.startLine, + result.startColumn - 1)); } return original_callback(link); }; @@ -242,7 +243,7 @@ void ClangFollowSymbol::findLink(const CppEditor::CursorInEditor &data, symbolFinder, inNextSplit); } else { - callback(Link(Utils::FilePath::fromString(result.fileName), + callback(Link(Utils::FilePath::fromString(result.fileName).cleanPath(), result.startLine, result.startColumn - 1)); } diff --git a/src/plugins/texteditor/textdocument.cpp b/src/plugins/texteditor/textdocument.cpp index cee8e3cf314..9462b06b829 100644 --- a/src/plugins/texteditor/textdocument.cpp +++ b/src/plugins/texteditor/textdocument.cpp @@ -651,7 +651,7 @@ void TextDocument::setFilePath(const Utils::FilePath &newName) { if (newName == filePath()) return; - IDocument::setFilePath(newName.absoluteFilePath()); + IDocument::setFilePath(newName.absoluteFilePath().cleanPath()); } IDocument::ReloadBehavior TextDocument::reloadBehavior(ChangeTrigger state, ChangeType type) const From ebc753cf9bcf58918efe5282449966af3a37d132 Mon Sep 17 00:00:00 2001 From: Samuel Ghinet Date: Fri, 12 Nov 2021 16:54:00 +0200 Subject: [PATCH 26/33] Replace TextField with RealSpinBox for custom width and height Change-Id: I07f993033a4a0fa5168abd0636fc883bd3ccd7fe Reviewed-by: Mahmoud Badri Reviewed-by: Thomas Hartmann --- .../imports/NewProjectDialog/Details.qml | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/share/qtcreator/qmldesigner/newprojectdialog/imports/NewProjectDialog/Details.qml b/share/qtcreator/qmldesigner/newprojectdialog/imports/NewProjectDialog/Details.qml index c7ed3ec8d64..87a63dcefe8 100644 --- a/share/qtcreator/qmldesigner/newprojectdialog/imports/NewProjectDialog/Details.qml +++ b/share/qtcreator/qmldesigner/newprojectdialog/imports/NewProjectDialog/Details.qml @@ -202,8 +202,8 @@ Item { dialogBox.setScreenSizeIndex(index); var r = screenSizeModel.screenSizes(index); - widthTextField.text = r.width; - heightTextField.text = r.height; + widthField.realValue = r.width; + heightField.realValue = r.height; } Connections { @@ -252,19 +252,20 @@ Item { } // content items - SC.TextField { - id: widthTextField + SC.RealSpinBox { + id: widthField actionIndicatorVisible: false - translationIndicatorVisible: false - implicitWidth: 50 - color: DialogValues.textColor - selectByMouse: true - validator: IntValidator { bottom: 1; top: 100000; } + implicitWidth: 70 + labelColor: DialogValues.textColor + realFrom: 100 + realTo: 100000 + realValue: 100 + realStepSize: 10 font.pixelSize: DialogValues.defaultPixelSize - onTextChanged: { - var height = heightTextField.text ? parseInt(heightTextField.text) : 0 - var width = text ? parseInt(text) : 0 + onRealValueChanged: { + var height = heightField.realValue + var width = realValue if (width >= height) orientationButton.setHorizontal() @@ -276,22 +277,23 @@ Item { Binding { target: dialogBox property: "customWidth" - value: widthTextField.text + value: widthField.realValue } - SC.TextField { - id: heightTextField + SC.RealSpinBox { + id: heightField actionIndicatorVisible: false - translationIndicatorVisible: false - implicitWidth: 50 - color: DialogValues.textColor - selectByMouse: true - validator: IntValidator { bottom: 1; top: 100000; } + implicitWidth: 70 + labelColor: DialogValues.textColor + realFrom: 100 + realTo: 100000 + realValue: 100 + realStepSize: 10 font.pixelSize: DialogValues.defaultPixelSize - onTextChanged: { - var height = text ? parseInt(text) : 0 - var width = widthTextField.text ? parseInt(widthTextField.text) : 0 + onRealValueChanged: { + var height = realValue + var width = widthField.realValue if (width >= height) orientationButton.setHorizontal() @@ -303,7 +305,7 @@ Item { Binding { target: dialogBox property: "customHeight" - value: heightTextField.text + value: heightField.realValue } Item { Layout.fillWidth: true } @@ -348,9 +350,8 @@ Item { } onClicked: { - if (widthTextField.text && heightTextField.text) { - [widthTextField.text, heightTextField.text] = [heightTextField.text, widthTextField.text]; - + if (widthField.realValue && heightField.realValue) { + [widthField.realValue, heightField.realValue] = [heightField.realValue, widthField.realValue]; checked = !checked } } From 39738dee7737c539c94f0c7aa022126cd8e94f28 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 28 Sep 2021 15:23:42 +0200 Subject: [PATCH 27/33] QmlJS: Add error message for Component with multiple children Component is only allowed to have a single child element, that will be the root element of the component. If there is no child at all we create a warning. Having no child is temporarily required. Change-Id: I5c0d9d9cdf1be106b20ed4f1134a973d58126498 Reviewed-by: Qt CI Bot Reviewed-by: Miikka Heikkinen Reviewed-by: Thomas Hartmann --- src/libs/qmljs/qmljscheck.cpp | 27 ++++++++++++++++--- src/libs/qmljs/qmljscheck.h | 1 + src/libs/qmljs/qmljsstaticanalysismessage.cpp | 4 +++ src/libs/qmljs/qmljsstaticanalysismessage.h | 2 ++ 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index bd5d25834ed..1bfd9e9701d 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -794,8 +794,10 @@ bool Check::visit(UiObjectInitializer *) UiQualifiedId *qualifiedTypeId = qualifiedTypeNameId(parent()); if (qualifiedTypeId) { typeName = qualifiedTypeId->name.toString(); - if (typeName == "Component") + if (typeName == "Component") { m_idStack.push(StringSet()); + _componentChildCount = 0; + } } m_typeStack.push(typeName); @@ -806,10 +808,23 @@ bool Check::visit(UiObjectInitializer *) return true; } -void Check::endVisit(UiObjectInitializer *) +void Check::endVisit(UiObjectInitializer *uiObjectInitializer) { m_propertyStack.pop(); - m_typeStack.pop(); + + const QString type = m_typeStack.pop(); + + if (type == "Component" && _componentChildCount == 0) { + SourceLocation loc; + UiObjectDefinition *objectDefinition = cast(parent()); + if (objectDefinition) + loc = objectDefinition->qualifiedTypeNameId->identifierToken; + UiObjectBinding *objectBinding = cast(parent()); + if (objectBinding) + loc = objectBinding->qualifiedTypeNameId->identifierToken; + addMessage(WarnComponentRequiresChildren, loc); + } + UiObjectDefinition *objectDefinition = cast(parent()); if (objectDefinition && objectDefinition->qualifiedTypeNameId->name == QLatin1String("Component")) m_idStack.pop(); @@ -962,6 +977,12 @@ void Check::visitQmlObject(Node *ast, UiQualifiedId *typeId, addMessage(ErrUnsupportedRootTypeInQmlUi, locationFromRange(ast->firstSourceLocation(), ast->lastSourceLocation()), typeName); + if (!m_typeStack.isEmpty() && m_typeStack.last() == "Component") { + _componentChildCount++; + if (_componentChildCount > 1) + addMessage(ErrToManyComponentChildren, typeErrorLocation); + } + bool typeError = false; if (_importsOk) { const ObjectValue *prototype = _context->lookupType(_doc.data(), typeId); diff --git a/src/libs/qmljs/qmljscheck.h b/src/libs/qmljs/qmljscheck.h index 362c0cc0ac6..10019a9794e 100644 --- a/src/libs/qmljs/qmljscheck.h +++ b/src/libs/qmljs/qmljscheck.h @@ -158,6 +158,7 @@ private: bool _importsOk; bool _inStatementBinding; + int _componentChildCount = 0; const Imports *_imports; TranslationFunction lastTransLationfunction = noTranslationfunction; }; diff --git a/src/libs/qmljs/qmljsstaticanalysismessage.cpp b/src/libs/qmljs/qmljsstaticanalysismessage.cpp index 24bb70c1869..c65508bdfa5 100644 --- a/src/libs/qmljs/qmljsstaticanalysismessage.cpp +++ b/src/libs/qmljs/qmljsstaticanalysismessage.cpp @@ -251,6 +251,10 @@ StaticAnalysisMessages::StaticAnalysisMessages() tr("Type cannot be instantiated recursively (%1)."), 1); newMsg(WarnLogicalValueDoesNotDependOnValues, Warning, tr("Logical value does not depend on actual values")); + newMsg(ErrToManyComponentChildren, Error, + tr("Components are only allowed to have a single child element.")); + newMsg(WarnComponentRequiresChildren, Warning, + tr("Components require a child element.")); } } // anonymous namespace diff --git a/src/libs/qmljs/qmljsstaticanalysismessage.h b/src/libs/qmljs/qmljsstaticanalysismessage.h index e651533fd79..51a517d2352 100644 --- a/src/libs/qmljs/qmljsstaticanalysismessage.h +++ b/src/libs/qmljs/qmljsstaticanalysismessage.h @@ -132,6 +132,8 @@ enum Type { ErrInvalidArrayValueLength = 323, ErrHitMaximumRecursion = 324, WarnLogicalValueDoesNotDependOnValues = 325, + ErrToManyComponentChildren = 326, + WarnComponentRequiresChildren = 327, WarnDuplicateImport = 400 }; From e58b8aee0cdba3a9760e143c4f424af854e2043e Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Sun, 14 Nov 2021 19:20:45 +0100 Subject: [PATCH 28/33] GitHub Actions: Update ccache to v4.5 Change-Id: I566addec66ab374963cbcc0e0a85be1b45597d24 Reviewed-by: Eike Ziller --- .github/workflows/build_cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index 94fbb314343..1e03f53e27a 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -9,7 +9,7 @@ env: CMAKE_VERSION: 3.21.1 NINJA_VERSION: 1.10.2 BUILD_TYPE: Release - CCACHE_VERSION: 4.4 + CCACHE_VERSION: 4.5 QT_MIRRORS: download.qt.io;mirrors.ocf.berkeley.edu/qt;ftp.fau.de/qtproject;mirror.bit.edu.cn/qtproject jobs: From ffc30fedc91414e8b38ae269da11530a7da73df7 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 11 Nov 2021 16:06:20 +0100 Subject: [PATCH 29/33] Doc: Describe creating a PySide6 project with the wizard Task-number: QTCREATORBUG-26278 Change-Id: I643a10cff0a30f0de31851dc5d2077c11248f62e Reviewed-by: Cristian Maureira-Fredes --- .../qtcreator-python-wizard-app-window.png | Bin 16652 -> 11430 bytes .../images/qtcreator-python-wizard-qml.png | Bin 7996 -> 8401 bytes .../src/python/creator-python-project.qdocinc | 50 +++++++++--------- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/doc/qtcreator/images/qtcreator-python-wizard-app-window.png b/doc/qtcreator/images/qtcreator-python-wizard-app-window.png index 30e5230645bfbb54b8d0504175ce8bd5c1e269b8..b66da25628ced622ef84e369a4b8aaab5e4624f0 100644 GIT binary patch literal 11430 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гK^9q|GguU)+}H|x?qn?1iL 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 diff --git a/doc/qtcreator/images/qtcreator-python-wizard-qml.png b/doc/qtcreator/images/qtcreator-python-wizard-qml.png index d8d3aeb929f8129a0b7ca6e33ef37e1af132e0dc..8050ea055a711e5ec91f7236385d405e63a295f1 100644 GIT binary patch delta 7266 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 delta 6561 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 FCIHANeXRfh diff --git a/doc/qtcreator/src/python/creator-python-project.qdocinc b/doc/qtcreator/src/python/creator-python-project.qdocinc index 7543434e065..075d6b80962 100644 --- a/doc/qtcreator/src/python/creator-python-project.qdocinc +++ b/doc/qtcreator/src/python/creator-python-project.qdocinc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2020 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -29,8 +29,8 @@ \section2 Creating Widget-Based Qt for Python Applications \l {https://doc.qt.io/qtforpython/index.html}{Qt for Python} enables you - to use Qt 5 API in Python applications. You can use the PySide2 module to - gain access to individual Qt modules, such as \l {Qt Core}, \l {Qt GUI}, + to use Qt 6 API in Python applications. You can use the PySide6 modules + to gain access to individual Qt modules, such as \l {Qt Core}, \l {Qt GUI}, and \l {Qt Widgets}. The Qt for Python Application wizards generate a \c {.pyproject} file that @@ -46,7 +46,8 @@ The \uicontrol {Qt for Python - Window (UI file)} wizard enables you to create a Python project that contains the source file for a class. Specify - the class name, base class, and and source file for the class. + the PySide version, class name, base class, and and source file for the + class. \image qtcreator-python-wizard-app-window.png "Qt for Python wizard for creating a widget-based UI" @@ -55,21 +56,22 @@ Widgets module, and Qt UI tools: \badcode - import sys import os + from pathlib import Path + import sys - from PySide2.QtWidgets import QApplication, QWidget - from PySide2.QtCore import QFile - from PySide2.QtUiTools import QUiLoader + from PySide6.QtWidgets import QApplication, QWidget + from PySide6.QtCore import QFile + from PySide6.QtUiTools import QUiLoader \endcode The wizard also adds a main class with the specified name that inherits from the specified base class: \badcode - class MyWidget(QWidget): + class Widget(QWidget): def __init__(self): - super(MyWidget, self).__init__() + super(Widget, self).__init__() self.load_ui() ... \endcode @@ -79,12 +81,12 @@ \badcode def load_ui(self): - loader = QUiLoader() - path = os.path.join(os.path.dirname(__file__), "form.ui") - ui_file = QFile(path) - ui_file.open(QFile.ReadOnly) - loader.load(ui_file, self) - ui_file.close() + loader = QUiLoader() + path = os.fspath(Path(__file__).resolve().parent / "form.ui") + ui_file = QFile(path) + ui_file.open(QFile.ReadOnly) + loader.load(ui_file, self) + ui_file.close() \endcode Next, the wizard adds a main function, where it creates a @@ -100,8 +102,8 @@ Next, the wizard instantiates the \c MainWindow class and shows it: \badcode - window = MyWidget() - window.show() + widget = Widget() + widget.show() ... \endcode @@ -153,12 +155,12 @@ to QGuiApplication and QQmlApplicationEngine: \badcode - import sys import os + from pathlib import Path + import sys - from PySide2.QtGui import QGuiApplication - from PySide2.QtQml import QQmlApplicationEngine - + from PySide6.QtGui import QGuiApplication + from PySide6.QtQml import QQmlApplicationEngine \endcode The wizard also adds a main function, where it creates a QGuiApplication @@ -175,7 +177,7 @@ \badcode engine = QQmlApplicationEngine() - engine.load(os.path.join(os.path.dirname(__file__), "main.qml")) + engine.load(os.fspath(Path(__file__).resolve().parent / "main.qml")) \endcode Finally, the wizard adds code that checks whether the file was successfully @@ -190,7 +192,7 @@ \endcode Open the .qml file in the \uicontrol Edit mode to design a Qt Quick UI, or - use \QDS. + use \l{Qt Design Studio Manual}{\QDS}. //! [python qml project wizards] */ From 983ca3106d0b2eb429bad2b7eea71c0cb6a8429a Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Mon, 15 Nov 2021 09:48:47 +0100 Subject: [PATCH 30/33] McuSupport: avoid double-space strings in warnings Change-Id: Ia40412154662ce9a22ae569c9f8abf31b419cbce Reviewed-by: Alessandro Portale --- src/plugins/mcusupport/mcusupportoptions.cpp | 17 +++++++++-------- src/plugins/mcusupport/mcusupportoptions.h | 4 ++-- src/plugins/mcusupport/mcusupportsdk.cpp | 12 ++++++------ 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/plugins/mcusupport/mcusupportoptions.cpp b/src/plugins/mcusupport/mcusupportoptions.cpp index 75f829b5308..858b0126eb7 100644 --- a/src/plugins/mcusupport/mcusupportoptions.cpp +++ b/src/plugins/mcusupport/mcusupportoptions.cpp @@ -258,7 +258,7 @@ void McuPackage::setRelativePathModifier(const QString &path) m_relativePathModifier = path; } -void McuPackage::setVersions(const QVector &versions) +void McuPackage::setVersions(const QStringList &versions) { m_versions = versions; } @@ -312,13 +312,14 @@ void McuPackage::updateStatusUi() QString McuPackage::statusText() const { const QString displayPackagePath = m_path.toUserOutput(); - const QString displayVersions = QStringList(m_versions.toList()).join(" or "); - const QString displayRequiredPath = QString("%1 %2").arg( - FilePath::fromString(m_detectionPath).toUserOutput(), - displayVersions); - const QString displayDetectedPath = QString("%1 %2").arg( - FilePath::fromString(m_detectionPath).toUserOutput(), - m_detectedVersion); + const QString displayVersions = m_versions.join(" or "); + const QString outDetectionPath = FilePath::fromString(m_detectionPath).toUserOutput(); + const QString displayRequiredPath = m_versions.empty() ? + outDetectionPath : + QString("%1 %2").arg(outDetectionPath, displayVersions); + const QString displayDetectedPath = m_versions.empty() ? + outDetectionPath : + QString("%1 %2").arg(outDetectionPath, m_detectedVersion); QString response; switch (m_status) { diff --git a/src/plugins/mcusupport/mcusupportoptions.h b/src/plugins/mcusupport/mcusupportoptions.h index 95130fb0aba..807683167f2 100644 --- a/src/plugins/mcusupport/mcusupportoptions.h +++ b/src/plugins/mcusupport/mcusupportoptions.h @@ -88,7 +88,7 @@ public: void writeGeneralSettings() const; bool writeToSettings() const; void setRelativePathModifier(const QString &path); - void setVersions(const QVector &versions); + void setVersions(const QStringList &versions); bool automaticKitCreationEnabled() const; void setAutomaticKitCreationEnabled(const bool enabled); @@ -118,7 +118,7 @@ private: Utils::FilePath m_path; QString m_relativePathModifier; // relative path to m_path to be returned by path() QString m_detectedVersion; - QVector m_versions; + QStringList m_versions; QString m_downloadUrl; QString m_environmentVariableName; bool m_addToPath = false; diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index a9cdf7a976f..1823d634513 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -341,13 +341,13 @@ struct McuTargetDescription } platform; struct { QString id; - QVector versions; + QStringList versions; } toolchain; struct { QString name; QString defaultPath; QString envVar; - QVector versions; + QStringList versions; } boardSdk; struct { QString envVar; @@ -658,10 +658,10 @@ static McuTargetDescription parseDescriptionJsonCommon(const QString &qulVersion const QJsonObject freeRTOS = target.value("freeRTOS").toObject(); const QVariantList toolchainVersions = toolchain.value("versions").toArray().toVariantList(); - const auto toolchainVersionsVector = Utils::transform >( + const auto toolchainVersionsList = Utils::transform( toolchainVersions, [&](const QVariant &version) { return version.toString(); }); const QVariantList boardSdkVersions = boardSdk.value("versions").toArray().toVariantList(); - const auto boardSdkVersionsVector = Utils::transform >( + const auto boardSdkVersionsList = Utils::transform( boardSdkVersions, [&](const QVariant &version) { return version.toString(); }); return { @@ -670,13 +670,13 @@ static McuTargetDescription parseDescriptionJsonCommon(const QString &qulVersion {}, { toolchain.value("id").toString(), - toolchainVersionsVector, + toolchainVersionsList, }, { boardSdk.value("name").toString(), boardSdk.value("defaultPath").toString(), boardSdk.value("envVar").toString(), - boardSdkVersionsVector, + boardSdkVersionsList, }, { freeRTOS.value("envVar").toString(), From 87c8f4890e2aedf9bbf87cddb9b26473fc69d42b Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Wed, 10 Nov 2021 11:34:55 +0100 Subject: [PATCH 31/33] QmlDesigner: Update translation icons * Fix characters U+009c and U+00ad not working by skipping those Change-Id: I7c156184c1bd2ca6116d1bbdf8f0a61382340ce2 Reviewed-by: Thomas Hartmann Reviewed-by: Samuel Ghinet --- .../imports/StudioTheme/InternalConstants.qml | 31 +++++++++--------- .../imports/StudioTheme/icons.ttf | Bin 21896 -> 21764 bytes .../components/componentcore/theme.h | 3 +- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml index 8b2e6698bd9..9adc5e5f2c9 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml @@ -158,16 +158,15 @@ QtObject { readonly property string transparent: "\u0099" readonly property string triState: "\u009A" readonly property string triangleArcA: "\u009B" - readonly property string triangleArcB: "\u009C" - readonly property string triangleCornerA: "\u009D" - readonly property string triangleCornerB: "\u009E" - readonly property string unLinked: "\u009F" - readonly property string undo: "\u00A0" - readonly property string unpin: "\u00A1" - readonly property string upDownIcon: "\u00A2" - readonly property string upDownSquare2: "\u00A3" - readonly property string visibilityOffBroken: "\u00A4" // visibilityOff - readonly property string visibilityOff: "\u00A5" // visibilityOff2 + readonly property string triangleArcB: "\u009D" + readonly property string triangleCornerA: "\u009E" + readonly property string triangleCornerB: "\u009F" + readonly property string unLinked: "\u00A0" + readonly property string undo: "\u00A1" + readonly property string unpin: "\u00A2" + readonly property string upDownIcon: "\u00A3" + readonly property string upDownSquare2: "\u00A4" + readonly property string visibilityOff: "\u00A5" readonly property string visibilityOn: "\u00A6" readonly property string wildcard: "\u00A7" readonly property string wizardsAutomotive: "\u00A8" @@ -175,12 +174,12 @@ QtObject { readonly property string wizardsGeneric: "\u00AA" readonly property string wizardsMcuEmpty: "\u00AB" readonly property string wizardsMcuGraph: "\u00AC" - readonly property string wizardsMobile: "\u00AD" - readonly property string wizardsUnknown: "\u00AE" - readonly property string zoomAll: "\u00AF" - readonly property string zoomIn: "\u00B0" - readonly property string zoomOut: "\u00B1" - readonly property string zoomSelection: "\u00B2" + readonly property string wizardsMobile: "\u00AE" + readonly property string wizardsUnknown: "\u00AF" + readonly property string zoomAll: "\u00B0" + readonly property string zoomIn: "\u00B1" + readonly property string zoomOut: "\u00B2" + readonly property string zoomSelection: "\u00B3" readonly property font iconFont: Qt.font({ "family": controlIcons.name, diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf index 24141fcc8376a2d55af938a1c3c46f06e288f1b5..eb9426e8f457d9f690fae2f16d640720e780a0f7 100644 GIT binary patch delta 4881 zcmeBJ&DgSvv7UjEfq{XSp@D&!A;8To#CPiZUrr1RAukvh7-al|^^GDsQvDei7$X=M z7!s0m6AL_c*d;PBFuh=4U<^twD^XxjWU6FfV6kCfU|>m4EH3!}pMjZyA>;uA0|Q5T zPGwq-?$tF646Hc}430}OQWH}Y|DAo$z`$^afq}s+BO|pwk?ZUKi3|*kA`A=+DjB&Y z6{0RY77PrGI~W)k4RZ366E%}0b}=xpI503UYUL(Y6fitwxWvG~Xu-h1ppciCo9dJF zaybKoy8r_N)189+;u5MVTwlPRV`N~6d9_L>p5Nvx12;3sV+?nWv4)MsQCVUU}Afl1btnSlZ18wMG$K@1E&49sAb z3;0mz3891Khh3=Fdw)-Y`T|DS<@L6KoD!@B?f|3CWw@c#p_T87Cg%&WB~G`Dmx zFfjCWF)(z3Y@W!#&<3Iz7`nk!Q!j|>VPI&S%*diT`2aIVeLqM9g27?Tpaq6r3}+ab z7%do^7`HLLVG?07W6EIaU}j;KVK!q9V=iN!#Jq<20}Bs}9E%l84oery3YH@*cUW0i zby%md9%8-3`io78ErP9zZ4%olwtws*>|yLHICMCYIA(C1r&t{|>7t|qQ|T${MLxLvp>aj)aP!ehXbz*EL^fae3R4{sCi5k5A)D83@T4!(2z zdi+KFy9Ag7qy$U^N(34NrU)DnxFM(@s3#aB*e4_=6d=?hv`*-W&?jLX;S}K_;R(Xe zL`+2LM9zpRi57?+6H^k)6Xz1w6E6|JVIv_X5h8I(;*VsWWSisy$z77Sqy(h=q&lQ7 zNxhTilJ1jXkO`8tkliBtLM}<}ioA{dG6e<&7lj6eOAHK?6Id5B`b=hF^JQe39K`0! z%%y2Dc_CW>v!a3Iy_2VprjoW3*-z6%jKwvSXgi#-YG1qAYS+OP*I; zh>v};4u>qasFKKOc^wWuA#t9~0UYIw+`AO@7NM9>vDZ z{;!&ujbDiGZvnX6I=h^ef?J_F)B@%@b4bep+8rcyZ%TpzxccA@L_v-sG=nk7!~LC|9g0L z0+Y)GNCx=t!~A@+3~x1)iY$W{0|TR}q7s{^poo~UqLG;`qc)?c2%EB^lA5WYiJ7q? z`{aZCy5fI#hm@6tFm4Pk6PJi`_~-8s9qqv6$~Ku(K$-iXcvdIoma-4?jCVGtOdW=eJ?0hVu>IQbK=0fJmd`!wpdW@zfX2wQxjN*!R zEXGD+q9S}uW|MD=7-$PAhzhXVvU2bU2ubqhbR@EC+9_+eYJ}S<+i9{hhO!7tD`|+@ zhKs9Puuawx)lfIg4slmw+Z`sRn?d5k8k z4BX%dmuF;DWoNW!WMr-s`}0^#j9K>2b#Z1{G4Vf-nN~wZRK@;078hfd-CQgw#mHzq zxlc-+Nsn>zHYp2cMi!>YAEb2ZnOK-6FtM>RPhw)_WNBpt72Qk>;{U6e4>H|kkOij< zyip^r&M42w$gGAva!SfWGb*vkGKz>9vly9~ny4u&@iB^u zFf+wg&(BYsDrDmlcY{gVT*q7c?-MC)Yelnvdvopy6#KJs@dz( z6%=r)J_uL+NlJ88#nL+|0go7)=FtZXrntSy53=My8f3 z#qEre$_>n7Dt;zr0jgpw`b=Dcs)hlEY7V-p;({EkjFpPp85kKR|L@d7q{SJ<+5UA5o4jsHXy}x6lNlH$ zAJ)>SXJz1J5M~fzkYP|@U@#Xowq;Zn7u966Wz=M31@l-L6=fL(6$MQ}gqwtf2V)vz z{lCV4vzY!!Nc>~_H=nudPZ@LcpDX9Y#U&)5*qn)FHRIoYrb5QQdznQ3z5!LrYz%t; zr!wzi+RVVfz{bD_u``l^K~>P$RGU%M+*lAq2?~RGsz{bHei282e?c(&*8lq^A>qYn zGJpQRGmLM<#c!b6IC;8u2Ac+h1p@=?OEPdXNHVB07*1ZNBf%;v!pF!wd83ZRWL`aSW>J-< z$-i_|Sro)nL?t=Q zv-FV^f7BMXW%lWF=NbtH;Hu z|NY9i^j|atPh(=zbk&$_XQCvi2$GAAW-`&&@7L3tps&BV*hGMl-I&3W!Jff&a+j$Q zvmK+_uc@?>)Zp@7bREdiZD%mOTo{#}7A{47k9FPkqhh z9kZ#49_!?_mWn#OLQJ_(cRjgus$;c(BV&HFJ7+|O>$i<}3ET$G)5d|$S@c&pJ7r1J4BVimcgCDpMimsQB_HgSzXOk&BWY})!0amSzOFe zOoW|}RaK6~$d1`uk40IDk7aU}tztc!tV3{ewT)|Ea*B!o6FWPE|4&;)KRm2Br#L*+ zP*_YSGPKxCFD}T>}(OGFE1$3cBXL z%7RSnqU`K4)@CLOKSVTav=tO|thGc$RqeDDMb$Ko6lQ_U2rTM1p3H2w#oe00nZc7G zkRg&Gks+I*l%bxXpJ4$51EU-x8@mX*2p=Om8#^DfvXZ(YsE}1xR#I2eV^mkOV=}j6 zF$Yy#;&N=_a!ix|+C_QrF~XW_%*jH$%q&bST&(P2%-noJoGQZqCbP*2s|edNGBdGr zF*C7q^RRO380n}nyXc9}*5sBD7Zc&*W#mzj`P({qhP{Wqn7X*3GSep|BgRl}19e7b zMkY2+CT1=UUM^N;0bylk4iO#>Q4s-Vc3w_)Rz`JUE@n<94lXWk4h}{pPR^N=#T`6V z#nr|C#io+2{J+cmf~k^$pFx2^g+T)xU49Hf3=E8u9qq+HCEXkcA7(Li@yV|o zJekGS#V4COYAAyGUH|VhzhJ6n5C9eS$jvfQK@mR2$u*8LZi<$F-YOd!DS=#Tq@?I+ z!nn}H)5G*%ypok7Q?a4Szj%-=<3eR41_pK%ml!bEfRjxKk~=;*sxjFyPL_0113Smj zNtT(Ni+yr}lTtm*Ka8`5xcig82%w0)qg9JcBlaC4&>VVQnPFE(mT^>M?>F)51n(<|b;|jNrDDm@zAutE|K( zDk7!|W`i18q9S6G|2awXi>rzmDE0G+GK%n(a|&=yR&zEI6jv8xc2G9_Gh3L4SD2HJ zlV@_8v$2vigFLugatAdo#6$%}*t8j;&37SCV@;27@=j-UP|!bg7PDqyXJz9mJe0`7 zF2>km?BQwjmk&fTyBR9~b1_PD^Zh%>#m2(UI$6&}UKSQM3@j)i ztis@i6t)d64&XpN&LFml>eRM?f5gL^>8&QQW`R->DIJ*aiE zZgN=IWDw!UXu&L$zTv`#^yq&#wHYXXXXJ{8G;Pr3|b5z zubLW*Dx0c{8jC91G8v01i<*N4n2j((z{rl#L=TiiCQG^V2{&hKNKfC8(Vg?}rVgWe z49H27E!{Qi{d&`F|2l%&N+9=5VPIh3V^{|np%ox9kjIe6kjaq8kUlxiLyX-cH7_qS zFMV=@#{p(T2BXQ2o_0)zMw1&ne=<(lT;-*~xOs{9IgZJ#A@>y-|NjS-84#D=YR?A` KuOJ43Tq6My6GD3c delta 5180 zcmZo!#n`c$v7UjEfq{XSp@D&!A;8To#CN)BOECjOXbuAdgN%Q$zENaHsviRbV*~>O zLqc+HVu4qUiv|M&(;Ef`MyKSm5(NfDrb-3|76S$b2A1^1;)4JG8JHOuLQ@zR7&y{% zD$^GB^2swWuqH4tI0zBegz}>+AoC3=E7S3=9k^8M!4D zq6s|43=E7r7#J9ha`KZC0tN=A7X|snB{>4!$_xx%5ey96oM6u}GBCuu>}`(cxB1Gz&HRFafq~)fy1w%e znyK&nBt~22sSL9wJ1|BwZrVJDQJ;~OpFxg6X7V{ES#t)EZ@^dvY#0NB4FfZnCBwkN zpaAkU0}GhH>HmKQ1_s6d|NlQ?V4Q5gyjp8gOKT?s1H*)F28J$>ZIc-o+Cek}Ll2m0 z?gLT13=B<^1z8j)E3oj?PXviTFgRQpw7}4d;S?hSqZwlr<2uGCOgv0_OmR$AOy8LK zm^GL^m@}ALnCCIyV*bX$!J@(v#!|vEiDezjF_w3%VyqpkTUd{Hf&T{o2LUbtFM%+DEP+`9 z>jb_DvIrUprUm zO@76$!XakOC@LamWHwonLqS_d{SujgpM@Rnj zWJY$S&HWr9j9fwtVhmCY45~(AlizVlWpeWU`N>$x$;Zd}ZyVD}zF+^C8PEMoWSoD4 zkLzDGGaJ7U-`@zvFfKkO*MBUGfAs$)F);rB^ZzvS8>S`(ZUzQbK1Ov$c1AHHb4GP0 z4h{*9f6nTR`$Rp(8272OaWnET)kyzsk(XntmEKFHyw&mhDg${@iY&A`B@D5xkb zs3^#&Y-$W*v$6}anhT1nD>92KGI#yC!mJbbM}jHr@Zo>|86Ex|U}Ee4yRZN1Bu1qP z6aL*}I`roXbJrgU<`;ig9sc)^(P7R6M#Z`P{~n&5z~nMvvo~)Gla?|=04O7xnW!l% zDzS+QiijC28kyNLny4wU$uf$tDJv?enF^Yi8M99Q%&#lW#mC3>cXvoxSqS6C;4)qj zz9@%({tnU64ovow%>|SNSMmw-l?DGZ1F857QoK1;Ac@7sfx(L*jDdksNljf@OjwT7 zkljR&QC*KwiH)6)NmSjyj@4YqT$ztiSxL>*#LU=8OkB~9(bz~#RD?}!GMlJ@qKv+< zEh`6)fRH3_PDdhlps8JWxSeSrH)AMQpqXuWnAGG%Q4Lw&4Y4fT5^5&)E`BPE+P20{ zVRm+5PR7Pg;kLHnlQ)QpY(6TwicwOT!I;6Bfq@m~HAN#aut(V@cZxePIYduBC$7m9 zux?Q zDaFWWHTj;DI-}ZTc4-SHCf3PL(mM65%oCW{SeYj=v2wDsGBPqSFfoY#uV%i;bdy1u zL7%wrXE9MzVrOI%0i_~lHBiuEkB1KmdIEos2q@?YFxfCcqC){GK0bpYi}930RIsiB zNS&^N0F%w;&(b=K^#u%GJABEnfZs|?US8~ynEd5f zN2iz=r_HBj^%#w%Au(oRW(j!{irk8$!O1vO^d zd21%`Rgh=0b)0-(K>?RaF-3?O=G4Qt8#f=Lz}c;fbqX2x=$tfQpQWC}8T zhN2;}Qi}QHvx-J?I)=R`dcFAdOs#m#GA3ncD5aamFi9~vGxi*!^0Bga*0Qp*vsSuiGP7iCzOQnGMN$ovj?ER7_?SgSc87@Wz4Les!66<)854|jI%H{s&nby$16~~bY&@jcS@>{n%1<*C0g+k zf(){t(2!#U8?Vl&&ZuT;V#g>n`L&j`X8H!fb(6!wCW8oOq4W(GHl#=YyQ$5nk=>iI zA^opo*yMFnLPMvln>^WATcaM7iMbhg7(^H(7#Pe&jZKY36-|vrjZIk@6=fL(6$MQ} zgqwr`(^GMYzwiFdXYTq_#vJ|U$}@d1FlS;}&G@&UsgUvSUM7*hZx|TZ81(*6W!}ZK z8Qf6dfSIkzY;3A*YAmR1YHX^k3Nu?5RFHoW*8_upK`_JD|NACk#CTa!{2+?qlZ|yU z*wh)!85me6CmN(p=G2vwRySv!A;kOVDX*|FFS9hS5U3@=!l3rwf%(wnJGv5+FBob} z{-rO%q}w-nrmm`xqaKrno}-?gqu#$a5PI@jL*>aldOVZ#N+&a@{srRl>hsSap}Kk2%g5o9AP{8g^7}|3`oku zgUM1~zh6&pg1$Zj!)9qy0Y-Ks1`7r|2A9c3W=2eACX>_6yqNg-CT}%!syE3sWi%J7 zk81lT5>qFd+4fPaKB@^6T4|E-zpnB^HDsezwCm_d?3m4QK6QBaXlQB)CB%`%!Q zin5w2imIxci<^rxvx~E86E%aXLS7g-&8_2K}=Lj zOAL%a6tmnPS>~;oe;zWu`_JI#_t($wm6@n)y!gM5U?mWRlM~G)m`xd6C)b#p^RO|3 z%TiM{WhJ)Bhs;g6tJgE?RIg{`;ICOfnbpETVEw>o~&u5$SNVHCcrv5&`OTg)K5i}d2*T6ntFCI4n}bX_A0SI zQGX)E`WWpQTeBJOF*At$iDF(R*7xtwzp5<8dkl;W{0xT7cbGI81Q-|?&D4~Y*f|;1 z*hEFdL5&~gE9@Lx>@5Gx{+Y3hurgj{;bURq<`8E2XU2F6B*Xeon}vmel|k4&78){ z;$l%%AZlZAtcXEac#*kVptGvJRe%ViExQOihkmf^GNnygIu^c4LX3>;BJ7-80s^8U z5~5;UOW@+yKE)mGVKDcf0@zPE#o?ib!eTm+p~X4HVc~j=dnZfUN^5Yd`q&!in)@mXGO>%Y zbE*2;>i-bYu+dgf(6QDM5mmL*R#ecnRi8gO-gb{0C;@<+6wDCKkjjwHP|48AFcaKB zVPh9z7Xj5T?4U|VT@g$wE2%5#F{-PXncFcNgX(s1IZ*vGIms@{5#F|CP8Q;2W?^FC zVr36wlM_}E{x=y+*)lRSv2!uANOSSon_4rv=!wtPo;F6x|Kd~(jTjg>7#RNFWq!d_$-vJb&!Ehp&S1mf#^B2k2&(7ALn?V&O0~>?Le+%X-%nA(r3^EKF3}y`W4DMiS*^vW5*vQNr(%hV! z>SWHVWMH7w&nL<#!dK2GGI_O=5ucF~vxBnXpV`7Zyu!kglixWRD@ZcPGN>?^Ft~t? z1BIzJBeW+YWMpQdHrd%(-4C87nEW{f__?-m@$++q@NsgovvCz3N@QUdV{9?@@HG0% z2O^o>43+=#!4tq`0j__~KpGgOx%vJb#*M}>%67Y9%{ zhPYUQ;&y_Ih6*zS-+y=J>&!w7pw^EmNH1pl=dOz}bNU9s$s(?X%o!WfCwsc8sDWCC z$XYeAYn|w-4%WKIRo)u4oy5p#S5aYCUe18(1V!xTNV>^`&9QNl4n{TSw4EKOeBt}= z$b6ldhk=!Wn?aC4oI!&DG|ppcEUIj(E@~{QY|CUUsw`>_7GN?$^`n{4Wp=)TU3sNyz&?8`Sj^{$gshjz{G#Hr}CvP_MKF7f?RF+wsnUtB6SyJhrmS!|5 d Date: Fri, 12 Nov 2021 14:09:25 +0100 Subject: [PATCH 32/33] Fix a crash on shutdown inside CallgrindTool This is a quick fix for 6.0 branch. Fixes: QTCREATORBUG-26563 Change-Id: Ida0f99a90c2e8515a2ea2b89de7a666f3067f908 Reviewed-by: Eike Ziller --- src/plugins/valgrind/callgrindtool.cpp | 31 ++++++++++++++++---------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp index 2973caa0932..14a8eae45b0 100644 --- a/src/plugins/valgrind/callgrindtool.cpp +++ b/src/plugins/valgrind/callgrindtool.cpp @@ -189,14 +189,14 @@ public: // Navigation QAction *m_goBack = nullptr; QAction *m_goNext = nullptr; - QLineEdit *m_searchFilter = nullptr; + QPointer m_searchFilter = nullptr; // Cost formatting QAction *m_filterProjectCosts = nullptr; QAction *m_costAbsolute = nullptr; QAction *m_costRelative = nullptr; QAction *m_costRelativeToParent = nullptr; - QComboBox *m_eventCombo = nullptr; + QPointer m_eventCombo; QTimer m_updateTimer; @@ -546,8 +546,10 @@ void CallgrindToolPrivate::setBusyCursor(bool busy) void CallgrindToolPrivate::selectFunction(const Function *func) { if (!func) { - m_flatView->clearSelection(); - m_visualization->setFunction(nullptr); + if (m_flatView) + m_flatView->clearSelection(); + if (m_visualization) + m_visualization->setFunction(nullptr); m_callersModel.clear(); m_calleesModel.clear(); return; @@ -555,15 +557,18 @@ void CallgrindToolPrivate::selectFunction(const Function *func) const QModelIndex index = m_dataModel.indexForObject(func); const QModelIndex proxyIndex = m_proxyModel.mapFromSource(index); - m_flatView->selectionModel()->clearSelection(); - m_flatView->selectionModel()->setCurrentIndex(proxyIndex, - QItemSelectionModel::ClearAndSelect | - QItemSelectionModel::Rows); - m_flatView->scrollTo(proxyIndex); + if (m_flatView) { + m_flatView->selectionModel()->clearSelection(); + m_flatView->selectionModel()->setCurrentIndex(proxyIndex, + QItemSelectionModel::ClearAndSelect | + QItemSelectionModel::Rows); + m_flatView->scrollTo(proxyIndex); + } m_callersModel.setCalls(func->incomingCalls(), func); m_calleesModel.setCalls(func->outgoingCalls(), func); - m_visualization->setFunction(func); + if (m_visualization) + m_visualization->setFunction(func); const Function *item = m_stackBrowser.current(); if (!item || item != func) @@ -688,7 +693,8 @@ void CallgrindToolPrivate::visualisationFunctionSelected(const Function *functio void CallgrindToolPrivate::setParseData(ParseData *data) { // we have new parse data, invalidate filters in the proxy model - m_visualization->setFunction(nullptr); + if (m_visualization) + m_visualization->setFunction(nullptr); // invalidate parse data in the data model delete m_dataModel.parseData(); @@ -704,7 +710,8 @@ void CallgrindToolPrivate::setParseData(ParseData *data) m_calleesModel.setParseData(data); m_callersModel.setParseData(data); - updateEventCombo(); + if (m_eventCombo) + updateEventCombo(); // clear history for new data m_stackBrowser.clear(); From cb2291bb57b080b4315f527ea4d5944ab1c2b25a Mon Sep 17 00:00:00 2001 From: Samuel Ghinet Date: Mon, 15 Nov 2021 12:36:51 +0200 Subject: [PATCH 33/33] Update style images Change-Id: I456aa22ea3ab7f067daed93077a9a6994f7aabb3 Reviewed-by: Mahmoud Badri Reviewed-by: Alessandro Portale --- .../newprojectdialog/image/style-basic.png | Bin 10544 -> 3891 bytes .../newprojectdialog/image/style-basic@2x.png | Bin 0 -> 9643 bytes .../newprojectdialog/image/style-default.png | Bin 4603 -> 1617 bytes .../image/style-default@2x.png | Bin 0 -> 4165 bytes .../newprojectdialog/image/style-error.png | Bin 1310 -> 892 bytes .../newprojectdialog/image/style-error@2x.png | Bin 0 -> 1947 bytes .../newprojectdialog/image/style-fusion.png | Bin 9161 -> 2436 bytes .../image/style-fusion@2x.png | Bin 0 -> 8903 bytes .../newprojectdialog/image/style-imagine.png | Bin 10792 -> 3598 bytes .../image/style-imagine@2x.png | Bin 0 -> 8809 bytes .../newprojectdialog/image/style-macOs@2x.png | Bin 0 -> 4165 bytes .../newprojectdialog/image/style-macos.png | Bin 4600 -> 1617 bytes .../image/style-material_dark.png | Bin 9703 -> 4033 bytes .../image/style-material_dark@2x.png | Bin 0 -> 10919 bytes .../image/style-material_light.png | Bin 10683 -> 3780 bytes .../image/style-material_light@2x.png | Bin 0 -> 9504 bytes .../image/style-universal_dark.png | Bin 9786 -> 3887 bytes .../image/style-universal_dark@2x.png | Bin 0 -> 9579 bytes .../image/style-universal_light.png | Bin 10742 -> 2486 bytes .../image/style-universal_light@2x.png | Bin 0 -> 9157 bytes .../image/style-universal_system.png | Bin 9786 -> 3395 bytes .../image/style-universal_system@2x.png | Bin 0 -> 8527 bytes 22 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-basic@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-default@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-error@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-fusion@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-imagine@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-macOs@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-material_dark@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-material_light@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_dark@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_light@2x.png create mode 100644 share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_system@2x.png diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-basic.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-basic.png index 53d03e476b4068441abae0a9422ae041e399d43c..389a4eab87371b660218d76f0795fbd464aebc83 100644 GIT binary patch literal 3891 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 q1q!xK&xR>+o$_vty2!S@v=F)Jnl8W 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 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-default@2x.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-default@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..09ea1ce94d5dcb8b0bbfc199aca2fc244567fe92 GIT binary patch literal 4165 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 aulf^C%dGQiPlJXB7(8A5T-G@yGywntVQK~d literal 0 HcmV?d00001 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-error.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-error.png index aeb03a574ed4dae6ea2122bb598c7806d20db008..01470cfbf5a7ead52c74e48a220643c7e0266083 100644 GIT binary patch literal 892 zcmeAS@N?(olHy`uVBq!ia0y~yU^v0Rz{tkIz`(%3x~$cRfq~iC)5S5Q;?~>Sfm;_l z@H9N!)6c-7kie3_z$n_lz!KuXs<41bprOHIH-B~6_ib}4GZZB+eLjA$+-PzO!=iX0 zCKe6>1&0O(MoJhxNs^O&J}P>P2~K=5p;SOn(DR^T@vp}d6irgjellM-QE~g1^Aoon zn9%*F-}A83wSUte|81GWwn^pY)Crp%p55>97b+4u@#8_o{*<{ao4)q4PFu5Mqn zv{B*ddC4X5rV>kP)*bV0c1+v9c7^7Wq76Y79#3tTw=_S=Z#*&GVOrPXZnm8v3J+I> z{Sxw6oA&nS;-#ERRy#h6m~bof{!i@=`z6<0q)fiWPN;Hfi+=(~atGZ!>A5dk z!{cf9>BK-@R!yt6%Ftfco%YtdY;SZ;adF5T1D?reCxX}$r4=@z8@ biS;9Pt)t#vEaq!+LD|aF)z4*}Q$iB}Rt08W literal 1310 zcmeAS@N?(olHy`uVBq!ia0y~yU|7t+z;J_unSp^}L-^ti3=E7*0(?ST4}t*$0|O%? zBNG!7Gcz*_3kxeND;padJ3BiE2L~r7CpR}Y4-XG7FE2kozo4L?kdTnDu&{`Th^VNj zxVX54goKool(e+8jEsz|tgM`zoPvUaqN1X*va*VbimIxrnwpxHmX@}*wvLXDuCA`W zzP^EhfuW(Hk&%(Hv9XDXiK(fng@uKsrKPpCwVj=vgM)*kqob3Ple4q4o12@vySs;n zho`5fkB^V9udlzqe_&u>P*6}vNJwaCXhcLrWMpJiR8(|ybWBW4Y;0^|Vq#KKQgU)~ zYHDg)T3SX%Ms{{~etv#oVPR2GQE_o`X=!OiMMY(0WmQ#Gb#--peSKqNV^dR8b8~Y` zOG{f@TW4oyS65eecXv-uPj7E;e}Dgk2@@txoH%LHq{)*fPnj}h`t<2DX3Us5bLQ;X zv**m2Gk5OX`Sa&5Sg>H>!i9?$FJ7`_$swQBY1)oa$QS-W=a zx^?R|Y}l}IF1vhZu{TIuTbtax#U42@xQZh^?JpC_S~9H@h&VkcihraQVKnAEL~Me zNhvVmaoCskfFiMgUhQ7{&P#2-V)yIaR%1(Z=;d#|?b4~S#IW}9^Z+OA3CEu7yzlZd z(B<)THTI2mtr>qp9xFUMtF@qT!xV%?$ zR^ct%U9L%8X>+vAj&v-Nygyy?(MDgB$3-^;w6BYt*->>tp!=EVnHd&29Xpk|(tNf` zEc&7~!?5``@2)Dz}fBnH$bJX8bK>?L|rBb34o*=N>h#v!2p= zS@rNS?R64@;SP^8`iy&cwH6faJ>bk4_J z$0L~2bG}IQFOt0fw4!JEg`T-`i%Oa#gNM?XhWnf)^^+xo zr^Y3nlbN=$zTIe>)|A5J_0xA$bDplqZa1zopr04)tUg#Z8m diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-error@2x.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-error@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..63f5462554917a512b27a2b54313b251ff0b54fc GIT binary patch literal 1947 zcmeAS@N?(olHy`uVBq!ia0y~yV4T3fz{JDBz`(%pZ^qKC3=Hf^o-U3d6}R5r4V<{x zOQa$3o}d7uU;_h>0t2I<03%070|+@dc;CLccPoGSyL&g^tz_~uzn`D5>e=dLzXhCj zEeR<7$Lhes($T;mD4@W^UX>2Z5v%4%-D6m*FmYU z`V%3%3v$?f`YFYY-o>GrSNJz7L`+Z`_50}Tk@c2>uDy&Nwqs~r8hGCeE)LQd%hS22fOmuyOhN_ zChX^L-alJ-!rtoG|MwTiHy*iZS0;I>vF6o3*5iET8yjk}ew|AG&40PE=GM9O@l`&Y z9y8w7?3b1GxK{S>qB7&n%}=xY-pc1POtPN)zxZGkb7%3MTlp-ElZyA;`rgEwkZ=E|uYPWEv)BvW24%h~v(;*Et6(@bNVXDljbeti7A>^GOnB=_%L4vTu^ zf6uQt&ok+{p_;-(n_r?Q{2o70J)XSXKi8jslHt7nZ>BZ4e3B5F;33zZqma&0`K(gL zpmC0H%E`wTNlcci9_xdw-rG=!v1a!bF=k7L`fv`F~+6tlsP66a`kf?<^{lj!%J^ z7?V`7g*WJd;KPQiHXe=c9n4{`6;$QEv!uL^i_K+Uv(3?Hemi#&`|8>WLj4Nt_m(+& z*?g-tJYebAWfRAF;@H~hQv7?~Ha)4e*E-?8O`SpW(+nX2x#vuhyS@1L^fvjFR-3Q~ zJrc}j$P|8ZE!4Wfgfpn9`TLCZ3+Hn$Ig#w?VD|22gS)qas`&;cK83T5TOMBI^SH=+ zRFSc>rWZ&1+#S>Xw1`6H&g<$W+?3MzWA z_W0tY2`fGOs~q!kt3tRpnY;?r_BhD6TCd;B@miYgD;7~+Z!7qoT-)KEtI&VVR*U)My$h?quHaUwc3yvd zvEGE0wf(Cc-l>0B!TF?=t-s5mD1Ybmw}FBl&$e?c-(~xXap%^rHZfln&QGqm!Zc}T zv!NuOtieEH6}g{8=TvOBAS<^0B& zSszz0Jh}Df?dn|)dCxy_@PD#7S`o+ZajbK@ZvP8~&ymOatsL&1erdC)Y0taM7v^XF z>EQXauYc$KYula+@}iqM&d2Pd#-WCV5_gpF>9v6K$ zRBlY;Q@JI|ed1faoQKAQbj1@KDp$mkg6{7U^w5}4&aNWj@ltekHN(v<`$V2_rktJ@ z)St&Hl%e%UgOSsuWloZwjZlgX+ssB6tIuXX{%#FW2(~=I?XiOOlDa};+o7=iMxrb! zZ*vtFI_%r%aLzzXj_uQ2RwFfqg<>a|RIV`XQ~|MgLF(5#=uDX0P?PLof0oITC8g*H z7we~AZO11xsy#K z_a%JoXHmJpnhgpJGjYBCYA*+~H6I?ns`Pa*yX(*u$85bnm}yh$d#3)^o0hSp+>Tbe zDgCRoZt3T3;wP-nFP5KPZdGdCnDSQs`fu&I`)VEj87=sJxFULs*$yl&4lsMk cVr#6I=ep9^HZ@=PIjGk4boFyt=akR{0F49tTL1t6 literal 0 HcmV?d00001 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-fusion.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-fusion.png index 882256b30d48596d171bc48eb14b33d135a312d0..745828c1f7eb942d384e0f09a3c3aa45a668c21f 100644 GIT binary patch literal 2436 zcmeAS@N?(olHy`uVBq!ia0y~yU^v0Rz{tkI%)r1PF06Hjfq`jCfKQ04n3$NjxVVIb zgruaTl$4Z=jEtK_O$HylmBqSy#CM6{$6*MF#C#R&Oq^72(rKP2(r)OkjWM*b&Wo2b&XXoVPlq)=NA+d6c!d16%`d17nhWjl$Ms3m6es3mseC&R9042RaI3r_f=O{*VNS1*4Eb5 z)z#P6H#9UfHa0djH8nRkx3sjhwzjslwY9gmcXV`gc6N4kb#-@l_w@Ai_V)Jm_4W7n zPna-a!qnLlCr+F+Y0~7$lc!9XGIi?IY15`npFVxYj2ScLESx!W=B!z>X3w5IXU?3t zbLY;RH*fy@`3n{-Sh#TEqD6}qFJ8Q4$&#f@mo8hjZ29u#D^{#nxpL*IRjXF7UcF|` znzd`!u3f)z-MV$_*RS8OVZ+9a8#is*w0ZO9EnBv1-MV$#wr$(DZ{M+F$IhKQckSA> zd-v`=d-m+zyLaEdef#(CKXBl{!Gi}69XfRQ@ZlpzjvPID^w_au$B!RBapJ_ulP6D| zI(7Q==`&}}oIQK?+_`h-&!4|=;ljm>7cX79bouh-D_5>uzkdD3jT<*_-n@0|*6rK3 z@7%d__wL<$_wL=lfB(UQ2M-@UeDvtiCatGh;@YO*$kEO&A}AQ>t(ecJ$0#T=`GhRvYx~Q-9I|bRR+=d@ zYCl#=+?am%Z{ztl``+*V{dDdP83k=+vjzqx4h1Ojsb2A8&A&JE_Eqd#z%PjkJjsxel1?2GUxV@OrP(bcbvslx*BD^d|%U*DY*2F+L7=Bnom1f z7U_iV7vXZ(J<8WUM>rL)2?z>M7~d2@z=NG{O$Ak?2NwHtM1)Af$yos#nMgk zM!|elYmabbUhmgz-}?9N-F`Mte&$L)tI}O%PbDq}F$BIzR4Fq&_RK=EdX3Dx84@zV zl5D-(ul=~3{>7m~$z18voXok?j@?*2bKTiLS5K8K?fSXYd1=tbRoj!(*b%-=$(+Ew zapTWrZv1yAWIS$a{Cn&g_bNr#vg~iJYd31oYki@%#l?O_y~)C>6YqVTXqKgLa+~9( zNes6ar*Q=HNxhm`cfo9BPW8&Vb#G=YV4JkDOMUw8wN{yJ8S{GmzWYv$lU1C&SKrNT z*^0(1d$NE3e7@~<)>(mA`HRK^XQ!_MU*Q%^i z48OmlX!8%hi@Ybl9ow_JUGD;S=MI^;sugNc1$Xx;nrt|j>E$+z=)?R8>ymF79TY4#?AxUU#0Z# z{rcY!?Xxvy;)FkEV%Lez`IEHWduQV(R{xvZzGQWtKE%0A$z@vAtMy&UGwbCv1D2%f z*PObwG~C-vf6mv_)>&_3tG23?JoI=eStlN>o2Z&%cva}k8)$K~DdWV&+KbEjmuC5@ zt30Ed+n%3|OAV)b@3~%^lxP>5cH*~ulvMlLXiJ&KqZ8Ioll*i%e_C3% zvasWoQ0~hoZk_ulIsf?MLgAP4Tm6=B2IYIt!&OX}D&OZDfH(l&QtY462yju5p&pE|M=Kd9U?DYAjOO^H2`F}LM zXX$inTF($Ld(JWcufXL?^~HbIho`unH4bMka^dJ=k2yZ+QZK{xoko?K6$KveBANRq5fq{X+)78&qol`;+ E0Biwf*#H0l literal 9161 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 WuQxyOiDzJ7VDNPHb6Mw<&;$Ti!{9Ig literal 10792 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 RISdR844$rjF6*2UngDj!eq{gv literal 0 HcmV?d00001 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-macOs@2x.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-macOs@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..09ea1ce94d5dcb8b0bbfc199aca2fc244567fe92 GIT binary patch literal 4165 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 aulf^C%dGQiPlJXB7(8A5T-G@yGywntVQK~d literal 0 HcmV?d00001 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-macos.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-macos.png index 323f4d51b16030552ac53a5aaf28b04aef1a9c02..6c50e4e1fa92bf90ac3506e9bd29067a579934f8 100644 GIT binary patch literal 1617 zcmeAS@N?(olHy`uVBq!ia0y~yU^v0Rz{tkIz`(%3x~$cRfq_lJ)5S5Q;?~={fBl8a zW!MY;PyQ`cRg8a_s@@pLeq-RhQHF2(w3LG zfAOS*iv51Y_4%*)U+>=jrpl!x?dK}@)jz9Qr}OB#zKNYETC(BXiQH9hmZ&dZv9@Td z<@)7ye<#M~IDUIEp?P-qyLXRy)XRi&bHu!Ffef_fQgxnJUe8r$uw|;oqQ`dbL~x4_KPp> zI8HY?C(|PBnbzRJd+CC=P*L+ivdd&2&FSdLd^kZU z@X*1QX59{7zdco=bJpH0?U3kpGyN-@wR}>?G1YAfVe9q9yso`jrNh1`+3Lu8EiWIw z&K}2qt8V_STOKbpEyHEf;cpiOuPwX3J-f`^BIS4!2Q=KkfrpPcVeRC%EN=hLuNs#p z{FcA-`)O4E>Ez38^VCi+oPVP=BzFCt!WV(14-Y@RE4p;MdHF^z!LZOZI}&%r@13@- zJX|E$S9|pYZTA;9j+#Dg&*q(9@_zS*r6CFB8=LKt<%)kXFRxW4KbKpVb-eFUQS$3!leX74W*f{c z%q%WkE}W#RTf3qCnxysq2d8*zICC|O>#lwJK6%c(EomyOg-c6&a`fM8XWh=J3HtDO zo63n!IyQ%&x0h?_A@cbvyff-PW@eUqAcGzV5mlCso9_x1lSA zeN+AWi)xR%o|SIpzb51NUAo}VrCX}r%`tZSbDzH5bNYJN-`PW8Rw4obvIHM%QPf(gHza~#}k69SL>^Wud7;gtewYs-n+bPtKUD4e81xs?C$&9 zH&}o3_G|yFr;6{((b)Yv(cSUv*F)Eg+7v^db-nugHhRU1XRq9sT|VQqZ(p*}eJ#zG zKexPjvGJRh^WFVx^IHFNO}ck>olO6(+&9iYUgXG%KAF+(Q9SkSgKF-`l<$r~LFZ@a zY&w~A-pVEB$zh|%#S;_@3oGmMb&ty&Irc|l5?D710VM2ywiVqv!m**B0B_&xI319s$uDyA}$LGeA zC(c|s5K(l$4Z=jEteI>6_u5hRaI5h)zvjMHMO<1b#-<1_4N%64ULVBO-)VB&CM+> zEv>DsZEbDs?d=^M9i5$>U0q$>-QB&ty?uRs{r&wDCQO((apI&&lO|7|JY~w1sZ*y; zn>KCw^yxEZ%$PZI=B!z>X3w5IXU?3tbLY;RH*fy@`3n{-Sh#TEqD6}qFJ8Q4$&#f@ zmo8hjY{iNdD_5>uwQAMs)vMR6S+jQS+I8#JtzW->!-fqTH*VatY18J-o40J)vUTg$ zZQHhO-@bjvjvYI9?%cI&*Y4fB_w3oTckkYP`}XbMzyH920|yTtJap*L;lqcI9656I z=+R@xjvYUK{KSb9Cr_R{b?VgV)2GjzIdk^x*>mU4oj-s6!i5VLFJ8QK>C)xPm#CC@-W zpTB(h^7ZT2@87@w{Q2|OuV24^|Nism&;S4b)7K|%VqjnpDhcune){z3CsZI7xOgW6 z1K(Ot7srr_TW{~C&k21xm%U)q&3$=hufM&S)!P}lae6ZRQ?%U73 zv&}#6ynnuU-naedYtPLvtpEFU|HtZm|F*8LO+908pJ4ji_Ql=zF-Ff;_sbUinOE~- z&wi=T>Zgltyf2)6&br%Cq6Lcn**kH#g}B%?DM*}7*~MY=Yk7uHOXD=JV;ffe=5)GZ zetqp=wStXIJ*Pac|n4 zlDB*(U4ozed2+{hcRk;|+gH67?=G8dmm#<^H}Ok3^PMS$*Gu!H>fi3T_WRttyAv~i z?iOvnb8dS5p43OV&&~7qmHe4q81i4B_S4tx`#zirJym~y)1xGl*s%!Qx`%?d1TH8HO?oRR3=Fe60BJWx#CNWM>IbZwuWa)Rl zcQWh$e3IrrKX2#tb@d+4Wj4G&uy{IqntyCv_P2@0qxNlO-K`tGH%zkn{p8b8$NqWT z{&hCBe@)2JUF{u*KJlB%p4(AT^kU_1q1V@sr^RkpPqM9k=z4i=xS3t$$wSh&w)yR; z3U2w4;N-&L?0mcN@E!++fTy+%9UHHem#{nC`1z0BV&C$MDks>*4_sMyEc@u1Znp~yT5E7#IOSmO zY0N&)2 zTTM_c-C`!ouRjr2nDju2Tj>bzA1Fw%mdV9LExj z1i1e9-+d?YHsHj`V_vJ2s*N_dn9jL$c8=bDe*AOR zq%FH-*SVkldi)pHN;%Fenkph+>;kU~?MZUnzB+SxKu8tW(l2?{^Jf{YF59q7ENHE5 zS@lV=S0YT-Up`FSHSIv)L2Z{!M6G%9Dix_-ATt~^@|I3Gd3=^%?j%M68W=EcX?R%Irkz%=@+HWq24R5pX-~Ipe5J0 zm?!GLmu_45I_f?9n+lhl3^C4Q z0SERtFgV#fQGCQGAaJ0G!AXKaNkM5rm291%SYYzud&~H({8q3p^uMw-!1l`awz%xh zDcP?Z(w$ zTN)bjR&QFfdxCPr2Q7g_9u`K$hbI~tRX7f?3*73oF})eTnOB*iQ{ZJI2cvE7$4$cF zN0zKrl<@9yy6eor@ha=l>X^g1x9gt$F4z&a!gIkp#f1yh z!`bSse@I^zwq7By&auVi{N4E*FP**Vwfe^6sgoZ5vxxt%dugHNMd#*b*2}^cS}v<% zCVXC%r<$rd>+@B%Tf&-0_pIQ4EvK}tWm4LfSzDFDj1M$jf4?hgWwgzNjhEkgprsLu{oY`rcR?o6&SS5lpqT-ZB@QX@1fBma*wY!W*fiHFEI{DUGRfu>(*>58 z?swH#+99M*&a5^|k7mn1(RI82vF+{f2*I-#8{R7{v-tQv-gj+< z-S)cn;^RG^ubb|l6JL8XCPQJrA$7(n)_F%a{GkyCSs4fW>QuoA5dwrOu8;R(oc0D?c$uE~MxD6j13r zv0uQ$I4$7Z3WnqrC*%JeWN7-KEZD|=@phQ0>%qsjiz_eJ{#v@{r1hk^9|de+YD`15MG`}?{TA3u5Lci8>-bVqfsarv3Q&z58s|Ic*J_%tPZ zo4bF`&xzbZynllO3pWL6h;<)LTA5aU;bBRcZpqE{c~$wBn3<>BZ+^3NCco^AjeoDT zFL^J~e|~0J?-%*t&&Q`KEPNBST)KM2cj;Sw-(T)1+81LnXI{bU4GJoo5+2FCtk&l_ zSM%fH^|~FO9?!g;SATD2irxMf?8)Kxx1F(bhJHt>odc9eZ|rbm%=iSZJB!K*V+e(Pp_)p+bsOrM5Vs+Fa7c(#CGuhyPNGx)Bh9=&RtwCaZAEKTcOt7{$#ckgIlEmpKM#&G*~XPI|r z{5X$=sB{SEbcqBvX{w1#)?d1&*T8m;@a-%4*}6@PEdopxk8-7QzMckG3gCQT*Wz%s zRJZ95|H2Q=*R5^;Z|69v|LdFStbI(Q-``CaCa(IGz|xnK$7pr*>xqmR6ArC;y**}U*#7jBqS4p->uVmanMtfzlXuY0;MceGaEni6LBa2x+Uhwo4C1THukQc5>aY0yxsrBQ{rd%FW~y^1 zX*3)bRIuFp>S(}(PqP0vJ!oRTzw6P*?)R0Yzb>uberM;i-`^`I@mufS`F7z^{j8JM z#rACotxmdk?@ILL_$?_<4p+96bG_8#JYvKtuFgH}fyiT#Uj;u>vvt`L1z>1`K1Y+r zQHj997JDYiiL39l+k{L$lm0oj{rz%=X^aLJz6!?v4U&1{r2OIb@`dLXeek#6m3Y&; z&rKzETYRPRvKzC_J672xT@Rj^zz`_$;H8H1n!eq7w$Ep&dirghwdG&ucWbZzYhDZc zEw(e#f2d^9aOml~nurG{UN{NpZMnBK|9k4^a-I1l<=^Igem`ekjLqTdgimwl7%SaA z(h&4kQ}opDPX-=t+cyj6AMd#n{NLf-PAQ)|J6`O5vCLFkz9v;`UyfVMpFgF#XBxe> z255+Ux~uuFSni)x(Uncx&wAJx)qXg(vEQ$*^xUn3@@HdqrJN02ofqeDHMqy&u;+<& zvUbYBTBj9_b_qP68+}Q8-M@-&tk&~6?$rf8=?m=^&zZC1^Tq35{LB4S=6!p)KsoTT zyT9($LwlC-sK4S=*J*E=vHM-A`8of>a^Kmm^XC|RHmg4C^z`5D|Jk#vC$W1=sT~RH zbKJG}frhg|TSvmdtM^&W%q&3N;MZ~>% zQ&yJ4#RZQt)b(}wH*cPN?%d+Jwl{g)%dbe?onX6R`Suu{_xjtm2iiMpWO3~{nsqMs zws+@z#Tk>PwLQD`tc|a5O8U2p^*day+`H6i|G(?k>HGaX7i?2<+D{;I2M;)pAjnTU zi>mhTT35|+&?)1^oL{Q1zA`B)IP~4|{>Z+_TgLyDlv9F3=dq-VibCD9<~Y2P5;|gd z-d5=JCf(zR%;du7~h-k z%M?&dJ@893OU$u0rm*Tza@f-WSZ1kUq zcO*~cm(_W3GA2hM`c8UD`Y-L3&XSkw1%Uf)Z7uZ}ksg`3*5Q!Qgw2t{hSmdEfbC{>%#Yon3bP0l+XkK DaLU~g diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-material_dark.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-material_dark.png index 53247a422fdd8c56355e7a2d5d616054de54e448..515f5e0b8e4d7f4556b46d24114fe018aa7f3c19 100644 GIT binary patch literal 4033 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 literal 9703 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 M)78&qol`;+0E$dF2LJ#7 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-material_dark@2x.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-material_dark@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1967a363dc0442a5f060d9941df73c53b5247872 GIT binary patch literal 10919 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 literal 10683 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 C*%yca diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-material_light@2x.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-material_light@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..03c1ae660371485ddcc6b4fc50e3b3b93f0a3aa3 GIT binary patch literal 9504 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 K&t;ucLK6T8UghKf literal 0 HcmV?d00001 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_dark.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_dark.png index fc21300336ea48e5d43acc825a6e4563a780aac8..339342bd913366419260329a356125363cb85e84 100644 GIT binary patch literal 3887 zcmeAS@N?(olHy`uVBq!ia0y~yU^v0Rz{tkI#K6F?e!cHb1_r)wo-U3d6}R5b&GZRP zmpZP_DEL81qoatGg@wgYOx(qFOOr%uA!Aq5BBr44yev8ooZjwO_^9dXu0Zjwtx8#U zrE+y=eQTbZY3yk{xA2mh@2#2slTX&nhj&Fka$+vVQcvi*Kt^!xdfCofL^6?I|0g{9@rojVJ^3BImR(v9Bc zlhoSQmUnww?(sg^_j|v`Ra8`DXJ_Z;zHQ@`&bzZ?p+>6AolBR3!otkz{#1mAU*{Ir zd$E7dzhAH8YrkHdVVL|Se0TYKJuR(AObXZflTJ$ewkj$ritEQ+nP-}PO($kY!Ru>l zxt!Yh<-?AA`uzEFoo|Poon2MB>zX@vVmg=3RaI4;RCKV3_5Hrz>y8-RV-#5Jt8-K< zSx2{~w)W}SCnqPbUbTv6(l4Y*T?ORO7c7&ySt2)g+)bO z{r&Cj{>IOi`Oegd-n8fR0?)=Jvv1*n2k@yBJmK*T}xF}RaSO({irP` zEEJ54iatL(+bynt&BEBY_}ZGt*E%k)uBj<0Q>IVXUQ);?z|F7`48f6wm$RU}W2qBo zsE{4&7FU5&(8Aq_rAWq{{H^{_|P>sZ{D1feWXe+)8Yoo5d^q#c%aL$gx z$H%;<>s`Ha#Y3vowBo}9=XSnKR_R{%ez~<*UAB~UEMKmkq!<=`>c#SHMci0C{!M?OWb;9MRI%jon$Kn)GqyhPS~B zc{X2N?&Pq>tmk<|SM)4l(F&0X6@9G{X3pm~_Nc#)+UsHdU{1ynCI=l5WH`bEf*_{D znt6}kzFj+IM)vh}wZC324__Y_ySq#`^L@wHJuGZ&ue8&*8V9;HU;1+8tIOV*QzEb0 zMM?^+u3nLS$NK%A#cD;e-(Gt=t9F##Sh+%*#Rv6ev`^7F z+y6@cd4ebZn(Yfhf>L`|tq(3P-n@zF{k^@jr%zv=;?Vi^m~{S%k29>gURLmKSy^)V z)G065P1WDuz4W*H`9%1VM%CtsSkvxmqvx?nCnZ`97fa4PQuX<)d1&v7Z!`JjYyuKn zqgr1Ylop5H-sN{R=t9u1>1y%LcP1*k7r9n1kI>qXnUhmfq;=(KxIkB5-#dkAlV(ii zTyZma`%fWnrp%zrKFc``RaIRXJ=@RDvAis`G4JlKrM8%TLdK0%J0r5% zZ(cpSyO8^;qt4%Hp;mE8EBlw(S-$$%a!Na-a^WH8s~=WOa*8!Jy)S8Nalh)d?$!3p zezU6+^qacXdZ;|LWr%9XIPgNQPc}=<#%K z0i(cc$@BvZN7co@C+JG9Icm0wc?kzv#I{JhD&H_|0oC-)^Q~@_t>q`pu(rbFH;@Ja}|-V#Ko< zYyTBii}s_C@U)~@2vQydd>g*#(n&ryNq_JL^2$k0hW?^aXBDwQL4XRuit;I>5c!skl^5Cv)P+BZ?-($aW(hZ+1bm_nMFoME_Uk; zN)|Gm6tO)owy^Nyy}i})HWd$^J`D{GojPk))rSX;rPl))9``6;GhX;C-{|F^pPz-Y zzrMOEw0h5;n7Q}AOlp}Nku_=YHMLtYTeGI_sw_Mv`1<9FjSGI2{`~!0+wSO*BP$rs zHL-H5OshJ0a`Wx&`O-;mZ*9$fb7SMHgcW+;a|(}CS!F3m$jPm9jEI=QCMhZD>FH_Y z(;LLi#r0*|D|?NlSJr2Ld~|f<#*K6GuoS%;IREZRI-Iuk*qQ&cEq9&T*sq<`n9Jd1 zBOU%h{%_B@-@8w0i)}n$)^dJVe#cVz^3Nu_1+7Gq zPCRu@OGoF*^&1k+5wSv2Qc*!cL1AHP$$j$nb~Qgf{Q6bZxwK`itaX`%rRCc@JB$DS z`x_V-sH>~n*x0z-Z*J87y1i?H-u13upMU<}%J(ncmVFie`)Yfc`ZS9aM>Wli%+F6w zP8RaMq`?@l@{HG|RcqIVPO+-`vLY^Y+q6l$yu7`aCINsYM|!mS>zMJV^rq6)UXQgi?2hCGXB z`>|Xx%sk*$p{r|a(59H!*o!NeYkl_x&a5}uXD>JN--(lz3Q4xwrz-h5I0C*NIW<*# z>d$?Nhub^3qDd-acM?`mN;=>*Nv*Kkqj`(siopP0lCxHF+IdtG~aS zZJxiXM9J1RR`UZdFR%A>z1U4DC-3Ym4)t8PB}ljG^}Ba{5gk`;H*R^fVp7l4tTlU{ z^h%rW`~UCvs=rYilU##?C(oWen zMJej1@u{zuwHBXR6xflKn;Xiv;EeH+OPeNo-3VHzDbBocm*TZ)y3toA$8g`$`s#o7 z-EzOVtET9%pN`rtq^+m-?%v+&sJ~&W)%NdE56lkc{opMtv+vSTTb8ADmK$wsY^J z7xjMorgZ+gXJ20>tv~zbO^)v4b=MdttNVxbSIf)GM=t&H^udD%ixw%}J+Xg}df|~C z>tp7p9#8wTd%wR@*vB0Q&Gww=KBELmf(p}OJ5%@W+W*Ku?&H3v``K*s99kk=bii_; zM7noDkH^ll#X3he**d$eGoH7{J*DQ|n`h@a9d&MB_!hgczODQQm-zRDb8O%g$_PoX z3=mEdEWtv#sImy9jl6;9e-&<1(9z)mH^T+EH-f74I>(Jy9=*D=v)I?yx3aRbgLRvr zckepA*j-Edj9xvse&ND`KBG@QzNu=yvrNk0#pL$M+s9RJ(R{mwedB{jhiHp>mVY`XH=ojWxT53wF;THZZ%!i0d};KlbZ zdEe8pm^y9RvZYHi*Vx_)nd0T?xwGP9(xlc_ZgC|so8Tis*&bho_f~&@w=MT}QBl#l z*xhB1j&Po>t@50k^ZL~*lZb6OGrz^}tFbgT7T(x!oVNj#ronYmYs81mP2dhA(Unv} de$rp@?fq8@j=FT1GB7YOc)I$ztaD0e0sx}@QyTyP literal 9786 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 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_dark@2x.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_dark@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ec60f0453c118761d9d2ed782395bf6ba56af99 GIT binary patch literal 9579 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 Z-7WrnUFYAoGcYhPc)I$ztaD0e0syd_k(U4f literal 10742 zcmeAS@N?(olHy`uVBq!ia0y~yU^v0Rz{tkI#=yX!aQ4{BWdKqG4rtDlEa49&r(js zyl^+UQ&;-F{_p(nR<)&dN>eSieg0Tg8~6K7y8Z8){l(YP*Kgf-f2*Cg?>w8zZ}*E% z>mDzDey;Y6`y@ zuf(5MS6Bc2lkkIETyKl0cG!(=xwms(Ut3$3+ovDD?@rjd7|kY*jm`o*(uZY@QaVas zTsU}ZTW+@gz8{OEEuVg_xv?sA^_>;d^*eybzO&8L_q{cIw_}IJ?Hz@SrQbHOa=$riet*kM-R z#C|cBM|*z1+kJjj$jYSJUtcz!nQ8pHQdr$@OWogJmOtJ4<#Hb%>)kAAoMxe@zdBO=zh1`kE1X7 zPU)*F8%;7VMLaz<_3hpA`(Fiee|>pb_Hya;sL5)+J@ql!Z*FY-c1nBwj&do3ga%Q~ zpd((>^>S}+O8u-h{omi;(N}n%T|YiM_vR+oIF}s;98JqL;`Zzi)s4C$SMh-H^|iIL zZNJ|s4qM>B$UjxC_DkUI|Nnm9eXy9nvjf+gPubtWd(J-q=#@|8W7;jN;$;(SW zO?Q>NOqyT!Yo+baCzHe0Mwy=Xb;Ad`ByWy zrk_BM6jR9hxVz445)ZfCeB5uJCu?0+!f%jzO62r>`~9{bj|j`P$=Xz0;N4mJ`kGng zrv7d9wndj$i`6=X=dTPqa!^;YaWeykb`Soh`w)+2dr{~%37G|DQFn`avjq74}|H=|? zIWxm>@&03_v(0i}-D|GCEFa?$*fe3mqb|K-QF{QLK^ zuB=FuulupE^xd7CjypnD2C1G8{$O%&@`k3V#_4`lO>1Lz7S*i@Umy4F5VyWXV8$}_ z_lboKG8~g8Oc&9KxKJ#+PWW2@i{eppu9MnMK|Gcx1Qobf2g}^vkl1{7zWx1^BHuhd zSkzn=UgXF(@3YjBW($>%Ps9cKRAcT5H(ZypuiN80!{Fe0|DbcG95?;$g$uTbsB`Re z`1F@u&ay4hdCG@5^9>6;7=K7kO1SdyF9S3GZ;d_YDi!ZPoOr#0zyDzHht1y{S*|8= zV#(|Z9SZo$0(9w>lN30t7jy`@ND5R=;Aoz(ic?6$`@$xtN9;f4S=L{?(%h+HXg}0^Qzx%l(Vhc@rD0Z)TP}*LA;IzB_|ro zu5CVVmwmBz2al##*NY!^-)0F%&9d2fp8`4d)M+X6DwX&w zdnD8Ljz#c|vG49*hWy8E3wRG5F!c9^+#EpS;IE zWX(DLTi{gM9Hy*KJZw(l7A;jqYJyMZFgm-HSY=;ZBWLF*=CpRQt+T}4ZRzLbs((J6 zu3P)-%eP;z*Z;M10Z*BSG`_=IH%Dlrd&Mq4idEDX_xp0c_O!GO^Yku!VbH$Gu8_vUZ z98cwHJ{%O@ENaRAwIXfyl~tjqx8>j0YwA#VF4p4P;-z{QG_X|I(zGvYV-PE$olgKOVoKczkMj+{@3rGcymx z2#LI$Iqj&4Hpd|eHbEB_%k?aY9egJ(wZnUiEQB2od9XZ_GkPpwq@vEz=F{OK7rZ&m zclWRdnBP9Kvn zm1|9@et&PTS-}H``E{?-K^n5*;h-wiot&#xyYD*vtFnfc%4lZx#7gYT^4m>x~MA{^(av4`<9_smw0P4~9v z$Dh|$5Orx*c%uBoxuy2cW5J{eOEwptd=e9OVO7}LSNHr`1Rc+59$F==d^6&itX0Vh zY18|!4t_YiMN_CMZ`K}$#k{9CtH<-}f4LIuzjL9m+(xHk^^;iSn(kCSpZl*~rRR~= zp7slT`3E~PrxhwHRPro-Y;jKHo{VMDkH3y4VjK#qL19vyFo)-7O60VqAx^p{8q5`0 z9#6cgYQuck{{N5T_EGQe?X?xRtdv)JllY;I!=cHy&)HV|{*NgeH`w${S9+cpsy$)C z;~WQ}X&X1WDfwSIXSq4;?5Ecs<%)#&%xi1zQh3fQq3U+#((CyDzrwX+cWvqKXw%X8 zzv;~>wukorKJvf5xq12f>2vf%xR396_U`WP+NC{rT3C0_wQ^VgXLW79V zu19rhAMXEoHs9|>QepFy6~XWPp6WdLd3pZ7Cu`SN%n9E5yvR0gu}f?ArAP@Ik^Y$O zg5KxpMqdJ~&M=DyRmH^{{2BDa%as)fCd zTFbI^3--*I6Y@%0(6P>tBl^d*^Rvy@KbKZ{xID<`i6z(jFJ%h1oqt;AZupX_!avi% zjpxTDZ~d>YFXo+oJ)v*ea&NtzN36Lj<)1(F<#?}IcOW4jr#if z`uDo;1$i$tAO1h^w@}xPT~}9*lliA*N1<}K%3)#0x`}#XldQMw7Gj#K*TU)6u`vDg zw6m-deqy-|3NnkYekqwy>99F z#+HWNB`+V(VAN9<*vvRPg&?V`L}zBweuO0_#nAr?vByWZZ8!W$WFFSgy>WyIWK%q`5jDKb>aj@B4A6Pu@N+_4KsTRNfOp6a(lnduldv|JTG8E{S)Uq*%NH0e(Y4RmuxXv<0qJ;=<_!@nU`ZD zN3cPKllYz^FFBe7C-;bJhn1E$#A0K1hFy+pgNaORZ6)Gy$ zMNc}~gZJ<|33L_e7D+his`!4?+auoeAd+M2hoTirx8&Zww(rj;Z~OMCmhWO&1Rd+X z`6}>s9a3D#nRufAWs;-DAq6L;qNd45S2H_ac;_m?cX;2oTiLcYO688WMk!bQmWz)cjjH&CPRBWZ@%e8O=Z*iDVl~md6tJzj-hh>V|FM zn0w*b+SuLO_RGK3<(cm5xz4rX%5s1C_IR9w{ z-?>($cbYd895^L)-Qkmnf6H{o1AQ)YtHm8%Cd}U(c*0!!{<{w6$C4adBhIy29C^Fv zT$cEAq0^HYCUXa@Fa5O6;=JPB4ngHR5r$qi%=h02^jzRLFZ9Iiqs)}8AFTFIP~dD? zuBfP<@@V>zW2$o8O%s?Czo>klvVX$;4_4aY2R|3S`|oVKYXT%rK6i5K z`)qgaxUt|V)}~K$^6NaL%-A?tInP?OXS3g3;}CI9_4xzij~NT=e0G0OI-wtCbnrod znF^0mjN%!`l35qp0^08|UfPh-ebH0g+r#wgo<^00SLSYLna~>0dUl8BWVN5X&Ppf$ zbF7RK*Z$Jd@^E&Gw&TCxBLY_fHPAbv97-I9juU=VOsk%(7%@q#M9$i9!Fh$)dYMfn{4;GYz1wki zj=IsUWvbrsXF=B zmOK}{y(Mj1_2kL6>`z~aSS+$}I{AC$tSytir?PB4`sDZzOBw%ny?%A;6`JM*>-0OV zW_^G3_Fdk|PAjLLzQ291b@R{{QAar(Xsd{ma{1lHB{+|Mf3;>wVHjPEErkh(|Iisq)d{PX3KE~zZoilH_SV+VUI~4VLk+T8WL{`H z-fT%zv*F=VpK?{1-Nl~klk=Ae+q15os=k=H-E}>;f71`<+7~4bLAg4hHmOMT_46C9 z?d88|zuHAkF|YUSpMs^*3V&agh%>o}Tw3P)+ReWDn#%1>mKWtRvceWW4&NuT=Z6T( z$;s;d+A|ykcxKB9tGEPOKHM0!HEUhkp`UZQS2!Ql%ZU z=l12^+VXL};B1S@J`)w1=7?^~osriYZ<7?M)O18YE=@i!>e>B!75z_G7H$^kku|>b z?TyzKF5UfG+i%x=p3L!xn=$Z(i?G<=cVDJHHodTOks$XY#SI7SQ|cAYZA?D?X7hQw z&+}jUw_99~DenEgb8&5Jihz@V4x5I$pyN47yBPb+R&LdDky^9&nx-y(dvoKhP>w*} zh3vKyTI@=%xIYp<+fy{rG|cFh{L1@ZXRM8`tZI57IDuVt&!OfIz5VmVR`s-UiEi5c zZrAC=xFdFV+0Eti>t5Y!{>}Jj(TBY9`?cHKGX*BpxPzLalGog; z{XJS&n&OI$%@ZI!YKc-?XRz&{^R1jZjPdJ6E>tQoIcIw(!cD}ac6Tb^|<^l z`M=3yUiy}9^Mnm5SD4xOHte;YcB}2k_q8$I_0bpIo*hXLee)z#=U=h_V}65?b&z9= zX9c4Thmrk@f`^VjSQY%eocL!dh)-HLRV(yUOtV4H^EGJ;w|0MjXu2#;(U#?>i-6!0 znRknhSIY^S+aG+lB6r&2RX2BNzJ7CIo@!Y_`J&n_xxH_HYh1Luxmk%Tby~#FY4Nv1 zQ_r;Z-AJK1*a^k7MRp|NdqO!o^DPK&6>j=hF!yJjj@@OTJZxy3nq z!avQ>Ra1ng6m&n0UDrCz;Jxzy3tH1SisZD)7eBq1aXJ6d7t=5WB~I^sYpZ0p6b75S zlt!M;eYJaH!0iLfW$v<@zdSutzf6bqeetRy;csR?&Tlm77ThdzdLP@pR`on*010w5*Dg((mio_r^??arjula9M5Izim4=~*ZAErs^0Qgye#>NXT&en z%JZM@KCbQkC^Io4I^?c*#@Bm`;_bIII#jR=73|^vtu(j{OV@hC%?=;J159IGJLb9+2D)Y!YLd@i7%2izLvcj z{!rB}#@zUp`pk#3JEfK0I|V-e$^HA$)S7OEtev8eW;jZl9L`Z;ZLjb;@8u!N61gFv zG5l1}$F7a@SDxtqtSPYM8D~K4>FSW*DlsK22Uln^FVB}Yov^@ERNxsuo4%vA4r}8X z-SjJ;v)Au^rn}BW_u^&8%AL0&Tf4gyKuw3E6HGEMRjjnQ*YYZ&M{Z+F!k;axikRK| zWHt(^dPS^_+PdfDO3%q^>S;5bw>{Yv@@p}tp|60G${waH`T8G+<=2#7arRr$dhzno zGK=DtLmd;}FNvL+U(dpyb!|=N*H>4I z&o_MGn-vtht7PM*)YH3q)F0(o7CreO(EYeV>Pc0FzL8Do>uX>46-=u9B=+}V%M2Bc z)0@8(B;V*zO8C*@>rwlN^}-UTr3UHe=IA|W>*CnSo+zOxrX5isz~R=^7s4;J;ECdi z*9y}X$hdSwHf^}%@{ZxhOx38cc?!-IZ(GIV3NAjc{QS(abHd$5kvlBfaUH4xlN`;$ z_6TGrw=k|!i8?BjG)p1pN9#t$mM94mMZxo)>n8qd5vkEQy=PC~@&^+AbGk2Ct&X11 zENb|!`Fs09i(iX5R~;2XPg>wU-wus~3fGTLOwql3?2)U0qsOH}w<9&7CJmXvCb}~x zO3c1?#?r9#O%CfhR{_Om2TL|Z7Ek}l(jXftj*4K_%<2vPuN*sB3i^OV&ufNs(j_I zr=MT?wbtCMRt`&g$J`Vu4H|`b$nZ`bB_><{=xS2Q&Ud9y0S7kzV7GJuWxT(Uv$3Q|Df;1 z<9@9lE-rRoTk`UfUDwR-m$vu0FVvAcf4KOUtH$hh1O2^UCQZLu%;)kj>d$-&d8Jd_ zu{A7;YrOm>yjE)3@?QEd%fo0J4r9>F#ql!%*Tz=&b;W2hvA9rW=`Wc;l<&Ub; zMdjR@oh4bP?=U(S?$t8oaG&qxoM&^Mipx7XHH)(O9Di_PqVn35laubnv@SGmpVQ~k z;q+Vg`!3J*E(#GRgHy1HE7>CEQ9 z{1oM^e}_~rUV3yXLuvhlNe{YTo%NK~^J_|2V&ZjidS3%GTd(5tv$L=7Dt-N|iC17z z;9@sEj-Y)tmD#tptn9Y`aBD^2;yv4CJr#?DPPq0R`g~lz{?5Cd&*j8x4g?D>yZHTF zW%}a2P05cuXUDX#a7OK|S)F`C z=kzBJ36{VLp3{d;KJ}{X`}mmCqCeE|zD3tL{$B@Vp4-YiuDN&o_tvhZp=)N`_Vm}w zkew%NRLIl(+;HauQ;tfPPv6^;9ZjtN=m_Qrx@?VbT6NcRzp0Y@Ja_#?b4wh5g#I!O zJG*t|=CGS@x1KGso#et-w=84hi4;- z=>1uJ97;>x=^Y9U^!)weM_-B@lFLNt#=wRQ$lVYxOe4F zrFZU=BN_3zRg1oNG`MzyiWilId#63q_~vG|W@av@w^-HLIaQZf9apKL&cuBX4xh2; z_|?p!>u1=_7-QE?9mn4!69>Z=Ri8^ooYlmwrcu-x37 z-oO2H*!sA;eX`civQ#u?CVX&ie{t|!>By2NwnsU zPWspPvu7%JTrG?5RnBTGcFu( zefU9QLihKAp2$}!KaI|CcPkWro^0b$)FhB3Sk|dv->AT`OOfliy~#SG^mA{Lcq-Ui z?pLU=EIwXyq(e|Ibe3Ih)%AFe3j)l80gT~8|Ia%wKH zeSaP-bh#Qw_9Y4WWNeq!b)e+sl0 zD>5&-wrBd(4Z6|W=G+Ljl+P=F{cGm6$_sV#-2=BwEU>!sIpvb_>hPag_5Ks)1X{nT z?fn)xov(LI?Cop&3_fQ+Ub%eUr#+@8+*V$BVw3c+`s2Q1`weHcy36R!k-Dwi8CK`t z5@9L#bN}jye!K7cx0MD@S-vLj;p%Do%|6J~+?@Az`ZA6pvE4_$SnG@VaWAu`s)XPIg)9ZIk=$+Lf*E5<}kUEqT?ZdFrlUfwbL2=ImdW{zu#nx8LSzd~HXHMsIM| z456Uf)4Hc0wgk^s4&3hBxjFU$Z_$TY97-JT)xR#?TrR>L=L~Mp2n0zw9|wix+n4Zxw-#5T=lQ+S*{iR++yk;kwvXm^>WUQv)YP5>N3(6 z-r1XcyzgF|_jiT)r+1`#O?mmB z_`mcO)O>n!(og7wvgQI~{llC54}Q`<)&3%))t2XPUC;yt#g;{kS;u-L{iZm#^W8ks zDXd%m?#{h-yR`qq6x9wplXY#)%S4H{+d;GAWzoAh6@~A1h-!y@nRffv*VoY> zA07Q$>LK=Q+3Wt=SG{`{#I`Ksz|b;&TzY00y*vv;RIkY7}Eb94H48P@d< z>kFr9h3;88sXlghS*fXTiwwtE1@A^C)|j75LRJRpu^e=2V0r3y_k*i*aKGa2H^)|a zKG|WZ<#}FW>LUBAk2|WTE#>5PnJ`6-L-B%i{+`6|_v`n6U%Gfw$MqlIZs*4ub1$8| zG5Pqe1m~ETIjeP_otk>uEbq>XE{zF|0^CLq5*z)1m zC(qU6b%k97t|rY@7nmQsX>ajmpX(>OToq0hS3Iv+efej%uqB7XJocIMQnk%)Y~v5x zalOxVgO$|fQ(YT-j&#T@UXJ%_m5sr63j63pK0`TO}K&Ug!qQJvzJA#zSsVC)1zmvx;Ao!t;uNJyZPOBmXpE{ z!O{q#|#h%Jihw$UFg1fNV_v%~eN#2Y8|bv>V5%)}b4Y%4v^KHs;A zN3_mkg6qfCIgf8u#DD2<6^IISEZo*@qSO(#aZ8tK6UTDp6UuMvJtjEuf@Zf^ED!tr z3KDc-@x05;dnL*AMcJ84(|^|;ILphg&bfQ<_t=}eIh2}~L`lk-S-1Dy&iT1G^r}LDTyFWxWPO3E|96XFWf>PcS1POc{vY8 z7Sjn+LX;i`vIy#JDEeM8{rF7V>TUf;9~-I)*jexF*vX-^#NtA~Q%dfK2M4ch&yNpR z@!|Y%^A7X(qJ=)J!j3J%ERvwPRIT8aV5S3qm{&z4j57vn+bj`MI*!{lrmIOZ}Ms&lRyOf_hv{KJ#pDy641KKAjr2 zIn7u8`dl?%DNyew_t}}5c{YtKkB|442eEv5km%Mg_tw6+=F$>RxkbH_#>dXv-em4n zaPkpk(LZpmY?@Bwn{T)C%V%>GznmFtU-l+qzIXj)U-QUyF+0~(e}8vvcX_^c;G!0L zr;a{Z>!_cfp1uXGbrRE!inz8WQn&u!pMSr06h59~q0}L;SuW+(m6c(u!*q8)ndH5u z;^U*dClWlS!GGr1R+nYp+OqOI%bB^>+d-}TbvvI)@t>5q8M`6Darf(WyVvC2-Zssy zwhB}j-z~piD>1u1?o)v`i(pchf@1pt2Pw0h7xR?j_ti|(jWz?#omaQ2`OcE~=JaE# zqB9%+Lap$1Ipuc>+p9ZdEQ@xCH)`y;w=ULtb=cZj?U{ShZ*9p`>JXUC^00D$-QPRf z0$FG0T3@&ITIkezN7^L+-krSNZ_U1Qw1mzyO0^0+-P(TOvxsig6=%b9k0lmH&NND$ z<05NSvSItZDv*OFE2vzrU@U4=a_y?{V+_;^S@B?@=#Hn;qH``U^97AFs{1}aH#hg% zn#izCDW2UqCxvScZ9LSjzNZeR9#g*_Op={98G$elSt$ z5cn+JI-$j2b#$v2ZbLPg692G4l46V7##R+6>&)Q{sYU^iHcK{X4XIIRIm9d zUX&r~-BH=Z@J;WAqxwp<x*q-nm@dGyZ!#RCAM?83oXpww5zDMb11Ed z2wbYx#G%y0q13^l)C5}J!=dEj;o(uRIOXU{|M_>aj-X zo4dQOzfNRPG;OY{o^`}eK;@OK-MuxD#=qZeJ|CmvBM@X<_V(7(EWIz6tQ`YZI=J#{ zimODkD4H^Fv`Oi^pwcFu$t9w(!G2P)rJQECjQ@1Kxe80NTvq8GH%>cKVH1>SDJPin c|37>CnhnCUymS6AFfcH9y85}Sb4q9e0CuB0EdT%j diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_light@2x.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_light@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..22e200c0d70c575cb58746874e6b3e8efd6d8399 GIT binary patch literal 9157 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 AC;$Ke literal 0 HcmV?d00001 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_system.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_system.png index fc21300336ea48e5d43acc825a6e4563a780aac8..65fbae504ff0cab00516f3b3e1a2fef051915d2e 100644 GIT binary patch literal 3395 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 literal 9786 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 diff --git a/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_system@2x.png b/share/qtcreator/qmldesigner/newprojectdialog/image/style-universal_system@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5d05168537dfd6781f6d712aafa4bb4b2c2cb047 GIT binary patch literal 8527 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 FO#qjYQNREI literal 0 HcmV?d00001