From d6ae6ce5e6d897b16a14afc37a1041e6c1415f38 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 17 Apr 2024 15:21:49 +0200 Subject: [PATCH 01/15] ProjectExplorer: Fix copy/paste error in settings key Amends e1b3c3e35762df83e68b02c657ef69289cf72224. Fixes: QTCREATORBUG-30696 Change-Id: Ifc0625c5ba7dadb59dfcf8af58bc190f25955746 Reviewed-by: hjk --- src/plugins/projectexplorer/projectexplorer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index cf82aa6e739..21741dc1cfb 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -281,7 +281,7 @@ const char CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY[] = "ProjectExplorer/Settings/Cl const char ABORT_BUILD_ALL_ON_ERROR_SETTINGS_KEY[] = "ProjectExplorer/Settings/AbortBuildAllOnError"; const char LOW_BUILD_PRIORITY_SETTINGS_KEY[] = "ProjectExplorer/Settings/LowBuildPriority"; -const char WARN_AGAINST_NON_ASCII_BUILD_DIR_SETTINGS_KEY[] = "ProjectExplorer/Settings/LowBuildPriority"; +const char WARN_AGAINST_NON_ASCII_BUILD_DIR_SETTINGS_KEY[] = "ProjectExplorer/Settings/WarnAgainstNonAsciiBuildDir"; const char APP_ENV_CHANGES_SETTINGS_KEY[] = "ProjectExplorer/Settings/AppEnvChanges"; const char CUSTOM_PARSER_COUNT_KEY[] = "ProjectExplorer/Settings/CustomParserCount"; From 6e44fd29f1151b330adbe60e3e51b2fa9edb034a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20L=C3=B6hning?= Date: Thu, 11 Apr 2024 16:43:17 +0200 Subject: [PATCH 02/15] SquishTests: Tests wizard of Qt Quick 2 Extension Plugin again Change-Id: Icfae5823d2b4f273350388d772a929b054879bd2 Reviewed-by: Reviewed-by: Christian Stenger --- tests/system/suite_general/tst_create_proj_wizard/test.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/system/suite_general/tst_create_proj_wizard/test.py b/tests/system/suite_general/tst_create_proj_wizard/test.py index 4da9d39d732..78178d82bb8 100644 --- a/tests/system/suite_general/tst_create_proj_wizard/test.py +++ b/tests/system/suite_general/tst_create_proj_wizard/test.py @@ -41,9 +41,6 @@ def main(): # needed because categoriesView and templatesView using same model for template in dumpItems(templatesView.model(), templatesView.rootIndex()): template = template.replace(".", "\\.") - # FIXME this needs Qt6.2+ - if template == "Qt Quick 2 Extension Plugin": - continue # skip non-configurable if template not in ["Qt Quick UI Prototype", "Qt Creator Plugin"]: availableProjectTypes.append({category:template}) @@ -119,6 +116,9 @@ def handleBuildSystemVerifyKits(category, template, kits, displayedPlatforms, if template == 'Qt Quick Application': fixedBuildSystems.remove('qmake') test.log("Skipped qmake (not supported).") + elif template == 'Qt Quick 2 Extension Plugin': + fixedBuildSystems.remove('Qbs') + test.log("Skipped Qbs (not supported).") for counter, buildSystem in enumerate(fixedBuildSystems): test.log("Using build system '%s'" % buildSystem) From db492c461cc532e0419978643ff23cc87ee6d4ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20L=C3=B6hning?= Date: Thu, 11 Apr 2024 15:37:25 +0200 Subject: [PATCH 03/15] SquishTests: Log found shortcut in tst_HELP02 Change-Id: I144dc9961d97968d3b0355487714d287d22abb71 Reviewed-by: Christian Stenger Reviewed-by: --- tests/system/suite_HELP/tst_HELP02/test.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/system/suite_HELP/tst_HELP02/test.py b/tests/system/suite_HELP/tst_HELP02/test.py index 31a3e7c2de4..b6246e4f05e 100644 --- a/tests/system/suite_HELP/tst_HELP02/test.py +++ b/tests/system/suite_HELP/tst_HELP02/test.py @@ -53,10 +53,6 @@ def checkQtCreatorHelpVersion(expectedVersion): test.fail("Missing Qt Creator Manual.") -def _shortcutMatches_(shortcutEdit, expectedText): - return str(findObject(shortcutEdit).text) == expectedText - - def setKeyboardShortcutForAboutQtC(): invokeMenuItem("Edit", "Preferences...") mouseClick(waitForObjectItem(":Options_QListView", "Environment")) @@ -78,16 +74,16 @@ def setKeyboardShortcutForAboutQtC(): "placeholderText='Enter key sequence as text'}" % shortcutGB) clickButton(record) nativeType(keysToType) - waitFor("_shortcutMatches_(shortcut, expectedKeys)", 5000) + waitFor(lambda: str(findObject(shortcut).text) == expectedKeys, 5000) clickButton(record) - gotExpectedShortcut = _shortcutMatches_(shortcut, expectedKeys) - if not gotExpectedShortcut and platform.system() == 'Darwin': + foundShortcut = str(findObject(shortcut).text) + if foundShortcut != expectedKeys and platform.system() == 'Darwin': test.warning("Squish Issue: shortcut was set to %s - entering it manually now" % waitForObject(shortcut).text) replaceEditorContent(shortcut, expectedKeys) else: - test.verify(gotExpectedShortcut, "Expected key sequence is displayed.") + test.compare(foundShortcut, expectedKeys, "Expected key sequence is displayed?") clickButton(waitForObject(":Options.OK_QPushButton")) def main(): From 01538332da659fc1b5494bc8095dc42700b22c2e Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Wed, 17 Apr 2024 21:40:11 +0200 Subject: [PATCH 04/15] =?UTF-8?q?CMakePM:=20Treat=20all=20default=20CMake?= =?UTF-8?q?=20source=20groups=20as=20=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … "Header|Sources Files" groups Amends f76e0de7bc98a3d7171390d682bb5046ddfce634 Change-Id: I5e19427a481e87fb4d9761e3fad1727df52ca28b Reviewed-by: Marcus Tillmanns --- src/plugins/cmakeprojectmanager/fileapidataextractor.cpp | 4 ++-- src/plugins/cmakeprojectmanager/projecttreehelper.cpp | 9 ++++++--- src/plugins/cmakeprojectmanager/projecttreehelper.h | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp index ea156be8a11..f4212a1a486 100644 --- a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp +++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp @@ -685,7 +685,7 @@ static void addCompileGroups(ProjectNode *targetRoot, node->setIsGenerated(true); const bool showSourceFolders = settings().showSourceSubFolders() - && sourcesOrHeadersFolder(td.sourceGroups[si.sourceGroup]); + && defaultCMakeSourceGroupFolder(td.sourceGroups[si.sourceGroup]); // Where does the file node need to go? if (showSourceFolders && sourcePath.isChildOf(buildDirectory) && !inSourceBuild) { @@ -699,7 +699,7 @@ static void addCompileGroups(ProjectNode *targetRoot, for (size_t i = 0; i < sourceGroupFileNodes.size(); ++i) { const bool showSourceFolders = settings().showSourceSubFolders() - && sourcesOrHeadersFolder(td.sourceGroups[i]); + && defaultCMakeSourceGroupFolder(td.sourceGroups[i]); std::vector> ¤t = sourceGroupFileNodes[i]; FolderNode *insertNode = td.sourceGroups[i] == "TREE" diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp index d23f6a4f972..c25cc69378f 100644 --- a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp +++ b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp @@ -18,9 +18,12 @@ using namespace ProjectExplorer; namespace CMakeProjectManager::Internal { -bool sourcesOrHeadersFolder(const QString &displayName) +bool defaultCMakeSourceGroupFolder(const QString &displayName) { - return displayName == "Source Files" || displayName == "Header Files"; + return displayName == "Source Files" || displayName == "Header Files" + || displayName == "Resources" || displayName == "" + || displayName == "Precompile Header File" || displayName == "CMake Rules" + || displayName == "Object Files"; } std::unique_ptr createCMakeVFolder(const Utils::FilePath &basePath, @@ -30,7 +33,7 @@ std::unique_ptr createCMakeVFolder(const Utils::FilePath &basePath, auto newFolder = std::make_unique(basePath); newFolder->setPriority(priority); newFolder->setDisplayName(displayName); - newFolder->setIsSourcesOrHeaders(sourcesOrHeadersFolder(displayName)); + newFolder->setIsSourcesOrHeaders(defaultCMakeSourceGroupFolder(displayName)); return newFolder; } diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.h b/src/plugins/cmakeprojectmanager/projecttreehelper.h index 258e0a63231..35f7cf16a43 100644 --- a/src/plugins/cmakeprojectmanager/projecttreehelper.h +++ b/src/plugins/cmakeprojectmanager/projecttreehelper.h @@ -11,7 +11,7 @@ namespace CMakeProjectManager::Internal { -bool sourcesOrHeadersFolder(const QString &displayName); +bool defaultCMakeSourceGroupFolder(const QString &displayName); std::unique_ptr createCMakeVFolder(const Utils::FilePath &basePath, int priority, From 5b9344e4698233903039fcb9e41227e917a2dd07 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 18 Apr 2024 10:01:58 +0200 Subject: [PATCH 05/15] LanguageClient: Allow to define Clients that cannot be added by the user Used for programmatically created client types which should not be addable by the user. Change-Id: I38ba4f17d5e92415c1e167ecee5780f951818263 Reviewed-by: Reviewed-by: Marcus Tillmanns --- src/plugins/languageclient/languageclientsettings.cpp | 2 ++ src/plugins/languageclient/languageclientsettings.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index 38c5a46159c..d24d93f7632 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -184,6 +184,8 @@ LanguageClientSettingsPageWidget::LanguageClientSettingsPageWidget(LanguageClien auto addMenu = new QMenu(this); addMenu->clear(); for (const ClientType &type : clientTypes()) { + if (!type.userAddable) + continue; auto action = new QAction(type.name, this); connect(action, &QAction::triggered, this, [this, id = type.id]() { addItem(id); }); addMenu->addAction(action); diff --git a/src/plugins/languageclient/languageclientsettings.h b/src/plugins/languageclient/languageclientsettings.h index 867a0deb2ec..4cd988d85c8 100644 --- a/src/plugins/languageclient/languageclientsettings.h +++ b/src/plugins/languageclient/languageclientsettings.h @@ -127,6 +127,7 @@ struct ClientType { QString name; using SettingsGenerator = std::function; SettingsGenerator generator = nullptr; + bool userAddable = true; }; class LANGUAGECLIENT_EXPORT LanguageClientSettings From 4b3abbf669ca56ce45bf245af775ccc712156398 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 18 Apr 2024 10:46:50 +0000 Subject: [PATCH 06/15] Revert "LanguageClient: Allow to define Clients that cannot be added by the user" This reverts commit 5b9344e4698233903039fcb9e41227e917a2dd07. Reason for revert: It was meant to go into master Change-Id: If3bf55380ef58e3866e0d552167d4f1c063cc219 Reviewed-by: Marcus Tillmanns --- src/plugins/languageclient/languageclientsettings.cpp | 2 -- src/plugins/languageclient/languageclientsettings.h | 1 - 2 files changed, 3 deletions(-) diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index d24d93f7632..38c5a46159c 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -184,8 +184,6 @@ LanguageClientSettingsPageWidget::LanguageClientSettingsPageWidget(LanguageClien auto addMenu = new QMenu(this); addMenu->clear(); for (const ClientType &type : clientTypes()) { - if (!type.userAddable) - continue; auto action = new QAction(type.name, this); connect(action, &QAction::triggered, this, [this, id = type.id]() { addItem(id); }); addMenu->addAction(action); diff --git a/src/plugins/languageclient/languageclientsettings.h b/src/plugins/languageclient/languageclientsettings.h index 4cd988d85c8..867a0deb2ec 100644 --- a/src/plugins/languageclient/languageclientsettings.h +++ b/src/plugins/languageclient/languageclientsettings.h @@ -127,7 +127,6 @@ struct ClientType { QString name; using SettingsGenerator = std::function; SettingsGenerator generator = nullptr; - bool userAddable = true; }; class LANGUAGECLIENT_EXPORT LanguageClientSettings From 68492d9dcc8e3519eb695a33206b5fd1ede5433e Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 18 Apr 2024 14:07:59 +0200 Subject: [PATCH 07/15] Debugger: Fix crash on update debugger run configuration details The old details widget gets deleted and a new one is created after a kit emits the updated signal. So we need to guard the connect with this detail widget instead of the aspect container. Fixes: QTCREATORBUG-30706 Change-Id: I632213cd7d95c2f61b35679867d706b6c587da5a Reviewed-by: Christian Stenger --- src/plugins/debugger/debuggerrunconfigurationaspect.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp index bef91c59921..cdbedf19e16 100644 --- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp +++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp @@ -100,10 +100,10 @@ DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect(Target *target) }; setSummaryText(); - connect(&m_cppAspect, &BaseAspect::changed, this, setSummaryText); - connect(&m_qmlAspect, &BaseAspect::changed, this, setSummaryText); - connect(&m_pythonAspect, &BaseAspect::changed, this, setSummaryText); - connect(&m_overrideStartupAspect, &BaseAspect::changed, this, setSummaryText); + connect(&m_cppAspect, &BaseAspect::changed, details, setSummaryText); + connect(&m_qmlAspect, &BaseAspect::changed, details, setSummaryText); + connect(&m_pythonAspect, &BaseAspect::changed, details, setSummaryText); + connect(&m_overrideStartupAspect, &BaseAspect::changed, details, setSummaryText); return details; }); From 87fb3358d16d81f2e135027a80db79f9c43fbf70 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 27 Mar 2024 10:24:56 +0100 Subject: [PATCH 08/15] Doc: Update info about previewing on Boot2Qt devices - macOS is supported since Qt 6.5, so just link to the Boot2Qt docs. - Some writing style changes. - Change the product name macro back to \QC, as the info applies to both products. - Move the link targets for Boot2Qt docs to external-resources.qdoc, so that they can be maintained in one place. Change-Id: Id749dbd58465106108a542db9822080942e12f1b Reviewed-by: Samuli Piippo Reviewed-by: Eike Ziller --- .../src/analyze/cpu-usage-analyzer.qdoc | 4 +-- .../external-resources.qdoc | 8 +++++ doc/qtcreator/src/linux-mobile/b2qtdev.qdoc | 5 +-- .../creator-embedded-platforms.qdoc | 8 +---- .../creator-projects-build-run-tutorial.qdoc | 11 ++++--- .../creator-only/creator-projects-kits.qdoc | 4 +-- .../qtquick/qtquick-live-preview-devices.qdoc | 33 +++++++------------ 7 files changed, 33 insertions(+), 40 deletions(-) diff --git a/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc b/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc index 9b746d03887..1341ee95a1c 100644 --- a/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc +++ b/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc @@ -430,8 +430,8 @@ The Performance Analyzer can read Perf data files generated in either frame pointer or dwarf mode. However, to generate the files correctly, numerous preconditions have to be met. All system images for the - \l{https://doc.qt.io/Boot2Qt/qtdc-supported-platforms.html} - {Boot2Qt:Supported Target Devices and Development Hosts} are correctly set + \l{Support Levels for Target Hardware}{supported embedded platforms} + are correctly set up for profiling in the dwarf mode. For other devices, check whether Perf can read back its own data in a sensible way by checking the output of \c {perf report} or \c {perf script} for the recorded Perf data files. diff --git a/doc/qtcreator/src/external-resources/external-resources.qdoc b/doc/qtcreator/src/external-resources/external-resources.qdoc index 3eceb28e568..5c2f4f22850 100644 --- a/doc/qtcreator/src/external-resources/external-resources.qdoc +++ b/doc/qtcreator/src/external-resources/external-resources.qdoc @@ -1,6 +1,14 @@ // Copyright (C) 2022 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only +/*! + \externalpage https://doc.qt.io/Boot2Qt/index.html + \title Boot2Qt: Documentation +*/ +/*! + \externalpage https://doc.qt.io/Boot2Qt/b2qt-requirements-x11.html#setting-up-usb-access-to-embedded-devices + \title Boot2Qt: Setting Up USB Access to Embedded Devices +*/ /*! \externalpage https://doc.qt.io/qt/qtqml-index.html \title Qt Qml diff --git a/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc b/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc index 3f7499b5b5c..b8c2c6f9a47 100644 --- a/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc +++ b/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc @@ -47,8 +47,7 @@ \note On Ubuntu Linux, the development user account must have access to the plugged-in devices. To grant them access to the device via USB, create a new \c udev rule, as described in - \l{https://doc.qt.io/Boot2Qt/b2qt-requirements-x11.html#setting-up-usb-access-to-embedded-devices} - {Boot2Qt: Setting Up USB Access to Embedded Devices}. + \l{Boot2Qt: Setting Up USB Access to Embedded Devices}. You can edit the settings later in \preferences > \uicontrol Devices > \uicontrol Devices. @@ -149,4 +148,6 @@ application files to the device. For more information, see \l{Boot2Qt Run Settings}. \endlist + + \sa {Boot2Qt: Setting Up USB Access to Embedded Devices} */ diff --git a/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc b/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc index 39ff44f1121..1b4051121f7 100644 --- a/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc +++ b/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc @@ -46,17 +46,11 @@ tools to customize the contents of the stack and to take it into production hardware. - You need either Windows 10 64-bit or later or Ubuntu Linux 64-bit 20.04 LTS - or later to install and use Boot2Qt. - The following topics have more information about developing applications for Boot2Qt devices: \list - \li \l{https://doc.qt.io/Boot2Qt/qtdc-supported-platforms.html} - {Boot2Qt: Supported Target Devices and Development Hosts} - \li \l{https://doc.qt.io/Boot2Qt/b2qt-installation-guides.html} - {Boot2Qt: Installation Guides} + \li \l{Boot2Qt: Documentation} \li \l{Connecting Boot2Qt Devices} \li \l{Boot2Qt Run Settings} \li \l{Deploying to Boot2Qt} 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 ac06f8cbd1e..4b13cbd630f 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 @@ -28,8 +28,7 @@ To run an example application on a Boot2Qt device, you must set up Boot2Qt on the development host and create connections between the host and devices. For more information, see - \l{https://doc.qt.io/Boot2Qt/b2qt-installation-guides.html} - {Boot2Qt: Installation Guides} + \l{Boot2Qt: Documentation}. If you have \l{Qt Design Studio Manual}{\QDS} installed, you can open \QDS examples from \QC in \QDS. @@ -70,9 +69,8 @@ If build errors occur, check that you have a Qt version, a \l{Add compilers}{compiler}, and the necessary kits installed. If - you are building for an \l{Connecting Android Devices}{Android device} - or \l{Connecting iOS Devices}{iOS device}, check that you set up the - development environment correctly. + you are building for an Android or iOS device, check that you set up + the development environment correctly. The \uicontrol Build progress bar on the toolbar turns green when you build the project successfully. The application opens on the @@ -80,4 +78,7 @@ \endlist + \sa {Add compilers}, {Add kits}, {Add Qt versions}, + {Connecting Android Devices}, {Connecting iOS Devices}, + {Compile Output}, {Boot2Qt: Documentation}, {Qt Design Studio Manual} */ diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc index 4d0e9038639..1dc149a3161 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc @@ -27,9 +27,7 @@ \list \li \l{Connecting Android Devices}{Android} \li \l{Connecting Bare Metal Devices}{Bare Metal} - \li \l{https://doc.qt.io/Boot2Qt/b2qt-installation-guides.html} - {Boot2Qt} (commercial only) - \li \l{Emulator}{Boot2Qt Emulator} (commercial only) + \li \l{Boot2Qt: Documentation}{Boot2Q} (commercial only) \li \l{Adding Docker Devices}{Docker} (experimental) \li \l{Connecting iOS Devices}{iOS} \li iOS Simulator diff --git a/doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc b/doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc index 793bf2f33f1..3b10f90b80d 100644 --- a/doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc +++ b/doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc @@ -11,10 +11,10 @@ \endif \title Previewing on Devices - To preview UIs on Android devices, you need to enable USB debugging on them + To preview UIs on Android devices, enable USB debugging on them and connect them to your system with a USB cable. - To preview UIs on Boot2Qt devices, you need to connect the devices to your + To preview UIs on Boot2Qt devices, connect the devices to your system with a USB cable, or a wired or wireless connection, depending on the device, and configure connections to them. The necessary kits have been predefined and you only need to enable them for your current project. @@ -23,8 +23,8 @@ necessary files to a location in a device where you want to run the executable at. - \note To preview on a wirelessly connected device, select \preferences > \uicontrol Devices - and connect the device. + \note To preview on a wirelessly connected device, go to \preferences > + \uicontrol Devices and connect the device. To preview a UI on a device: @@ -47,16 +47,16 @@ \section2 Previewing on Android Devices - The USB debugging feature on Android devices enables creating connections - to the devices from \QDS and running the preview utility on them. + With the USB debugging feature on Android devices, you can create connections + to the devices from \QC and run the preview utility on them. - Debugging is enabled in different ways on different Android devices. + Debugging is turned on in different ways on different Android devices. Look for \uicontrol {USB Debugging} under \uicontrol {Developer Options}. - On some devices \uicontrol {Developer Options} is hidden and becomes visible + On some devices, \uicontrol {Developer Options} is hidden and becomes visible when you tap the \uicontrol {Build number} field in \uicontrol Settings > \uicontrol About several times. - After you have enabled debugging, connect the Android device to the system + After you turn on debugging, connect the Android device to the system with a USB cable. The first time you preview a UI on devices, the preview utility @@ -66,17 +66,8 @@ \section2 Previewing on Boot2Qt Devices - You can preview UIs on Boot2Qt devices. For a list of supported devices, see - \l{https://doc.qt.io/Boot2Qt/qtdc-supported-platforms.html} - {Boot2Qt: Supported Target Devices and Development Hosts}. + You can preview UIs on supported Boot2Qt devices that you configure as + instructed in the Boot2Qt documentation. - You must configure the device as instructed in the - \l{https://doc.qt.io/Boot2Qt/b2qt-installation-guides.html} - {Boot2Qt: Installation Guides}. - - \note At the time of this writing, \macos is not supported as a development - host for Boot2Qt. This means that you cannot preview UIs on - devices if you are using \QC on \macos. For more information, see - \l {https://doc.qt.io/Boot2Qt/qtdc-supported-platforms.html#supported-development-hosts} - {Boot2Qt: Supported Development Hosts}. + \sa {Boot2Qt: Documentation}, {Support Levels for Target Hardware} */ From 20f01b351cec98e3acafa8e03a63d17ff898acbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20L=C3=B6hning?= Date: Fri, 5 Apr 2024 11:06:26 +0200 Subject: [PATCH 09/15] SquishTests: Replace wait condition strings with lambdas Squish allows passing wait conditions as strings containing python code. The only advantage I see is that the notation is a little shorter than using a lambda. On the other hand, the strings can't get proper syntax highlighting and cause false positive warnings about unused variables. Change-Id: I226840fa26dc75d07d89f20647d069e2e866bbc9 Reviewed-by: Christian Stenger --- tests/system/suite_general/tst_openqt_creator/test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/system/suite_general/tst_openqt_creator/test.py b/tests/system/suite_general/tst_openqt_creator/test.py index c0cbc815a22..3c55342fc21 100644 --- a/tests/system/suite_general/tst_openqt_creator/test.py +++ b/tests/system/suite_general/tst_openqt_creator/test.py @@ -21,13 +21,13 @@ def main(): openQmakeProject(os.path.join(pathSpeedcrunch, "src", "speedcrunch.pro"), [Targets.DESKTOP_5_14_1_DEFAULT]) # Wait for parsing to complete - waitFor("runButton.enabled", 30000) + waitFor(lambda: runButton.enabled, 30000) # Starting before opening, because this is where Creator froze (QTCREATORBUG-10733) startopening = datetime.utcnow() openQmakeProject(pathCreator, [Targets.DESKTOP_5_14_1_DEFAULT]) # Wait for parsing to complete startreading = datetime.utcnow() - waitFor("runButton.enabled", 300000) + waitFor(lambda: runButton.enabled, 300000) secondsOpening = (datetime.utcnow() - startopening).seconds secondsReading = (datetime.utcnow() - startreading).seconds timeoutOpen = 45 From 3cd3596f99dd04fb053313981d8def8841a1747c Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 19 Apr 2024 10:45:36 +0200 Subject: [PATCH 10/15] Update qbs submodule to HEAD of 2.3 branch Change-Id: Id26a75123e890845417711dd44e1950133e5ae3e Reviewed-by: Reviewed-by: Christian Stenger --- src/shared/qbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/qbs b/src/shared/qbs index 5c88b6b11b7..ca74c524363 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 5c88b6b11b762cf5861c9d1570df4f1f050c826e +Subproject commit ca74c524363d17c689bb0ec4ca39c744df8d036e From 8781befcfbbc4a2dee68e8a06ca4a0985128b20a Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 2 Apr 2024 15:49:11 +0200 Subject: [PATCH 11/15] SquishTests: Wait for combo box popup closing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On systems where some ui features may be using animations the animation could interfere with the test. Explicitly wait a short amount of time as there is no easy way to achieve this. This fixes a couple of tests on macOS. Change-Id: Ib79b43955ebf218342db108a43979093994fba02 Reviewed-by: Robert Löhning --- tests/system/shared/utils.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/system/shared/utils.py b/tests/system/shared/utils.py index 7e6b91a961f..623287563a3 100644 --- a/tests/system/shared/utils.py +++ b/tests/system/shared/utils.py @@ -81,6 +81,14 @@ def selectFromCombo(objectSpec, itemName): mouseClick(waitForObjectItem(comboObject, itemName.replace(".", "\\."))) test.verify(waitFor("str(comboObject.currentText)==itemName", 5000), "Switched combo item to '%s'" % itemName) + def __collapsed__(): + try: + waitForObject("{container='%s' type='QModelIndex'}" % objectSpec, 100) + return False + except: + return True + + waitFor(__collapsed__, 1000) return True def selectFromLocator(filter, itemName = None): From b7446fca8b2a04dea922016a49515420e36b66d8 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 18 Apr 2024 16:54:03 +0200 Subject: [PATCH 12/15] Doc: Add a note that qmake fetches compiler info from mkspec Fixes: QTCREATORBUG-30700 Change-Id: I35abdad15de7f4ea7f1a3a43302773372f49eff0 Reviewed-by: Christian Kandeler --- .../src/projects/creator-only/creator-projects-kits.qdoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc index 1dc149a3161..4654c4326fd 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc @@ -145,6 +145,9 @@ This setting is used to tell the code model which compiler is used. If your project type and build tool support it, \QC also tells the build tool to use this compiler for building the project. + + \note qmake ignores the value of this field and fetches the compiler + information from \uicontrol {Qt mkspec}, which you can change. \row \li \uicontrol Environment \li Select \uicontrol Change to modify environment variable values for From 0aa5b863005aece0bcabb90c35e9ef417a103c56 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Fri, 19 Apr 2024 15:45:58 +0200 Subject: [PATCH 13/15] Process: Detect a recursive call to waitForSignal() Assert that we don't call it recursively. If so, the waitForSignal() returns false immediately. Fixes: QTCREATORBUG-30715 Change-Id: I7195b2b1347f67262cc8ae6db5439f5ddd38b5bb Reviewed-by: Alessandro Portale --- src/libs/utils/process.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libs/utils/process.cpp b/src/libs/utils/process.cpp index 802ae632f1a..d97fea174d4 100644 --- a/src/libs/utils/process.cpp +++ b/src/libs/utils/process.cpp @@ -769,6 +769,7 @@ private: std::unique_ptr m_processHandler; mutable QMutex m_mutex; QList m_signals; + Guard m_guard; }; class ProcessPrivate : public QObject @@ -961,6 +962,10 @@ GeneralProcessBlockingImpl::GeneralProcessBlockingImpl(ProcessPrivate *parent) bool GeneralProcessBlockingImpl::waitForSignal(ProcessSignalType newSignal, QDeadlineTimer timeout) { + QTC_ASSERT(!m_guard.isLocked(), qWarning("Process::waitForSignal() called recursively. " + "The call is being ignored."); return false); + GuardLocker locker(m_guard); + m_processHandler->setParent(nullptr); QThread thread; From 592762527e321e25bb512f55e39e6b0f62b434d0 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Fri, 19 Apr 2024 15:48:08 +0200 Subject: [PATCH 14/15] Android: Don't call waitForFinished() recursively Change-Id: Ic49d040643cfb8f871e24fc617d15c72167e1d3c Reviewed-by: Alessandro Portale --- src/plugins/android/androidsdkmanager.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp index 029cfd83524..79036308f2f 100644 --- a/src/plugins/android/androidsdkmanager.cpp +++ b/src/plugins/android/androidsdkmanager.cpp @@ -126,10 +126,8 @@ static void sdkManagerCommand(const AndroidConfig &config, const QStringList &ar bool assertionFound = false; proc.setStdOutCallback([offset, progressQuota, &proc, &assertionFound, &promise](const QString &out) { int progressPercent = parseProgress(out, assertionFound); - if (assertionFound) { + if (assertionFound) proc.stop(); - proc.waitForFinished(); - } if (progressPercent != -1) promise.setProgressValue(offset + qRound((progressPercent / 100.0) * progressQuota)); }); From 89682a866e95a9b675b61fc7aa345b8b492bd1d8 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 19 Apr 2024 16:28:27 +0200 Subject: [PATCH 15/15] Android: Fetch latest command line tools for "Set Up SDK" Don't install outdated ones. https: //developer.android.com/studio#command-line-tools-only Change-Id: Ifd9c6a2e90a63c6113c859910365689f19b3a532 Reviewed-by: Jarek Kobus --- share/qtcreator/android/sdk_definitions.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/android/sdk_definitions.json b/share/qtcreator/android/sdk_definitions.json index 22e4a322d84..ed1e42402f3 100644 --- a/share/qtcreator/android/sdk_definitions.json +++ b/share/qtcreator/android/sdk_definitions.json @@ -1,12 +1,12 @@ { "common": { "sdk_tools_url": { - "linux": "https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip", - "linux_sha256": "0bebf59339eaa534f4217f8aa0972d14dc49e7207be225511073c661ae01da0a", - "windows": "https://dl.google.com/android/repository/commandlinetools-win-9123335_latest.zip", - "windows_sha256": "8a90e6a3deb2fa13229b2e335efd07687dcc8a55a3c544da9f40b41404993e7d", - "mac": "https://dl.google.com/android/repository/commandlinetools-mac-9123335_latest.zip", - "mac_sha256": "d0192807f7e1cd4a001d13bb1e5904fc287b691211648877258aa44d1fa88275" + "linux": "https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip", + "linux_sha256": "2d2d50857e4eb553af5a6dc3ad507a17adf43d115264b1afc116f95c92e5e258", + "windows": "https://dl.google.com/android/repository/commandlinetools-win-11076708_latest.zip", + "windows_sha256": "4d6931209eebb1bfb7c7e8b240a6a3cb3ab24479ea294f3539429574b1eec862", + "mac": "https://dl.google.com/android/repository/commandlinetools-mac-11076708_latest.zip", + "mac_sha256": "7bc5c72ba0275c80a8f19684fb92793b83a6b5c94d4d179fc5988930282d7e64" }, "sdk_essential_packages": { "default": ["platform-tools", "platforms;android-31", "cmdline-tools;latest"],