From b9fd629731569a1909bcd89b51f89f7b52e76aae Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 12 Jan 2022 12:57:59 +0100 Subject: [PATCH 01/19] QmlDesigner: Fix compile with Qt5 Amends 72c3d675a09. Change-Id: I12b93fc36ba7702f75171409136dc7bfb94c5def Reviewed-by: Reviewed-by: Tapani Mattila Reviewed-by: Christian Stenger --- src/plugins/qmldesigner/cmakegeneratordialogtreemodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/cmakegeneratordialogtreemodel.cpp b/src/plugins/qmldesigner/cmakegeneratordialogtreemodel.cpp index bb0ba02c8f7..28a318dcf05 100644 --- a/src/plugins/qmldesigner/cmakegeneratordialogtreemodel.cpp +++ b/src/plugins/qmldesigner/cmakegeneratordialogtreemodel.cpp @@ -185,7 +185,7 @@ void CMakeGeneratorDialogTreeModel::createNodes(const FilePaths &candidates, QSt const CheckableFileTreeItem* CMakeGeneratorDialogTreeModel::constNodeForIndex(const QModelIndex &index) const { - const QStandardItem *parent = static_cast(index.constInternalPointer()); + const QStandardItem *parent = static_cast(index.internalPointer()); const QStandardItem *item = parent->child(index.row(), index.column()); return static_cast(item); } From 0c00f58e8be616a4ceeeb0dbea7039613bf24975 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 12 Jan 2022 12:28:36 +0100 Subject: [PATCH 02/19] Register TitilliumWeb-Regular Change-Id: I0014bb5e315311c84c2fc301e1c3dba67fc64a22 Reviewed-by: Brook Cronin Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: Thomas Hartmann --- src/plugins/studiowelcome/studiowelcomeplugin.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index 55d33fa2285..e8271bb9eed 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -532,6 +532,8 @@ WelcomeMode::WelcomeMode() setContextHelp("Qt Design Studio Manual"); setContext(Core::Context(Core::Constants::C_WELCOME_MODE)); + QFontDatabase::addApplicationFont(":/studiofonts/TitilliumWeb-Regular.ttf"); + m_modeWidget = new QQuickWidget; m_modeWidget->setMinimumSize(1024, 768); m_modeWidget->setResizeMode(QQuickWidget::SizeRootObjectToView); From 3d0d9e8e0c9708dc8b367bcbfbb1b36a247404e3 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 10 Jan 2022 15:46:19 +0100 Subject: [PATCH 03/19] QmlDesigner: Don't save null image for preview collector Change-Id: I01ad1c12c25a734107b359461508c037a2f23bb2 Reviewed-by: Thomas Hartmann Reviewed-by: Qt CI Bot Reviewed-by: --- .../imagecache/asynchronousimagefactory.cpp | 2 +- .../imagecache/imagecachecollector.cpp | 38 +++++++++---------- .../imagecache/imagecachecollector.h | 6 ++- .../qmldesigner/qmldesignerprojectmanager.cpp | 3 +- .../asynchronousimagefactory-test.cpp | 28 +------------- 5 files changed, 27 insertions(+), 50 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp index 22c5a09c06c..367f53afe54 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp @@ -116,7 +116,7 @@ void AsynchronousImageFactory::request(Utils::SmallStringView name, const auto currentModifiedTime = timeStampProvider.timeStamp(name); const auto storageModifiedTime = storage.fetchModifiedImageTime(id); - if (currentModifiedTime == storageModifiedTime && storage.fetchHasImage(id)) + if (currentModifiedTime == storageModifiedTime) return; generator.generateImage(name, diff --git a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp index 6f5aa0cdd80..c32dd1e1839 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp @@ -60,8 +60,10 @@ QString fileToString(const QString &filename) } // namespace -ImageCacheCollector::ImageCacheCollector(ImageCacheConnectionManager &connectionManager) +ImageCacheCollector::ImageCacheCollector(ImageCacheConnectionManager &connectionManager, + ImageCacheCollectorNullImageHandling nullImageHandling) : m_connectionManager{connectionManager} + , nullImageHandling{nullImageHandling} {} ImageCacheCollector::~ImageCacheCollector() = default; @@ -98,12 +100,14 @@ void ImageCacheCollector::start(Utils::SmallStringView name, if (stateNode.isValid()) rewriterView.setCurrentStateNode(stateNode); - auto callback = [captureCallback = std::move(captureCallback)](const QImage &image) { - QSize smallImageSize = image.size().scaled(QSize{96, 96}.boundedTo(image.size()), - Qt::KeepAspectRatio); - QImage smallImage = image.isNull() ? QImage{} : image.scaled(smallImageSize); - - captureCallback(image, smallImage); + auto callback = [=, captureCallback = std::move(captureCallback)](const QImage &image) { + if (nullImageHandling == ImageCacheCollectorNullImageHandling::CaptureNullImage + || !image.isNull()) { + QSize smallImageSize = image.size().scaled(QSize{96, 96}.boundedTo(image.size()), + Qt::KeepAspectRatio); + QImage smallImage = image.isNull() ? QImage{} : image.scaled(smallImageSize); + captureCallback(image, smallImage); + } }; if (!m_target) @@ -126,25 +130,17 @@ void ImageCacheCollector::start(Utils::SmallStringView name, abortCallback(ImageCache::AbortReason::Failed); } -std::pair ImageCacheCollector::createImage(Utils::SmallStringView filePath, - Utils::SmallStringView state, - const ImageCache::AuxiliaryData &auxiliaryData) +std::pair ImageCacheCollector::createImage(Utils::SmallStringView, + Utils::SmallStringView, + const ImageCache::AuxiliaryData &) { - Q_UNUSED(filePath) - Q_UNUSED(state) - Q_UNUSED(auxiliaryData) - return {}; } -QIcon ImageCacheCollector::createIcon(Utils::SmallStringView filePath, - Utils::SmallStringView state, - const ImageCache::AuxiliaryData &auxiliaryData) +QIcon ImageCacheCollector::createIcon(Utils::SmallStringView, + Utils::SmallStringView, + const ImageCache::AuxiliaryData &) { - Q_UNUSED(filePath) - Q_UNUSED(state) - Q_UNUSED(auxiliaryData) - return {}; } diff --git a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.h b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.h index a9deaf9bf7d..2e2803114ac 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.h +++ b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.h @@ -45,10 +45,13 @@ class ImageCacheConnectionManager; class RewriterView; class NodeInstanceView; +enum class ImageCacheCollectorNullImageHandling { CaptureNullImage, DontCaptureNullImage }; + class ImageCacheCollector final : public ImageCacheCollectorInterface { public: - ImageCacheCollector(ImageCacheConnectionManager &connectionManager); + ImageCacheCollector(ImageCacheConnectionManager &connectionManager, + ImageCacheCollectorNullImageHandling nullImageHandling = {}); ~ImageCacheCollector(); @@ -72,6 +75,7 @@ public: private: ImageCacheConnectionManager &m_connectionManager; QPointer m_target; + ImageCacheCollectorNullImageHandling nullImageHandling{}; }; } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp index 0d75c6a97af..3e5b4bf6297 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp @@ -81,7 +81,8 @@ public: Sqlite::LockingMode::Normal}; ImageCacheStorage storage{database}; ImageCacheConnectionManager connectionManager; - ImageCacheCollector collector{connectionManager}; + ImageCacheCollector collector{connectionManager, + ImageCacheCollectorNullImageHandling::DontCaptureNullImage}; ImageCacheGenerator generator{collector, storage}; TimeStampProvider timeStampProvider; AsynchronousExplicitImageCache cache{storage}; diff --git a/tests/unit/unittest/asynchronousimagefactory-test.cpp b/tests/unit/unittest/asynchronousimagefactory-test.cpp index b0245251441..ab968f220e3 100644 --- a/tests/unit/unittest/asynchronousimagefactory-test.cpp +++ b/tests/unit/unittest/asynchronousimagefactory-test.cpp @@ -113,12 +113,10 @@ TEST_F(AsynchronousImageFactory, RequestImageWithAuxiliaryDataRequestImageFromGe TEST_F(AsynchronousImageFactory, DontRequestImageRequestImageFromGeneratorIfFileWasNotUpdated) { - ON_CALL(mockStorage, fetchHasImage(Eq("/path/to/Component.qml"))).WillByDefault([&](auto) { + ON_CALL(mockStorage, fetchModifiedImageTime(Eq("/path/to/Component.qml"))).WillByDefault([&](auto) { notification.notify(); - return true; + return Sqlite::TimeStamp{124}; }); - ON_CALL(mockStorage, fetchModifiedImageTime(Eq("/path/to/Component.qml"))) - .WillByDefault(Return(Sqlite::TimeStamp{124})); ON_CALL(mockTimeStampProvider, timeStamp(Eq("/path/to/Component.qml"))) .WillByDefault(Return(Sqlite::TimeStamp{124})); @@ -128,28 +126,6 @@ TEST_F(AsynchronousImageFactory, DontRequestImageRequestImageFromGeneratorIfFile notification.wait(); } -TEST_F(AsynchronousImageFactory, - RequestImageRequestImageFromGeneratorIfFileWasNotUpdatedButTheImageIsNull) -{ - ON_CALL(mockStorage, fetchHasImage(Eq("/path/to/Component.qml"))).WillByDefault(Return(false)); - ON_CALL(mockStorage, fetchModifiedImageTime(Eq("/path/to/Component.qml"))) - .WillByDefault(Return(Sqlite::TimeStamp{124})); - ON_CALL(mockTimeStampProvider, timeStamp(Eq("/path/to/Component.qml"))) - .WillByDefault(Return(Sqlite::TimeStamp{124})); - - EXPECT_CALL(mockGenerator, - generateImage(Eq("/path/to/Component.qml"), - IsEmpty(), - Eq(Sqlite::TimeStamp{124}), - _, - _, - VariantWith(Utils::monostate{}))) - .WillRepeatedly([&](auto, auto, auto, auto, auto, auto) { notification.notify(); }); - - factory.generate("/path/to/Component.qml"); - notification.wait(); -} - TEST_F(AsynchronousImageFactory, CleanRemovesEntries) { EXPECT_CALL(mockGenerator, generateImage(Eq("/path/to/Component1.qml"), _, _, _, _, _)) From 7ce13691ff2764e317f357fac4931e7bc16d8091 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 11 Jan 2022 11:08:49 +0100 Subject: [PATCH 04/19] QmlDesigner: Remove generator from AsynchronousImageFactory The generator was introduced to decouple the generation thread from the fetch thread. But for the factory you only generate the image so you can use the factory thread for the collector. Change-Id: If569defba0c52dd85b19451a78f0daf5043b4d01 Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: Thomas Hartmann --- .../imagecache/asynchronousimagefactory.cpp | 30 ++--- .../imagecache/asynchronousimagefactory.h | 11 +- .../qmldesigner/qmldesignerprojectmanager.cpp | 3 +- .../asynchronousimagefactory-test.cpp | 106 ++++++++---------- 4 files changed, 70 insertions(+), 80 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp index 367f53afe54..81c7aa53eef 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp @@ -25,6 +25,7 @@ #include "asynchronousimagefactory.h" +#include "imagecachecollector.h" #include "imagecachegenerator.h" #include "imagecachestorage.h" #include "timestampprovider.h" @@ -32,11 +33,11 @@ namespace QmlDesigner { AsynchronousImageFactory::AsynchronousImageFactory(ImageCacheStorageInterface &storage, - ImageCacheGeneratorInterface &generator, - TimeStampProviderInterface &timeStampProvider) + TimeStampProviderInterface &timeStampProvider, + ImageCacheCollectorInterface &collector) : m_storage(storage) - , m_generator(generator) , m_timeStampProvider(timeStampProvider) + , m_collector(collector) { m_backgroundThread = std::thread{[this] { while (isRunning()) { @@ -45,8 +46,8 @@ AsynchronousImageFactory::AsynchronousImageFactory(ImageCacheStorageInterface &s entry->extraId, std::move(entry->auxiliaryData), m_storage, - m_generator, - m_timeStampProvider); + m_timeStampProvider, + m_collector); } waitForEntries(); @@ -107,8 +108,8 @@ void AsynchronousImageFactory::request(Utils::SmallStringView name, Utils::SmallStringView extraId, ImageCache::AuxiliaryData auxiliaryData, ImageCacheStorageInterface &storage, - ImageCacheGeneratorInterface &generator, - TimeStampProviderInterface &timeStampProvider) + TimeStampProviderInterface &timeStampProvider, + ImageCacheCollectorInterface &collector) { const auto id = extraId.empty() ? Utils::PathString{name} : Utils::PathString::join({name, "+", extraId}); @@ -118,19 +119,20 @@ void AsynchronousImageFactory::request(Utils::SmallStringView name, if (currentModifiedTime == storageModifiedTime) return; + auto capture = [=](const QImage &image, const QImage &smallImage) { + m_storage.storeImage(id, currentModifiedTime, image, smallImage); + }; - generator.generateImage(name, - extraId, - currentModifiedTime, - ImageCache::CaptureImageWithSmallImageCallback{}, - ImageCache::AbortCallback{}, - std::move(auxiliaryData)); + collector.start(name, + extraId, + std::move(auxiliaryData), + std::move(capture), + ImageCache::AbortCallback{}); } void AsynchronousImageFactory::clean() { clearEntries(); - m_generator.clean(); } void AsynchronousImageFactory::wait() diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h index d9da32d3a5b..1331e1af415 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h +++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h @@ -39,15 +39,14 @@ namespace QmlDesigner { class TimeStampProviderInterface; class ImageCacheStorageInterface; -class ImageCacheGeneratorInterface; class ImageCacheCollectorInterface; class AsynchronousImageFactory { public: AsynchronousImageFactory(ImageCacheStorageInterface &storage, - ImageCacheGeneratorInterface &generator, - TimeStampProviderInterface &timeStampProvider); + TimeStampProviderInterface &timeStampProvider, + ImageCacheCollectorInterface &collector); ~AsynchronousImageFactory(); @@ -83,8 +82,8 @@ private: Utils::SmallStringView extraId, ImageCache::AuxiliaryData auxiliaryData, ImageCacheStorageInterface &storage, - ImageCacheGeneratorInterface &generator, - TimeStampProviderInterface &timeStampProvider); + TimeStampProviderInterface &timeStampProvider, + ImageCacheCollectorInterface &collector); void wait(); void clearEntries(); void stopThread(); @@ -95,8 +94,8 @@ private: std::condition_variable m_condition; std::thread m_backgroundThread; ImageCacheStorageInterface &m_storage; - ImageCacheGeneratorInterface &m_generator; TimeStampProviderInterface &m_timeStampProvider; + ImageCacheCollectorInterface &m_collector; bool m_finishing{false}; }; diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp index 3e5b4bf6297..9ae83b54516 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp @@ -83,10 +83,9 @@ public: ImageCacheConnectionManager connectionManager; ImageCacheCollector collector{connectionManager, ImageCacheCollectorNullImageHandling::DontCaptureNullImage}; - ImageCacheGenerator generator{collector, storage}; TimeStampProvider timeStampProvider; AsynchronousExplicitImageCache cache{storage}; - AsynchronousImageFactory factory{storage, generator, timeStampProvider}; + AsynchronousImageFactory factory{storage, timeStampProvider, collector}; }; class QmlDesignerProjectManagerProjectData diff --git a/tests/unit/unittest/asynchronousimagefactory-test.cpp b/tests/unit/unittest/asynchronousimagefactory-test.cpp index ab968f220e3..dfc40ceb5ba 100644 --- a/tests/unit/unittest/asynchronousimagefactory-test.cpp +++ b/tests/unit/unittest/asynchronousimagefactory-test.cpp @@ -25,6 +25,7 @@ #include "googletest.h" +#include "imagecachecollectormock.h" #include "mockimagecachegenerator.h" #include "mockimagecachestorage.h" #include "mocktimestampprovider.h" @@ -41,67 +42,64 @@ class AsynchronousImageFactory : public testing::Test protected: AsynchronousImageFactory() { - ON_CALL(mockTimeStampProvider, timeStamp(Eq("/path/to/Component.qml"))) + ON_CALL(timeStampProviderMock, timeStamp(Eq("/path/to/Component.qml"))) .WillByDefault(Return(Sqlite::TimeStamp{123})); } protected: Notification notification; Notification waitInThread; - NiceMock mockStorage; - NiceMock mockGenerator; - NiceMock mockTimeStampProvider; - QmlDesigner::AsynchronousImageFactory factory{mockStorage, mockGenerator, mockTimeStampProvider}; + NiceMock storageMock; + NiceMock collectorMock; + NiceMock timeStampProviderMock; + QmlDesigner::AsynchronousImageFactory factory{storageMock, timeStampProviderMock, collectorMock}; QImage image1{10, 10, QImage::Format_ARGB32}; QImage smallImage1{1, 1, QImage::Format_ARGB32}; }; -TEST_F(AsynchronousImageFactory, RequestImageRequestImageFromGenerator) +TEST_F(AsynchronousImageFactory, RequestImageRequestImageFromCollector) { - EXPECT_CALL(mockGenerator, - generateImage(Eq("/path/to/Component.qml"), - IsEmpty(), - Eq(Sqlite::TimeStamp{123}), - _, - _, - VariantWith(Utils::monostate{}))) - .WillRepeatedly([&](auto, auto, auto, auto, auto, auto) { notification.notify(); }); + EXPECT_CALL(collectorMock, + start(Eq("/path/to/Component.qml"), + IsEmpty(), + VariantWith(Utils::monostate{}), + _, + _)) + .WillRepeatedly([&](auto, auto, auto, auto, auto) { notification.notify(); }); factory.generate("/path/to/Component.qml"); notification.wait(); } -TEST_F(AsynchronousImageFactory, RequestImageWithExtraIdRequestImageFromGenerator) +TEST_F(AsynchronousImageFactory, RequestImageWithExtraIdRequestImageFromCollector) { - EXPECT_CALL(mockGenerator, - generateImage(Eq("/path/to/Component.qml"), - Eq("foo"), - Eq(Sqlite::TimeStamp{123}), - _, - _, - VariantWith(Utils::monostate{}))) - .WillRepeatedly([&](auto, auto, auto, auto, auto, auto) { notification.notify(); }); + EXPECT_CALL(collectorMock, + start(Eq("/path/to/Component.qml"), + Eq("foo"), + VariantWith(Utils::monostate{}), + _, + _)) + .WillRepeatedly([&](auto, auto, auto, auto, auto) { notification.notify(); }); factory.generate("/path/to/Component.qml", "foo"); notification.wait(); } -TEST_F(AsynchronousImageFactory, RequestImageWithAuxiliaryDataRequestImageFromGenerator) +TEST_F(AsynchronousImageFactory, RequestImageWithAuxiliaryDataRequestImageFromCollector) { std::vector sizes{{20, 11}}; - EXPECT_CALL(mockGenerator, - generateImage(Eq("/path/to/Component.qml"), - Eq("foo"), - Eq(Sqlite::TimeStamp{123}), - _, - _, - VariantWith(AllOf( - Field(&FontCollectorSizesAuxiliaryData::sizes, - ElementsAre(QSize{20, 11})), - Field(&FontCollectorSizesAuxiliaryData::colorName, Eq(u"color")), - Field(&FontCollectorSizesAuxiliaryData::text, Eq(u"some text")))))) - .WillRepeatedly([&](auto, auto, auto, auto, auto, auto) { notification.notify(); }); + EXPECT_CALL(collectorMock, + start(Eq("/path/to/Component.qml"), + Eq("foo"), + VariantWith( + AllOf(Field(&FontCollectorSizesAuxiliaryData::sizes, + ElementsAre(QSize{20, 11})), + Field(&FontCollectorSizesAuxiliaryData::colorName, Eq(u"color")), + Field(&FontCollectorSizesAuxiliaryData::text, Eq(u"some text")))), + _, + _)) + .WillRepeatedly([&](auto, auto, auto, auto, auto) { notification.notify(); }); factory.generate("/path/to/Component.qml", "foo", @@ -111,16 +109,16 @@ TEST_F(AsynchronousImageFactory, RequestImageWithAuxiliaryDataRequestImageFromGe notification.wait(); } -TEST_F(AsynchronousImageFactory, DontRequestImageRequestImageFromGeneratorIfFileWasNotUpdated) +TEST_F(AsynchronousImageFactory, DontRequestImageRequestImageFromCollectorIfFileWasNotUpdated) { - ON_CALL(mockStorage, fetchModifiedImageTime(Eq("/path/to/Component.qml"))).WillByDefault([&](auto) { + ON_CALL(storageMock, fetchModifiedImageTime(Eq("/path/to/Component.qml"))).WillByDefault([&](auto) { notification.notify(); return Sqlite::TimeStamp{124}; }); - ON_CALL(mockTimeStampProvider, timeStamp(Eq("/path/to/Component.qml"))) + ON_CALL(timeStampProviderMock, timeStamp(Eq("/path/to/Component.qml"))) .WillByDefault(Return(Sqlite::TimeStamp{124})); - EXPECT_CALL(mockGenerator, generateImage(_, _, _, _, _, _)).Times(0); + EXPECT_CALL(collectorMock, start(_, _, _, _, _)).Times(0); factory.generate("/path/to/Component.qml"); notification.wait(); @@ -128,36 +126,28 @@ TEST_F(AsynchronousImageFactory, DontRequestImageRequestImageFromGeneratorIfFile TEST_F(AsynchronousImageFactory, CleanRemovesEntries) { - EXPECT_CALL(mockGenerator, generateImage(Eq("/path/to/Component1.qml"), _, _, _, _, _)) - .WillRepeatedly([&](auto, auto, auto, auto, auto, auto) { waitInThread.wait(); }); + EXPECT_CALL(collectorMock, start(Eq("/path/to/Component1.qml"), _, _, _, _)) + .WillRepeatedly([&](auto, auto, auto, auto, auto) { waitInThread.wait(); }); factory.generate("/path/to/Component1.qml"); - EXPECT_CALL(mockGenerator, generateImage(Eq("/path/to/Component3.qml"), _, _, _, _, _)).Times(0); + EXPECT_CALL(collectorMock, start(Eq("/path/to/Component3.qml"), _, _, _, _)).Times(0); factory.generate("/path/to/Component3.qml"); factory.clean(); waitInThread.notify(); } -TEST_F(AsynchronousImageFactory, CleanCallsGeneratorClean) -{ - EXPECT_CALL(mockGenerator, clean()).Times(AtLeast(1)); - - factory.clean(); -} - TEST_F(AsynchronousImageFactory, AfterCleanNewJobsWorks) { factory.clean(); - EXPECT_CALL(mockGenerator, - generateImage(Eq("/path/to/Component.qml"), - IsEmpty(), - Eq(Sqlite::TimeStamp{123}), - _, - _, - VariantWith(Utils::monostate{}))) - .WillRepeatedly([&](auto, auto, auto, auto, auto, auto) { notification.notify(); }); + EXPECT_CALL(collectorMock, + start(Eq("/path/to/Component.qml"), + IsEmpty(), + VariantWith(Utils::monostate{}), + _, + _)) + .WillRepeatedly([&](auto, auto, auto, auto, auto) { notification.notify(); }); factory.generate("/path/to/Component.qml"); notification.wait(); From 68ac61193ca09bd52b4bd3a5f1f5193afa52f1d1 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 11 Jan 2022 14:52:38 +0100 Subject: [PATCH 05/19] QmlDesigner: Refresh preview image every hour It is to assumed that the preview image will be changed and we don't need to collect the time stamps of the files. Task-number: QDS-5924 Change-Id: Icf5540d7bcc9da17a1497641f6189f35eb47f5d2 Reviewed-by: Qt CI Bot Reviewed-by: Reviewed-by: Thomas Hartmann --- src/libs/sqlite/sqlitetimestamp.h | 11 +++++ .../imagecache/asynchronousimagefactory.cpp | 6 ++- .../imagecache/timestampprovider.h | 1 + .../imagecache/timestampproviderinterface.h | 1 + .../qmldesigner/qmldesignerprojectmanager.cpp | 19 +++++++- .../asynchronousimagefactory-test.cpp | 48 ++++++++++++++++++- tests/unit/unittest/mocktimestampprovider.h | 1 + 7 files changed, 82 insertions(+), 5 deletions(-) diff --git a/src/libs/sqlite/sqlitetimestamp.h b/src/libs/sqlite/sqlitetimestamp.h index c7c100ec454..eb98d8852cc 100644 --- a/src/libs/sqlite/sqlitetimestamp.h +++ b/src/libs/sqlite/sqlitetimestamp.h @@ -41,6 +41,17 @@ public: } friend bool operator!=(TimeStamp first, TimeStamp second) { return !(first == second); } + friend bool operator<(TimeStamp first, TimeStamp second) { return first.value < second.value; } + + friend TimeStamp operator+(TimeStamp first, TimeStamp second) + { + return first.value + second.value; + } + + friend TimeStamp operator-(TimeStamp first, TimeStamp second) + { + return first.value - second.value; + } bool isValid() const { return value >= 0; } diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp index 81c7aa53eef..83cc9372302 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp @@ -28,7 +28,7 @@ #include "imagecachecollector.h" #include "imagecachegenerator.h" #include "imagecachestorage.h" -#include "timestampprovider.h" +#include "timestampproviderinterface.h" namespace QmlDesigner { @@ -116,9 +116,11 @@ void AsynchronousImageFactory::request(Utils::SmallStringView name, const auto currentModifiedTime = timeStampProvider.timeStamp(name); const auto storageModifiedTime = storage.fetchModifiedImageTime(id); + const auto pause = timeStampProvider.pause(); - if (currentModifiedTime == storageModifiedTime) + if (currentModifiedTime < (storageModifiedTime + pause)) return; + auto capture = [=](const QImage &image, const QImage &smallImage) { m_storage.storeImage(id, currentModifiedTime, image, smallImage); }; diff --git a/src/plugins/qmldesigner/designercore/imagecache/timestampprovider.h b/src/plugins/qmldesigner/designercore/imagecache/timestampprovider.h index 8acc5fcb588..e9d2b60550d 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/timestampprovider.h +++ b/src/plugins/qmldesigner/designercore/imagecache/timestampprovider.h @@ -33,6 +33,7 @@ class TimeStampProvider : public TimeStampProviderInterface { public: Sqlite::TimeStamp timeStamp(Utils::SmallStringView name) const override; + Sqlite::TimeStamp pause() const override { return 0; } }; } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/imagecache/timestampproviderinterface.h b/src/plugins/qmldesigner/designercore/imagecache/timestampproviderinterface.h index 33cffc9b49c..4babac27965 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/timestampproviderinterface.h +++ b/src/plugins/qmldesigner/designercore/imagecache/timestampproviderinterface.h @@ -36,6 +36,7 @@ class TimeStampProviderInterface { public: virtual Sqlite::TimeStamp timeStamp(Utils::SmallStringView name) const = 0; + virtual Sqlite::TimeStamp pause() const = 0; protected: ~TimeStampProviderInterface() = default; diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp index 9ae83b54516..2d5359f86c5 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp @@ -50,7 +50,7 @@ #include #include #include -#include +#include #include @@ -70,6 +70,23 @@ QString defaultImagePath() return qobject_cast<::QmlProjectManager::QmlBuildSystem *>(target->buildSystem()); } +class TimeStampProvider : public TimeStampProviderInterface +{ +public: + Sqlite::TimeStamp timeStamp(Utils::SmallStringView) const override + { + auto now = std::chrono::steady_clock::now(); + + return std::chrono::duration_cast(now.time_since_epoch()).count(); + } + + Sqlite::TimeStamp pause() const override + { + using namespace std::chrono_literals; + return std::chrono::duration_cast(1h).count(); + } +}; + } // namespace class PreviewImageCacheData diff --git a/tests/unit/unittest/asynchronousimagefactory-test.cpp b/tests/unit/unittest/asynchronousimagefactory-test.cpp index dfc40ceb5ba..cc23374a575 100644 --- a/tests/unit/unittest/asynchronousimagefactory-test.cpp +++ b/tests/unit/unittest/asynchronousimagefactory-test.cpp @@ -109,14 +109,16 @@ TEST_F(AsynchronousImageFactory, RequestImageWithAuxiliaryDataRequestImageFromCo notification.wait(); } -TEST_F(AsynchronousImageFactory, DontRequestImageRequestImageFromCollectorIfFileWasNotUpdated) +TEST_F(AsynchronousImageFactory, DontRequestImageRequestImageFromCollectorIfFileWasUpdatedRecently) { ON_CALL(storageMock, fetchModifiedImageTime(Eq("/path/to/Component.qml"))).WillByDefault([&](auto) { notification.notify(); return Sqlite::TimeStamp{124}; }); ON_CALL(timeStampProviderMock, timeStamp(Eq("/path/to/Component.qml"))) - .WillByDefault(Return(Sqlite::TimeStamp{124})); + .WillByDefault(Return(Sqlite::TimeStamp{125})); + ON_CALL(timeStampProviderMock, timeStamp(Eq("/path/to/Component.qml"))) + .WillByDefault(Return(Sqlite::TimeStamp{1})); EXPECT_CALL(collectorMock, start(_, _, _, _, _)).Times(0); @@ -124,6 +126,22 @@ TEST_F(AsynchronousImageFactory, DontRequestImageRequestImageFromCollectorIfFile notification.wait(); } +TEST_F(AsynchronousImageFactory, RequestImageRequestImageFromCollectorIfFileWasNotUpdatedRecently) +{ + ON_CALL(storageMock, fetchModifiedImageTime(Eq("/path/to/Component.qml"))) + .WillByDefault(Return(Sqlite::TimeStamp{123})); + ON_CALL(timeStampProviderMock, timeStamp(Eq("/path/to/Component.qml"))) + .WillByDefault(Return(Sqlite::TimeStamp{125})); + ON_CALL(timeStampProviderMock, pause()).WillByDefault(Return(Sqlite::TimeStamp{1})); + + EXPECT_CALL(collectorMock, start(_, _, _, _, _)).WillOnce([&](auto, auto, auto, auto, auto) { + notification.notify(); + }); + + factory.generate("/path/to/Component.qml"); + notification.wait(); +} + TEST_F(AsynchronousImageFactory, CleanRemovesEntries) { EXPECT_CALL(collectorMock, start(Eq("/path/to/Component1.qml"), _, _, _, _)) @@ -153,4 +171,30 @@ TEST_F(AsynchronousImageFactory, AfterCleanNewJobsWorks) notification.wait(); } +TEST_F(AsynchronousImageFactory, CaptureImageCallbackStoresImage) +{ + ON_CALL(storageMock, fetchModifiedImageTime(Eq("/path/to/Component.qml"))) + .WillByDefault(Return(Sqlite::TimeStamp{123})); + ON_CALL(timeStampProviderMock, timeStamp(Eq("/path/to/Component.qml"))) + .WillByDefault(Return(Sqlite::TimeStamp{125})); + ON_CALL(timeStampProviderMock, pause()).WillByDefault(Return(Sqlite::TimeStamp{1})); + ON_CALL(collectorMock, + start(Eq("/path/to/Component.qml"), + Eq("id"), + VariantWith(Utils::monostate{}), + _, + _)) + .WillByDefault([&](auto, auto, auto, auto capture, auto) { capture(image1, smallImage1); }); + + EXPECT_CALL(storageMock, + storeImage(Eq("/path/to/Component.qml+id"), + Sqlite::TimeStamp{125}, + Eq(image1), + Eq(smallImage1))) + .WillOnce([&](auto, auto, auto, auto) { notification.notify(); }); + + factory.generate("/path/to/Component.qml", "id"); + notification.wait(); +} + } // namespace diff --git a/tests/unit/unittest/mocktimestampprovider.h b/tests/unit/unittest/mocktimestampprovider.h index 0adad4c0305..39d58790f22 100644 --- a/tests/unit/unittest/mocktimestampprovider.h +++ b/tests/unit/unittest/mocktimestampprovider.h @@ -33,4 +33,5 @@ class MockTimeStampProvider : public QmlDesigner::TimeStampProviderInterface { public: MOCK_METHOD(Sqlite::TimeStamp, timeStamp, (Utils::SmallStringView name), (const, override)); + MOCK_METHOD(Sqlite::TimeStamp, pause, (), (const, override)); }; From 146225b94b125adf374bcdfeb6873fc3deb9cf37 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Wed, 12 Jan 2022 12:55:26 +0100 Subject: [PATCH 06/19] QmlDesigner: Don't call an empty abort callback Change-Id: I753aaa1ad693bb9ea5b34f1b50af40e2ef616c30 Reviewed-by: Thomas Hartmann --- .../designercore/imagecache/imagecachecollector.cpp | 5 +++-- .../designercore/instances/baseconnectionmanager.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp index c32dd1e1839..b4f50848b9a 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp @@ -91,7 +91,8 @@ void ImageCacheCollector::start(Utils::SmallStringView name, model->setRewriterView(&rewriterView); if (rewriterView.inErrorState() || !rewriterView.rootModelNode().metaInfo().isGraphicalItem()) { - abortCallback(ImageCache::AbortReason::Failed); + if (abortCallback) + abortCallback(ImageCache::AbortReason::Failed); return; } @@ -126,7 +127,7 @@ void ImageCacheCollector::start(Utils::SmallStringView name, model->setNodeInstanceView({}); model->setRewriterView({}); - if (!capturedDataArrived) + if (!capturedDataArrived && abortCallback) abortCallback(ImageCache::AbortReason::Failed); } diff --git a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp index 39590beadf7..f1e1e933b65 100644 --- a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp +++ b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp @@ -137,7 +137,8 @@ void BaseConnectionManager::callCrashCallback() { std::lock_guard lock{m_callbackMutex}; - m_crashCallback(); + if (m_crashCallback) + m_crashCallback(); } } // namespace QmlDesigner From 1c8baecaf2c33a9a5dc94d4962eb0ef1adc309cd Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 12 Jan 2022 18:27:48 +0100 Subject: [PATCH 07/19] StudioWelcome: Add support for version and resolution in description Change-Id: I6e404907b96b7f7988da8622e37217a756a1ca9f Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: Thomas Hartmann --- .../studiowelcome/studiowelcomeplugin.cpp | 66 +++++++++++++++++-- 1 file changed, 59 insertions(+), 7 deletions(-) diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index e8271bb9eed..123e9154cc1 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -268,6 +268,24 @@ int ProjectModel::rowCount(const QModelIndex &) const return ProjectExplorer::ProjectExplorerPlugin::recentProjects().count(); } +QString getQDSVersion(const QString &projectFilePath) +{ + const QString defaultReturn = ""; + Utils::FileReader reader; + if (!reader.fetch(Utils::FilePath::fromString(projectFilePath))) + return defaultReturn; + + const QByteArray data = reader.data(); + + QRegularExpression regexp(R"x(qdsVersion: "(.*)")x"); + QRegularExpressionMatch match = regexp.match(QString::fromUtf8(data)); + + if (!match.hasMatch()) + return defaultReturn; + + return ProjectModel::tr("Created with Qt Design Studio version: %1").arg(match.captured(1)); +} + QString getMainQmlFile(const QString &projectFilePath) { const QString defaultReturn = "content/App.qml"; @@ -293,8 +311,8 @@ QString appQmlFile(const QString &projectFilePath) static QString fromCamelCase(const QString &s) { - static QRegularExpression regExp1 {"(.)([A-Z][a-z]+)"}; - static QRegularExpression regExp2 {"([a-z0-9])([A-Z])"}; + const QRegularExpression regExp1 {"(.)([A-Z][a-z]+)"}; + const QRegularExpression regExp2 {"([a-z0-9])([A-Z])"}; QString result = s; result.replace(regExp1, "\\1 \\2"); result.replace(regExp2, "\\1 \\2"); @@ -302,15 +320,49 @@ static QString fromCamelCase(const QString &s) { return result; } +static QString resolutionFromConstants(const QString &projectFilePath) +{ + const QFileInfo fileInfo(projectFilePath); + const QString fileName = fileInfo.dir().absolutePath() + + "/" + "imports" + "/" + fileInfo.baseName() + "/Constants.qml"; + + Utils::FileReader reader; + if (!reader.fetch(Utils::FilePath::fromString(fileName))) + return {}; + + const QByteArray data = reader.data(); + + const QRegularExpression regexpWidth(R"x(readonly\s+property\s+int\s+width:\s+(\d*))x"); + const QRegularExpression regexpHeight(R"x(readonly\s+property\s+int\s+height:\s+(\d*))x"); + + int width = -1; + int height = -1; + + QRegularExpressionMatch match = regexpHeight.match(QString::fromUtf8(data)); + if (match.hasMatch()) + height = match.captured(1).toInt(); + + match = regexpWidth.match(QString::fromUtf8(data)); + if (match.hasMatch()) + width = match.captured(1).toInt(); + + if (width > 0 && height > 0) + return ProjectModel::tr("Resolution: %1x%2").arg(width).arg(height); + + return {}; +} + static QString description(const QString &projectFilePath) { - const QString created = "Created: " + - QFileInfo(projectFilePath).fileTime(QFileDevice::FileBirthTime).toString(); - const QString lastEdited = "Last Edited: " + - QFileInfo(projectFilePath).fileTime(QFileDevice::FileModificationTime).toString(); + const QString created = ProjectModel::tr("Created: %1").arg( + QFileInfo(projectFilePath).fileTime(QFileDevice::FileBirthTime).toString()); + const QString lastEdited = ProjectModel::tr("Last Edited: %1").arg( + QFileInfo(projectFilePath).fileTime(QFileDevice::FileModificationTime).toString()); - return fromCamelCase(QFileInfo(projectFilePath).baseName()) + "\n" + created + "\n" + lastEdited; + return fromCamelCase(QFileInfo(projectFilePath).baseName()) + "\n\n" + created + "\n" + lastEdited + + "\n" + resolutionFromConstants(projectFilePath) + + "\n" + getQDSVersion(projectFilePath); } static QString tags(const QString &projectFilePath) From 4f96957b9130955c9fd5260aa6a4c63677233286 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 11 Jan 2022 19:46:14 +0100 Subject: [PATCH 08/19] StudioWelcome: Show the splash screen at least once if the version changes The version of the last QDS instance launched is stored in QML/Designer/lastQDSVersion. Whenever the version does change we show the splash screen. Change-Id: Idf94e73446f0498203d979b45378d85e70bd4106 Reviewed-by: Qt CI Bot Reviewed-by: Reviewed-by: Thomas Hartmann --- .../studiowelcome/studiowelcomeplugin.cpp | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index 123e9154cc1..bead95e667d 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -28,6 +28,8 @@ #include "qdsnewdialog.h" +#include + #include #include #include @@ -490,6 +492,26 @@ bool StudioWelcomePlugin::initialize(const QStringList &arguments, QString *erro return true; } +static bool showSplashScreen() +{ + const QString lastQDSVersionEntry = "QML/Designer/lastQDSVersion"; + + QSettings *settings = Core::ICore::settings(); + + const QString lastQDSVersion = settings->value(lastQDSVersionEntry).toString(); + + + const QString currentVersion = Core::Constants::IDE_VERSION_DISPLAY; + + if (currentVersion != lastQDSVersion) { + settings->setValue(lastQDSVersionEntry, currentVersion); + return true; + } + + return Utils::CheckableMessageBox::shouldAskAgain(Core::ICore::settings(), + DO_NOT_SHOW_SPLASHSCREEN_AGAIN_KEY); +} + void StudioWelcomePlugin::extensionsInitialized() { Core::ModeManager::activateMode(m_welcomeMode->id()); @@ -497,8 +519,7 @@ void StudioWelcomePlugin::extensionsInitialized() // 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)) { + if (showSplashScreen()) { connect(Core::ICore::instance(), &Core::ICore::coreOpened, this, [this] { s_view = new QQuickWidget(Core::ICore::dialogParent()); s_view->setResizeMode(QQuickWidget::SizeRootObjectToView); From 5e4ebde703d923026abb41dbeaf692966740a4fd Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 13 Jan 2022 06:56:21 +0100 Subject: [PATCH 09/19] Sqlite: Fix compile with old Xcode Change-Id: Idef9562282da784a152af5eddaeea7968c8d2c8c Reviewed-by: Reviewed-by: Eike Ziller --- src/libs/sqlite/sqlitealgorithms.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libs/sqlite/sqlitealgorithms.h b/src/libs/sqlite/sqlitealgorithms.h index df1ea44d483..4f4a6ed6b5d 100644 --- a/src/libs/sqlite/sqlitealgorithms.h +++ b/src/libs/sqlite/sqlitealgorithms.h @@ -25,6 +25,7 @@ #pragma once +#include #include #include @@ -62,7 +63,7 @@ void insertUpdateDelete(SqliteRange &&sqliteRange, auto endSqliteIterator = sqliteRange.end(); auto currentValueIterator = values.begin(); auto endValueIterator = values.end(); - std::optional> lastValue; + Utils::optional> lastValue; while (true) { bool hasMoreValues = currentValueIterator != endValueIterator; From 816f86635ab8d3352045af3a578e6e9397e4b636 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 12 Jan 2022 14:23:49 +0100 Subject: [PATCH 10/19] Add change log for 6.0.2 Change-Id: I02cc0f6d18d6743478703f8859b4a63fd8dc85dd Reviewed-by: hjk Reviewed-by: Leena Miettinen --- dist/changes-6.0.2.md | 82 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 dist/changes-6.0.2.md diff --git a/dist/changes-6.0.2.md b/dist/changes-6.0.2.md new file mode 100644 index 00000000000..2b754672661 --- /dev/null +++ b/dist/changes-6.0.2.md @@ -0,0 +1,82 @@ +Qt Creator 6.0.2 +================ + +Qt Creator version 6.0.2 contains bug fixes. + +The most important changes are listed in this document. For a complete list of +changes, see the Git log for the Qt Creator sources that you can check out from +the public Git repository. For example: + + git clone git://code.qt.io/qt-creator/qt-creator.git + git log --cherry-pick --pretty=oneline origin/v6.0.1..v6.0.2 + +General +------- + +* Fixed crash in process launcher (QTCREATORBUG-26726) + +Editing +------- + +* Fixed that `Select All` scrolled to bottom (QTCREATORBUG-26736) +* Fixed copying with block selection (QTCREATORBUG-26761) + +### C++ + +* ClangCodeModel + * Fixed performance regression of code completion on Windows and macOS + (QTCREATORBUG-26754) + +### Python + +* Fixed working directory for `REPL` + +### Modeling + +* Fixed missing options in property editor (QTCREATORBUG-26760) + +Projects +-------- + +* Fixed that closing application in `Application Output` pane killed process + even if `Keep Running` was selected +* Fixed filtering in target setup page (QTCREATORBUG-26779) + +### CMake + +* Fixed that GUI project wizards did not create GUI applications on Windows and + app bundles on macOS + +Platforms +--------- + +### Linux + +* Fixed that commercial plugins linked to libGLX and libOpenGL + (QTCREATORBUG-26744) + +### macOS + +* Fixed crash when switching screen configuration (QTCREATORBUG-26019) + +Credits for these changes go to: +-------------------------------- +Allan Sandfeld Jensen +André Pönitz +Antti Määttä +Christiaan Janssen +Christian Kandeler +Christian Stenger +Cristian Adam +David Schulz +Eike Ziller +Henning Gruendl +Jaroslaw Kobus +Knud Dollereder +Leena Miettinen +Marco Bubke +Mats Honkamaa +Samuel Ghinet +Tapani Mattila +Thomas Hartmann +Tuomo Pelkonen From b88e9ba9b574c015b62a5c274eb2a4fb889bed55 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 12 Jan 2022 17:22:32 +0100 Subject: [PATCH 11/19] ProjectExplorer: Consider MSVC 2022 as base for clang-cl Amends 08b6e0239f. Fixes: QTCREATORBUG-26721 Change-Id: I04d65a39c6d7001081d748ca5f15361e30e2fc50 Reviewed-by: Reviewed-by: David Schulz --- src/plugins/projectexplorer/msvctoolchain.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp index ec0bfdcfdcc..c352bba893b 100644 --- a/src/plugins/projectexplorer/msvctoolchain.cpp +++ b/src/plugins/projectexplorer/msvctoolchain.cpp @@ -1572,7 +1572,9 @@ static const MsvcToolChain *selectMsvcToolChain(const QString &displayedVarsBat, QTC_CHECK(displayedVarsBat.isEmpty()); const QVersionNumber version = clangClVersion(clangClPath); if (version.majorVersion() >= 6) { - toolChain = findMsvcToolChain(wordWidth, Abi::WindowsMsvc2019Flavor); + toolChain = findMsvcToolChain(wordWidth, Abi::WindowsMsvc2022Flavor); + if (!toolChain) + toolChain = findMsvcToolChain(wordWidth, Abi::WindowsMsvc2019Flavor); if (!toolChain) toolChain = findMsvcToolChain(wordWidth, Abi::WindowsMsvc2017Flavor); } From 1463c5d09ff2533ccf62ad613498f8138b0cae09 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 12 Jan 2022 13:23:08 +0100 Subject: [PATCH 12/19] Wizards: Allow QtQuick tests for Qt6 as well Change-Id: I476ad3519ed685ada4f1451906b5ba2fdfe8969b Reviewed-by: David Schulz --- share/qtcreator/templates/wizards/autotest/wizard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/templates/wizards/autotest/wizard.json b/share/qtcreator/templates/wizards/autotest/wizard.json index 9850079be8c..1cc380f6a16 100644 --- a/share/qtcreator/templates/wizards/autotest/wizard.json +++ b/share/qtcreator/templates/wizards/autotest/wizard.json @@ -228,7 +228,7 @@ "enabled": "%{IsTopLevelProject}", "data": { "projectFilePath": "%{ProjectFilePath}", - "requiredFeatures": [ "%{JS: (value('TestFrameWork') === 'QtQuickTest' ? 'QtSupport.Wizards.FeatureQt.5' : ((value('BuildSystem') === 'qmake' || value('TestFrameWork') === 'QtTest') ? 'QtSupport.Wizards.FeatureQt' : 'DeviceType.Desktop' )) }" ] + "requiredFeatures": [ "%{JS: (value('TestFrameWork') === 'QtQuickTest' ? 'QtSupport.Wizards.FeatureQtQuick.2' : ((value('BuildSystem') === 'qmake' || value('TestFrameWork') === 'QtTest') ? 'QtSupport.Wizards.FeatureQt' : 'DeviceType.Desktop' )) }" ] } }, { From 92c42ef9ff6c85053417b206792f9fce4774a198 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 13 Jan 2022 09:55:34 +0100 Subject: [PATCH 13/19] QmlDesigner: Fix content folder location when adding assets Task-number: QDS-5953 Change-Id: Iaa566d2ad9d528f27288c54c1cf0ff97a850dec6 Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: Miikka Heikkinen --- .../components/componentcore/modelnodeoperations.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp index de36baff61a..1daf04e3c51 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp @@ -1044,15 +1044,16 @@ static QString getAssetDefaultDirectory(const QString &assetDir, const QString & { QString adjustedDefaultDirectory = defaultDirectory; - Utils::FilePath assetPath = projectFilePath(); - if (assetPath.pathAppended("content").exists()) - assetPath= assetPath.pathAppended("content"); + Utils::FilePath contentPath = projectFilePath(); - assetPath = assetPath.pathAppended(assetDir); + if (contentPath.pathAppended("content").exists()) + contentPath = contentPath.pathAppended("content"); + + Utils::FilePath assetPath = contentPath.pathAppended(assetDir); if (!assetPath.exists()) { // Create the default asset type directory if it doesn't exist - QDir dir(projectFilePath().toString()); + QDir dir(contentPath.toString()); dir.mkpath(assetDir); } From 0b00c15d3681522b86822a74996d2ede46715b74 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 13 Jan 2022 09:38:03 +0100 Subject: [PATCH 14/19] QmlDesigner: Fix crash Change-Id: I79b9b9ce0ec94027c28d09f49ffe3ebd998f60df Reviewed-by: Marco Bubke Reviewed-by: --- src/plugins/qmldesigner/qmldesignerprojectmanager.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp index 2d5359f86c5..51d62a2bbe5 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp @@ -172,8 +172,10 @@ void QmlDesignerProjectManager::projectAdded(::ProjectExplorer::Project *project void QmlDesignerProjectManager::aboutToRemoveProject(::ProjectExplorer::Project *) { - m_imageCacheData->collector.setTarget(m_projectData->activeTarget); - m_projectData.reset(); + if (m_projectData) { + m_imageCacheData->collector.setTarget(m_projectData->activeTarget); + m_projectData.reset(); + } } void QmlDesignerProjectManager::projectRemoved(::ProjectExplorer::Project *) {} From 5ffad15367e2f5f4db5e36f8ded91e0701d71c40 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 12 Jan 2022 16:26:01 +0100 Subject: [PATCH 15/19] CPaster: Do not fail to paste after connection check dpaste allows one request per second, but we perform a connection check before sending the paste request. This happens too fast and lets the paste fail for the first time. Skip the configuration check as the user gets an error message if it fails. Fixes: QTCREATORBUG-26717 Change-Id: I5661055c0d3ed0894db170c0570a7501af34214e Reviewed-by: Christian Kandeler --- src/plugins/cpaster/dpastedotcomprotocol.cpp | 7 +++---- src/plugins/cpaster/dpastedotcomprotocol.h | 2 -- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/plugins/cpaster/dpastedotcomprotocol.cpp b/src/plugins/cpaster/dpastedotcomprotocol.cpp index da9863bb4d6..847ce8cdb1a 100644 --- a/src/plugins/cpaster/dpastedotcomprotocol.cpp +++ b/src/plugins/cpaster/dpastedotcomprotocol.cpp @@ -140,11 +140,10 @@ void DPasteDotComProtocol::paste( }); } -bool DPasteDotComProtocol::checkConfiguration(QString *errorMessage) +bool DPasteDotComProtocol::checkConfiguration(QString * /*errorMessage*/) { - if (!m_hostKnownOk) - m_hostKnownOk = httpStatus(baseUrl(), errorMessage); - return m_hostKnownOk; + // we need a 1s gap between requests, so skip status check to avoid failing + return true; } void DPasteDotComProtocol::reportError(const QString &message) diff --git a/src/plugins/cpaster/dpastedotcomprotocol.h b/src/plugins/cpaster/dpastedotcomprotocol.h index 9b39052d8cb..363c42153bc 100644 --- a/src/plugins/cpaster/dpastedotcomprotocol.h +++ b/src/plugins/cpaster/dpastedotcomprotocol.h @@ -51,8 +51,6 @@ private: bool checkConfiguration(QString *errorMessage) override; static void reportError(const QString &message); - - bool m_hostKnownOk = false; }; } // namespace CodePaster From 009c91aeecec632eb580d37c39db405f80d388bb Mon Sep 17 00:00:00 2001 From: Mats Honkamaa Date: Thu, 2 Dec 2021 16:11:05 +0200 Subject: [PATCH 16/19] Doc: Add snow and rain particle tutorial Added a tutorial for creating a snow and a rain effect using the particle system. Task-number: QDS-5376 Change-Id: I498adbf78c522f7ca8faee7bba1050f970f96eef Reviewed-by: Miikka Heikkinen Reviewed-by: Leena Miettinen Reviewed-by: Thomas Hartmann --- .../rain-snow-tutorial-default-state.png | Bin 0 -> 25680 bytes .../images/rain-snow-tutorial-navigator.png | Bin 0 -> 10061 bytes .../rain-snow-tutorial-particle-system.png | Bin 0 -> 22604 bytes .../doc/images/rain-snow-tutorial-start.png | Bin 0 -> 5633 bytes .../doc/images/rain-snow-tutorial-states.png | Bin 0 -> 18599 bytes .../examples/doc/images/snow-particles.png | Bin 0 -> 35786 bytes .../examples/doc/rainSnowParticles.qdoc | 198 ++++++++++++++++++ 7 files changed, 198 insertions(+) create mode 100644 doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-default-state.png create mode 100644 doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-navigator.png create mode 100644 doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-particle-system.png create mode 100644 doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-start.png create mode 100644 doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-states.png create mode 100644 doc/qtdesignstudio/examples/doc/images/snow-particles.png create mode 100644 doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc diff --git a/doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-default-state.png b/doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-default-state.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf866bcbf6e1960edf437024e11c187616e2a77 GIT binary patch literal 25680 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-navigator.png b/doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-navigator.png new file mode 100644 index 0000000000000000000000000000000000000000..afdeb7183e06f14d3c6522c34b091554e5b35fec GIT binary patch literal 10061 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 Hl+XkKfJ=kf literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-particle-system.png b/doc/qtdesignstudio/examples/doc/images/rain-snow-tutorial-particle-system.png new file mode 100644 index 0000000000000000000000000000000000000000..45fc09789e1957703fdc8e68dbe31c1d5623efdc GIT binary patch literal 22604 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/examples/doc/images/snow-particles.png b/doc/qtdesignstudio/examples/doc/images/snow-particles.png new file mode 100644 index 0000000000000000000000000000000000000000..2b31ca59c8d05a237b4c8e36c73a1bb25dbfec03 GIT binary patch literal 35786 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

{m1*Lv!m<#n;RWPce6b;Sj+wQ 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 QsQ@JF>FVdQ&MBb@0PLZLDgXcg literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc b/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc new file mode 100644 index 00000000000..49c42a84603 --- /dev/null +++ b/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc @@ -0,0 +1,198 @@ +/**************************************************************************** +** +** Copyright (C) 2021 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Design Studio documentation. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** +****************************************************************************/ + +/*! + \page rain-snow-particle-effect.html + \ingroup gstutorials + + \title Rain and Snow Effect + \brief Illustrates how to create a rain and snow effect with the \QDS + particle system. + + \image snow-particles.png + + The \e{Rain and Snow Effect} tutorial illustrates how you can add a rain and + a snow effect to your + scene using the \QDS particle system. + + You need to download the starting project for this tutorial from + \l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/ + tutorial%20projects/rain-snow-particles/Start}{here} before you start. + + Download the project and open the \e faceparticles.qmlproject file in \QDS + to get started. + + \image rain-snow-tutorial-start.png + \section1 Creating a Rain Effect + + \section2 Adding a Particle System to Your Scene + + To add a particle system, you first need to import the QtQuick3D.Particles3D + module to your project: + + \list 1 + \li In the \uicontrol Library view, select + \inlineimage icons/plus.png + next to \uicontrol Components. + \li Find QtQuick3D.Particles3D and select it to add it to your project. + \li From \uicontrol Library > \uicontrol Components, drag a + \uicontrol{Particle System} to \uicontrol scene in \uicontrol Navigator. + \endlist + + Now you have added a particle system to your scene. + + \image rain-snow-tutorial-particle-system + + \section2 Adjusting the Behavior and Apperance of the Particle System + Next, you adjust the position, behavior, and apperance of the particle + system to create a simple rain effect: + + \list 1 + \li Adjust the position of the particle system to align with the sphere. + In \uicontrol Navigator, select \e particleSystem and in + \uicontrol Properties, set \uicontrol Translation > \uicontrol Y to 193. + \li Set the \e rain-drop-white-square.png as texture for the particles. + From \uicontrol Library > \uicontrol Components, drag a \uicontrol Texture + to \e spriteParticle. + \li In \uicontrol Navigator, select \uicontrol texture1 and in \uicontrol + Properties, set \uicontrol Source to \e rain-drop-white-square.png. + \li In \uicontrol Navigator, select \uicontrol spriteParticle and in the + \uicontrol Properties, set \uicontrol Sprite to texture. + \li Adjust the apperance and behavior of the sprite further. In \uicontrol + Properties, set: + \list + \li \uicontrol{Particle Scale} to 10. + \li \uicontrol{Max Amount} to 1000. + \li \uicontrol Color to #91ffffff. + \li \uicontrol{Fade In Effect} to FadeNone. + \li \uicontrol{Fade Out Effect} to FadeNone. + \endlist + \li Now you have set the apperance of the particles. Next, adjust + the particle emitter. In \uicontrol Navigator, select \uicontrol + particleEmitter, and in \uicontrol Properties set: + \list + \li \uicontrol System to particleSystem. + \li \uicontrol{Emit Rate} to 1500. + \li \uicontrol{Life Span} to 100. + \li \uicontrol{Life Span Variation} to 0. + \li \uicontrol{Particle End Scale} to 1. + \li \uicontrol{Particle Scale Variation} to 0,5. + \li \uicontrol{Particle End Scale Variation} to 0,5. + \li \uicontrol{Particle Rotation} > \uicontrol Variation > + \uicontrol X, \uicontrol Y, + and \uicontrol Z to 0. + \li \uicontrol{Particle Rotation} > \uicontrol{Velocity Variation} > + \uicontrol X, + \uicontrol Y, and \uicontrol Z to 0. + \li \uicontrol Transform > \uicontrol Translation \uicontrol Y to -69. + \endlist + \li Finally, you set the direction of the particles. In \uicontrol + Navigator, select \uicontrol dir3d and in \uicontrol + Properties set: + \list + \li \uicontrol Direction > \uicontrol Y to -500. + \li \uicontrol Direction > \uicontrol Z to 0. + \li \uicontrol{Direction Variation} > \uicontrol X, \uicontrol Y, and + \uicontrol Z to 0. + \endlist + \endlist + + \section2 Adjusting the Size of the Emitting Area + + By default, the \uicontrol {Particle Emitter} emits particles from one + point in the scene. In this scene you want to emit particles from a bigger + area matching the size of the sphere. To do this, you need to add + a \uicontrol{Particle Shape} component: + + \list 1 + \li From \uicontrol Components, drag a \uicontrol{Particle Shape} + component to \uicontrol{particleSystem} in \uicontrol Navigator. + \li In \uicontrol Navigator, select \uicontrol particleShape, and in + \uicontrol Properties set: + \list + \li \uicontrol Type to \uicontrol Sphere. + \li \uicontrol Extends \uicontrol X to 85. + \li \uicontrol Extends \uicontrol Y to 85. + \li \uicontrol Extends \uicontrol Z to 85. + \endlist + \li In \uicontrol Navigator, select \uicontrol particleEmitter, and in + \uicontrol Particle set + \uicontrol Shape to \uicontrol particleShape. + \endlist + + \image rain-snow-tutorial-navigator.png + + Now, the rain effect is ready. Press \key Alt+P to see it in the live + preview. + + \section1 Creating a Snow Effect + + To make it easy, you can duplicate the particle system you created for the + rain effect and adjust the properties to create a snow effect. To do this, + first create a new state for the snow effect: + + \list + \li In \uicontrol{States}, select \uicontrol{Create New State}. + \endlist + + \image rain-snow-tutorial-states.png + + \section2 Turning the Rain into Snow + + \list 1 + \li With the new state that you just created selected in + \uicontrol{States}, in \uicontrol{Navigator}, select \uicontrol + spriteParticle and set \uicontrol Color to #ffffff. + \li In \uicontrol{Navigator}, select \uicontrol texture1 and set + \uicontrol Source to \e{snowflake.png}. + \li In \uicontrol{Navigator}, select \uicontrol particleEmitter and set: + \list + \li \uicontrol{Emit Rate} to 250. + \li \uicontrol{Life Span} to 450. + \li \uicontrol{Particle Rotation} > \uicontrol Variation > + \uicontrol{X}, \uicontrol{Y}, and \uicontrol Z to 180. + \li \uicontrol{Particle Rotation} > \uicontrol{Velocity Variation} > + \uicontrol{X}, \uicontrol{Y}, and \uicontrol Z to 200. + \endlist + \li In \uicontrol{Navigator}, select \uicontrol particleEmitter + > \uicontrol dir3d and set: + \list + \li \uicontrol Direction > \uicontrol Y to -100. + \li \uicontrol{Direction Variation} \uicontrol{X}, \uicontrol{Y}, + and \uicontrol Z + to 10. + \endlist + \endlist + + Now you can run the snow effect in the live preview: + \list 1 + \li In \uicontrol{States} next to \uicontrol State1 select + \inlineimage icons/action-icon.png + and select \uicontrol{Set as Default}. + \li Press \key{Alt+P}. + \endlist + + \image rain-snow-tutorial-default-state.png +*/ From 1421694d17d464be59478d573a7873f86b6fd2a2 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 12 Jan 2022 17:43:40 +0100 Subject: [PATCH 17/19] Avoid starting threads from the wrong hosting thread This should be safe for QThreadPool, but we are still fixing an underlying bug, QTBUG-99775, and Qt Creator may just want to avoid the issue altogether. Change-Id: I50041cc6f5974d234b1a07be5cb19108fba897c7 Reviewed-by: Marc Mutz Reviewed-by: Eike Ziller --- src/libs/utils/runextensions.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/runextensions.h b/src/libs/utils/runextensions.h index e7b9dd6c939..9339f1a52ee 100644 --- a/src/libs/utils/runextensions.h +++ b/src/libs/utils/runextensions.h @@ -408,7 +408,10 @@ QFuture runAsync_internal(QThreadPool *pool, QFuture future = job->future(); if (pool) { job->setThreadPool(pool); - pool->start(job); + if (QThread::currentThread() == pool->thread()) + pool->start(job); + else + QMetaObject::invokeMethod(pool, [pool, job]() { pool->start(job); }, Qt::QueuedConnection); } else { auto thread = new Internal::RunnableThread(job); if (stackSize) From fd6380f93524661b9d5b28f7834bb048ce2f183d Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 3 Dec 2021 18:29:53 +0100 Subject: [PATCH 18/19] Doc: Describe deploying apps to embedded Linux devices - Describe deployment process in the instructions for generic remote Linux devices and link to there from the instructions for specific devices. - Update instructions for adding files when using CMake and remove the include file. - Add an example of adding files to deploy when using qmake. Fixes: QTCREATORBUG-26616 Change-Id: I07cf9169da384dd65adc6935110e4dcbeb3e308b Reviewed-by: Samuli Piippo --- ...tor-embedded-linux-deployment-overview.png | Bin 15194 -> 0 bytes .../creator-projects-cmake-deploying.qdocinc | 106 ------------------ .../src/cmake/creator-projects-cmake.qdoc | 9 +- .../linux-mobile/creator-deployment-b2qt.qdoc | 15 ++- .../creator-deployment-embedded-linux.qdoc | 104 +++++++++++------ .../creator-projects-generic.qdoc | 6 +- .../src/qnx/creator-deployment-qnx.qdoc | 25 ++--- 7 files changed, 95 insertions(+), 170 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-embedded-linux-deployment-overview.png delete mode 100644 doc/qtcreator/src/cmake/creator-projects-cmake-deploying.qdocinc diff --git a/doc/qtcreator/images/qtcreator-embedded-linux-deployment-overview.png b/doc/qtcreator/images/qtcreator-embedded-linux-deployment-overview.png deleted file mode 100644 index 25cdf5c7bf5234e7ac31a0a53f60b8c01eed703d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15194 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 - : - ... - : - \endcode - - Where: - - \list - - \li \c {} is the (absolute) path prefix to where - files are copied on the remote machine. - - \li \c {} is the file path relative to the CMake - project root. No directories or wildcards are allowed in this - value. - - \li \c {} is the destination directory path - relative to \c {deployment/prefix}. - - \endlist - - To automate the creation of \c {QtCreatorDeployment.txt} file: - - \list 1 - - \li Define the following macros in the top level \c {CMakeLists.txt} - file: - - \code - file(WRITE "${CMAKE_SOURCE_DIR}/QtCreatorDeployment.txt" "\n") - - macro(add_deployment_file SRC DEST) - file(RELATIVE_PATH path ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) - file(APPEND "${CMAKE_SOURCE_DIR}/QtCreatorDeployment.txt" "${path}/${SRC}:${DEST}\n") - endmacro() - - macro(add_deployment_directory SRC DEST) - file(GLOB_RECURSE files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${SRC}/*") - foreach(filename ${files}) - get_filename_component(path ${filename} PATH) - add_deployment_file("${filename}" "${DEST}/${path}") - endforeach(filename) - endmacro() - \endcode - - \li Use \c {add_deployment_file()} to add files and - \c {add_deployment_directory()} to add directories - (including subdirectories) to the \c QtCreatorDeployment.txt file. - - \li Re-run \c cmake after you add or remove files using the macros. - - \endlist - -//! [cmake deploying embedded] -*/ diff --git a/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc b/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc index 80f0e326ea8..0258564a0b0 100644 --- a/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc +++ b/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -42,8 +42,9 @@ native build configurations and workspaces that you can use in the compiler environment of your choice. - You can use CMake from \QC to build applications for the desktop and - Android devices. You can also build single files to test your changes. + You can use CMake from \QC to build applications for the desktop, as well + as mobile and embedded devices. You can also build single files to test + your changes. \QC automatically detects the CMake executable specified in the \c PATH. You can add paths to other CMake executables and use them in different @@ -168,6 +169,6 @@ \li \l {Opening Projects} \li \l {CMake Build Configuration} \li \l {Specifying Run Settings} - \li \l {Deploying CMake Projects to Generic Remote Linux Devices} + \li \l {Deploying Applications to Generic Remote Linux Devices} \endlist */ diff --git a/doc/qtcreator/src/linux-mobile/creator-deployment-b2qt.qdoc b/doc/qtcreator/src/linux-mobile/creator-deployment-b2qt.qdoc index 40af933a85a..b2b9b128059 100644 --- a/doc/qtcreator/src/linux-mobile/creator-deployment-b2qt.qdoc +++ b/doc/qtcreator/src/linux-mobile/creator-deployment-b2qt.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -30,13 +30,18 @@ \title Deploying Applications to Boot2Qt Devices - You can specify the generic deployment steps for remote Linux devices also - for \l{Boot2Qt} devices. + You can specify settings for deploying applications to \l{Boot2Qt} devices + in the project configuration file and in \uicontrol Projects > + \uicontrol {Run Settings} > \uicontrol Deployment. \image qtcreator-boot2qt-deployment-steps.png "Boot2Qt deployment steps" - For more information, see \l{Generic Deployment Steps}. + The deployment process is described in more detail in + \l{Deploying Applications to Generic Remote Linux Devices}. + + \section1 Launching Applications on Boot In addition, to have your application launch on boot, select - \uicontrol {Add Deploy Step} > \uicontrol {Change Default Application}. + \uicontrol {Add Deploy Step} > \uicontrol {Change default application} + > \uicontrol {Set this application to start by default}. */ diff --git a/doc/qtcreator/src/linux-mobile/creator-deployment-embedded-linux.qdoc b/doc/qtcreator/src/linux-mobile/creator-deployment-embedded-linux.qdoc index 11d7ac33518..f149f741db5 100644 --- a/doc/qtcreator/src/linux-mobile/creator-deployment-embedded-linux.qdoc +++ b/doc/qtcreator/src/linux-mobile/creator-deployment-embedded-linux.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2020 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -41,58 +41,70 @@ \title Deploying Applications to Generic Remote Linux Devices You can specify settings for deploying applications to generic remote - Linux devices in the project .pro file. You can view the settings in - the \uicontrol Projects mode, in \uicontrol {Run Settings}. + Linux devices in the project configuration file and in the + \uicontrol Projects mode, in \uicontrol {Run Settings}. - \image qtcreator-embedded-linux-deployment-overview.png "Deploy to device" + \image qtcreator-embedded-linux-deployment-details.png "Deploy to embedded Linux" The files to be installed are listed in the \uicontrol {Deployment} step, the \uicontrol {Files to deploy} field. The \uicontrol {Local File Path} field displays the location of the file on the development PC. The - \uicontrol {Remote Directory} field displays the folder where the file is + \uicontrol {Remote Directory} field displays the directory where the file is installed on the device. Text in red color indicates that the information is - missing. Edit the qmake \l{Variables#installs} {INSTALLS variable} in the - project \c .pro file to add the missing files. + missing. + + \section1 Adding Missing Files + + The process to add files to deploy depends on the build system you use. + + \section2 CMake + + When using CMake as the build system, use the \l{CMake: install command} + {install} command in the CMakeLists.txt file to add the missing files. + + For example, add the following lines to the CMakeLists.txt file to install + the binary of your project to the \c /opt directory on the remote device: + + \badcode + set(INSTALL_DESTDIR "/opt") + + install(TARGETS + RUNTIME DESTINATION "${INSTALL_DESTDIR}" + BUNDLE DESTINATION "${INSTALL_DESTDIR}" + LIBRARY DESTINATION "${INSTALL_DESTDIR}" + ) + \endcode + + \section2 qmake + + When using qmake, edit the \l{Variables#installs}{INSTALLS variable} in + the project \c .pro file. When you run the application, \QC copies the necessary files to the device and starts the application on it. - For example, adding + For example, add the following lines to the \c .pro file to copy the binary + of your project to the \c /opt directory on the remote device: \code - target.path = /root + target.path = /opt INSTALLS += target \endcode - to the project .pro file will copy the binary of your project to \c /root - on the remote device. Additional files can be deployed by adding them to - further targets and adding those to \c INSTALLS as well. + To deploy additional files, add them to further targets that you also add + to \c INSTALLS. - \section1 Generic Deployment Steps + \section1 Deploy Steps - \image qtcreator-embedded-linux-deployment-details.png "Deploy to embedded Linux" + When you run the application on the device, \QC first uploads the + necessary files to it, as specified by the deploy steps. - When you run the application on the device, \QC - deploys the application as specified by the deploy steps. By default, \QC - copies the application files to the device by using the SSH file transfer - protocol (SFTP), as specified by the \uicontrol {Upload files via SFTP} - step. + \section2 Finding Configured Devices - If you have a lot of data to copy, select \uicontrol Details in the - \uicontrol {Upload Files via SFTP} step, and then select the - \uicontrol {Incremental deployment} check box. \QC takes note of the - deployment time and only copies files that have changed since the last - deployment. However, when you make major changes on the device, such as - removing files from the device manually or flashing a new disk image, or - when you use another device with the same IP address, deselect the check box - once, to have \QC deploy all files again. + The \uicontrol {Check for a configured device} step looks for a device that + is ready for deployment. - To only create a tarball and not copy the files to the device, select - \uicontrol {Add Deploy Step} > \uicontrol {Create tarball}. Then remove all - other deploy steps. - - The \uicontrol {Deploy tarball via SFTP upload} step specifies that \QC - uploads the tarball to the device and extracts it. + \section2 Checking for Free Disk Space The \uicontrol {Check for free disk space} step is by default the first deploy step. Use it to find out whether the remote file system has enough @@ -104,7 +116,27 @@ support will crash when an SFTP upload is being attempted. This is not a bug in \QC. - \if defined(qtcreator) - \include creator-projects-cmake-deploying.qdocinc cmake deploying embedded - \endif + \section2 Uploading Files + + By default, \QC copies the application files to the device by + using the SSH file transfer protocol (SFTP), as specified by + the \uicontrol {Upload files via SFTP} step. + + If you have a lot of data to copy, select \uicontrol Details in the + \uicontrol {Upload Files via SFTP} step, and then select the + \uicontrol {Incremental deployment} check box. \QC takes note of the + deployment time and only copies files that have changed since the last + deployment. However, when you make major changes on the device, such as + removing files from the device manually or flashing a new disk image, or + when you use another device with the same IP address, deselect the check box + once, to have \QC deploy all files again. + + \section2 Creating a Tarball + + To only create a tarball and not copy the files to the device, select + \uicontrol {Add Deploy Step} > \uicontrol {Create tarball}. Then remove all + other deploy steps. + + The \uicontrol {Deploy tarball via SFTP upload} step specifies that \QC + uploads the tarball to the device and extracts it. */ diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-generic.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-generic.qdoc index df454aaa6d1..ce96890fac6 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-generic.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-generic.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -144,8 +144,8 @@ If you want to run your application on a generic remote Linux device, you first need to deploy your executable and possibly other files. \QC does that for you automatically if you provide the necessary - information. This works the same way as explained for CMake - \l {Deploying CMake Projects to Generic Remote Linux Devices}{here}, + information. This works the same way as explained for CMake in + \l {Deploying Applications to Generic Remote Linux Devices}, except that you also need to include your application binary in the list. \section1 Creating a Run Configuration diff --git a/doc/qtcreator/src/qnx/creator-deployment-qnx.qdoc b/doc/qtcreator/src/qnx/creator-deployment-qnx.qdoc index 232a371e26c..5ec84643126 100644 --- a/doc/qtcreator/src/qnx/creator-deployment-qnx.qdoc +++ b/doc/qtcreator/src/qnx/creator-deployment-qnx.qdoc @@ -1,13 +1,13 @@ /**************************************************************************** ** -** This file is part of Qt Creator -** ** Copyright (C) 2018 Blackberry -** ** Contact: Blackberry (qt@blackberry.com) ** Contact: KDAB (info@kdab.com) ** -** This file is part of the documentation of the Qt Toolkit. +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Creator documentation. ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in @@ -40,19 +40,12 @@ \title Deploying Applications to QNX Neutrino Devices - You can deploy applications to QNX Neutrino devices in the way that is - described in \l{Deploying Applications to Generic Remote Linux Devices}. + You can specify settings for deploying applications to QNX Neutrino + devices in the project configuration file and in \uicontrol Projects + > \uicontrol {Run Settings} > \uicontrol Deployment. \image qtcreator-qnx-deployment.png "Deploy to device" - The files to be installed are listed in the \uicontrol {Deployment} step, - the \uicontrol {Files to deploy} field. The - \uicontrol {Local File Path} field displays the location of the file on the - development PC. The \uicontrol {Remote Directory} field displays the folder - where the file is installed on the device. Text in red color indicates that - the information is missing. Edit the qmake \l{Variables#installs} - {INSTALLS variable} in the project \c .pro file to add the missing files. - - When you run the application, \QC copies the necessary files to the device - and starts the application on it. + The deployment process is described in more detail in + \l{Deploying Applications to Generic Remote Linux Devices}. */ From cbcdf4c2f24610b82a2b2b36e1bedef2e09b964a Mon Sep 17 00:00:00 2001 From: Mats Honkamaa Date: Wed, 12 Jan 2022 11:03:16 +0200 Subject: [PATCH 19/19] Doc: Update create project docs Update docs to include new project wizard. Task-number: QDS-5939 Change-Id: Ic152f5d558c81ae8c5ce536ef26e8c9461a81c34 Reviewed-by: Miikka Heikkinen Reviewed-by: Tanja Remes Reviewed-by: Leena Miettinen Reviewed-by: Mahmoud Badri --- .../studio-project-custom-screen-size.png | Bin 9847 -> 0 bytes .../images/studio-project-location.png | Bin 9416 -> 0 bytes .../images/studio-project-wizards.png | Bin 14582 -> 111408 bytes .../src/qtdesignstudio-projects.qdoc | 109 ++++++++---------- 4 files changed, 50 insertions(+), 59 deletions(-) delete mode 100644 doc/qtdesignstudio/images/studio-project-custom-screen-size.png delete mode 100644 doc/qtdesignstudio/images/studio-project-location.png diff --git a/doc/qtdesignstudio/images/studio-project-custom-screen-size.png b/doc/qtdesignstudio/images/studio-project-custom-screen-size.png deleted file mode 100644 index 2c4bfdee92a4ecba0875f05652b1f785ad55a6a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9847 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 GGywqbrjDTi diff --git a/doc/qtdesignstudio/images/studio-project-location.png b/doc/qtdesignstudio/images/studio-project-location.png deleted file mode 100644 index 5b921bade0f1caae8a4120d80e9867e5b2635888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9416 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 diff --git a/doc/qtdesignstudio/images/studio-project-wizards.png b/doc/qtdesignstudio/images/studio-project-wizards.png index 66bb516af0beddc93be9e0e1d8b041fd4908473b..81fcc3af5352dfa660bc3a3ee68208cc154bd33a 100644 GIT binary patch literal 111408 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 L)z4*}Q$iB}L`wB- literal 14582 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 diff --git a/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc index 07af4c6decb..de7f7150d35 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc @@ -48,95 +48,83 @@ prompt you to enter the settings needed for a particular type of project and create the necessary files for you. - \QDS projects are useful for creating UIs. You cannot use them for - application development, because they do not contain: - - \list - \li C++ code - \li Resource files (.qrc) - \li Code needed for deploying applications to devices. - \endlist - - Because the projects do not contain any C++ code, you do not need - to build them. To test how well your designs work, you can preview the - UIs on the desktop or embedded Linux devices. For more + To test how well your designs work, you can preview the + UIs on the desktop, embedded Linux devices, or Android devices. For more information, see \l{Validating with Target Hardware}. \image studio-project-wizards.png "A list of project wizards" You can export designs from other design tools and import them to projects - or create them from scratch using the following wizard templates: + or create them from scratch using the following wizard presets: \table \header \li Category - \li Wizard Template + \li Wizard Preset \li Purpose \row \li {1,2} General - \li Qt Quick Application - Empty - \li Creates a project that uses default components and preset UI - controls and can be run on all target platforms. + \li Empty + \li Creates a project that uses default components such as rectangles, + images, and text. You can run the application on all target + platforms. \row - \li Qt Quick 3D Application - \li Creates a project that uses default components, UI controls, and - 3D components. + \li 3D + \li Creates a project that uses default and 3D components such as + cameras, lights, 3D models, and materials. \row \li Qt for MCUs - \li Qt for MCUs Application - \li Creates an application that uses a subset of preset components + \li MCU + \li Creates an application that uses a subset of default components (as supported by Qt for MCUs) that you can deploy, run, and debug on MCU boards. \row - \li {1,2} Mobile - \li Qt Quick Application - Scroll - \li Creates an application that uses UI controls to implement a + \li {1,3} Mobile + \li Scroll + \li Creates an application that uses Qt Quick controls to implement a scrollable list. \row - \li Qt Quick Application - Stack - \li Creates an application that uses UI controls to implement a + \li Stack + \li Creates an application that uses Qt Quick controls to implement a set of pages with a stack-based navigation model. + \row + \li Swipe + \li Creates an application that uses Qt Quick controls to implement a + swipable screen. \row \li Desktop - \li Qt Quick Application - Launcher - \li Creates a project that uses default components and UI controls and - defines a launcher application. + \li Launcher + \li Creates a project that uses default components such as rectangles, + images, and text, and defines a launcher application. \endtable - For an example of creating a \uicontrol {Qt Quick 3D Application} project, - watch the following video: - - \youtube 9ihYeC0YJ0M - \section1 Using Project Wizards + To create a new project: + \list 1 \li Select \uicontrol File > \uicontrol {New Project}. - \li Select a wizard template, and then select \uicontrol Choose. - \li In the \uicontrol Name field, enter a name for the project. - Keep in mind that projects cannot be easily renamed later. - \image studio-project-location.png "Project Location dialog" - \li In the \uicontrol {Create in} field, enter the path for the project - files. You can move project folders later without problems. - \li Select \uicontrol Next (or \uicontrol Continue on \macos). - \li In the \uicontrol {Screen resolution} field, select the screen - resolution for previewing the UI on the desktop or on a device. - This determines the screen size. - \image studio-project-custom-screen-size.png "Define Project Details dialog" - \li To use a custom screen size, specify the width and height of the - screen in the \uicontrol {Custom screen width} and - \uicontrol {Custom screen height} fields. - You can easily change the screen size later in \l Properties. - \li In the \uicontrol {Qt Quick Controls Style} field, select one of + \li In the \uicontrol Presets tab, select a wizard preset. + \li In the \uicontrol Details tab: + \list + \li Enter a name for the project. Keep in mind that projects + cannot be easily renamed later. + \li Select the path for the project files. You can move project + folders later. + \li Set the screen resolution for previewing the UI on the + desktop or on a device. This determines the screen size. You can + change the screen size later in \l Properties. + \li Select \uicontrol {Use Qt Virtual Keyboard} to + enable users to enter text using a virtual keyboard. + \li In \uicontrol {Target Qt Version}, select the Qt + version to use for developing the application. While you can + change the Qt version later in the \uicontrol {Run Settings} + of the project, keep in mind that the two versions are not fully + compatible. + \endlist + \li In the \uicontrol {Style} tab, select one of the predefined \l{Styling Qt Quick Controls}{UI styles} to use. - \li Select the \uicontrol {Use Qt Virtual Keyboard} check box to enable - users to enter text using a virtual keyboard. - \li In the \uicontrol {Target Qt Version} field, select the Qt version - to use for developing the application. While you can change the - Qt version later in the \uicontrol {Run Settings} of the project, - keep in mind that the two versions are not fully compatible. - \li Select \uicontrol Finish (or \uicontrol Done on \macos) to create - the project. + \li Select \uicontrol Create to create the project. \endlist \QDS creates the following files and folders: @@ -155,6 +143,9 @@ Specifically, if you export and import designs using \QB, your main file is most likely called something else. For more information, see \l {Exporting from Design Tools}. + \li \e CMakeLists.txt project configuration file allowing you to + share your project as a fully working C++ application with + developers. \li qtquickcontrols2.conf file specifies the preferred style and some style-specific arguments. \li \e fonts folder contains font files that you have added in