Commit Graph

1281 Commits

Author SHA1 Message Date
Alessandro Portale
6663f7c9bd ExtensionSystem: Introduce alias PluginSpecs
Change-Id: Ic7b87246cf91328c4291bbce5760a45dfa0b14e5
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2024-05-13 13:46:53 +00:00
Eike Ziller
bd99669503 QML: Add an "external" editor for opening .ui.qml files in Design Studio
Using the logic from the landing page in design mode.

Users can select Qt Design Studio from the Open With... menu, or even
set it as the default editor in Preferences > Environment > MIME Types,
"application/x-qt.ui+qml"

Task-number: QTCREATORBUG-30754
Change-Id: Idd4e688f722dcf38735db7c1b9b31af02caeb045
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2024-05-06 05:57:43 +00:00
Tim Jenssen
ef0ee52bf9 Merge remote-tracking branch 'origin/qds/dev'
Conflicts:
	doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc
	doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc
	doc/qtcreator/src/qtquick/qtquick-profiler.qdoc
	src/plugins/qmlprojectmanager/qmlprojectmanager.qbs
	src/plugins/remotelinux/linuxdevicetester.cpp

Change-Id: I3683c1799df05209d05413383456b285a2daf96e
2024-04-23 16:05:55 +02:00
Knud Dollereder
1b52357d01 QmlProjectManager: Fix cmake generator update issues
Fixes: QDS-12518
Change-Id: I27d45213100e42117b130bcbbceb5e115ed68445
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2024-04-21 19:47:14 +00:00
Knud Dollereder
487eda9019 QmlProjectManager: Remove old cmake generator
and suppress warnings about .hints files not being part of the project

Fixes: QDS-12507
Fixes: QDS-12508
Change-Id: If3c2f5ce716b8744dd4fee91ec7bba5293163a97
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2024-04-19 10:22:42 +00:00
Knud Dollereder
b17cd52f84 QmlProjectManager: Generate file to define the default build path
when opening the root CMakeLists.txt with QtCreator

Change-Id: Ia448dab1b3161471fe2bb7870ffb79e68dd579fc
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2024-04-16 14:33:45 +00:00
Knud Dollereder
e55b5d0a0b QmlProjectManager: Write cmake-generator issues into the issues panel
write qtquickcontrols file if it does not exist
and minor cleanup of the cmake generator.

Change-Id: I9b7523f32e5a9b41904c02a398a6f924623f949a
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2024-04-16 12:11:34 +00:00
Knud Dollereder
3721620799 QmlProjectManager: New project structure support for CMakeGenerator
- Add writer interface in order to support the current and the new
  project structure in parallel. Using the new one if
  qdsVersion is >= 4.5
- Separated templates for the new generator from the old one
- Add file name validity check
- Generate files in the folder src and cmake if they do not exist yet.
  Only re-generate files in src/autogen.
- Add action to enable or disable the cmake-generator
- Add function that checks if a resource file is within the
  project folder but not part of the project

Change-Id: I3d75dbee1043ed28e6126cf0b2c83994cb70ed45
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2024-03-28 13:52:32 +00:00
Christian Stenger
699a9aa04a QmlProjectManager: Fix qbs build
Change-Id: I538c03d4f914510913e84c29748ab6f414a086c4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2024-03-15 08:03:49 +00:00
Tim Jenssen
9ce7aaccc5 Merge remote-tracking branch 'origin/qds/dev' into HEAD
Change-Id: I9d13aa050b1c7fb0954e2b63d13da2922d8f7218
2024-03-14 16:13:25 +01:00
Eike Ziller
3dbdad20dc Utils: Fix build with MSVC with C++20
Rename process.h back to qtcprocess.h

MSVC's "threads" standard header includes <process.h>, and that ends up
including our process.h from Utils.

There already was a hacky workaround in place for a similar issue with
MINGW, but that doesn't work with MSVC because that doesn't have

Simply use a name that doesn't conflict.

Change-Id: I1159cd2096b4f2dbc4a1728d0131dd6edd30ebd3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
(cherry picked from commit 5af531cd39)
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2024-03-11 12:08:33 +00:00
Eike Ziller
ff04dc53ef Require Qt 6.4.3 for building Qt Creator
And remove unneeded conditions from CMake files

Change-Id: Ibb4646f83599c5a91fbd18ce3489103e4150c49f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2024-03-04 11:15:36 +00:00
Tim Jenssen
56c4ba1db4 Merge remote-tracking branch 'origin/13.0' into qds/dev
Change-Id: I1d328f67a1c538e36a54f9660d5fb2840a6753df
2024-02-29 19:40:30 +01:00
Eike Ziller
5af531cd39 Utils: Fix build with MSVC with C++20
Rename process.h back to qtcprocess.h

MSVC's "threads" standard header includes <process.h>, and that ends up
including our process.h from Utils.

There already was a hacky workaround in place for a similar issue with
MINGW, but that doesn't work with MSVC because that doesn't have

Simply use a name that doesn't conflict.

Change-Id: I1159cd2096b4f2dbc4a1728d0131dd6edd30ebd3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2024-02-28 08:09:05 +00:00
hjk
7c5a0e6bb2 Rename RunControl::aspect to RunControl::aspectData
It's the "persisted" form of the content of the original aspect's data,
calling it 'aspect' already confused me a few times.

Change-Id: I88a6f76f0ca39d3d36dde9b84287032ceecf7033
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2024-02-16 10:21:15 +00:00
hjk
0a1783d656 Utils: Rename NameValueItem to EnvironmentItem (1/2)
Only used in Environments nowadays.

Change-Id: I64a645ebebd5cb57c50d5d8f72a5e4dba40e122f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2024-02-14 11:33:53 +00:00
Tim Jenssen
adcac7cb6b Merge remote-tracking branch 'origin/13.0' into qds/dev
Change-Id: I242c01e82fc1b0db1f5e88c35d526f91dd022337
2024-02-13 14:33:35 +01:00
Knud Dollereder
ea03bfea10 QmlProjectManager: Cleanup cmake generator
- Consider qmlModules file like any other qml module
- Use ${CMAKE_PROJECT_NAME} when possible
- Break up big functions into smaller ones
- Reorder arguments for tpl files

Change-Id: Ie73cca8596b22adf67eba1019610a00c34976421
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2024-02-13 10:15:35 +00:00
Knud Dollereder
8b97598011 QmlProjectManager: Add new cmake generator
Automatic cmake generation can now be enabled by setting
the qmlproject property enableCMakeGeneration to true

Change-Id: I98523a9479d0cd812e43a9bd0b700120358260f6
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Burak Hancerli <burak.hancerli@qt.io>
2024-02-05 16:21:24 +00:00
Jarek Kobus
656a30b407 IDevice: Replace QSharedPointer with std::shared_ptr
According to https://wiki.qt.io/Things_To_Look_Out_For_In_Reviews
QSharedPointer impl is poor and it's going to be removed from Qt 7.

Replace QWeakPointer with std::weak_ptr.
Replace QEnableSharedFromThis with std::enable_shared_from_this.
Use std::static_pointer_cast and std::dynamic_pointer_cast
for casts used with QSharedPointer before.

Change-Id: If255a100c790860934f36d52906b93f33c31cfe8
Reviewed-by: hjk <hjk@qt.io>
2024-02-02 16:45:57 +00:00
Dominik Holland
2a6de890c7 Create RunConfiguration specific QmlPreviewWorkerFactories
Instead of relying on the QmlPreviewRunWorkerFactory to match for all
RunConfiguration, every plugin needs to create a WorkerFactory for
its own RunConfiguration.

Similar to the SimpleTargetRunnerFactory there is now a
SimpleQmlPreviewRunnerFactory which makes the setup easy.

Change-Id: I350e5a047033a259dae91045486d4f41e7f58994
Reviewed-by: hjk <hjk@qt.io>
2024-02-01 15:58:16 +00:00
Thomas Hartmann
b894ae3d16 QmlDesigner: Disable exports not supported for MCU
Add helper function getStartupBuildSystem() to avoid code duplication.

Task-number: QDS-11544
Change-Id: Id8d752d63171838ac9ea6402ff9f2b179d0d8f53
Reviewed-by: Aleksei German <aleksei.german@qt.io>
2024-02-01 15:13:07 +00:00
Eike Ziller
479f1f34ce iOS: Disable anything but running for iOS 17+ devices
We currently cannot support anything than running for devices with iOS
17 and later.

Make it possible for RunConfigurations to state that they are disabled
depending on run mode.

Change-Id: I13df4dd482f6381cda15168c38ede00d95e1d692
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2024-01-29 12:13:51 +00:00
hjk
6d4bbba27a QmlProjectPlugin: Dissolve QmlProjectPluginPrivate
Not really used anymore.

Change-Id: I125ca6573cb0fd56cc925379dc0e97b0564e1b7c
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2024-01-18 14:20:24 +00:00
The Qt Project
5772a85751 Merge "Merge remote-tracking branch 'origin/qds/dev'" 2024-01-18 12:32:01 +00:00
Christian Kandeler
cdfdb5cb9b QmlProjectManager: Fix include
Change-Id: I68d45d49d55487585423793bb01c522bc08b9557
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2024-01-18 12:11:59 +00:00
Tim Jenssen
399f7a1968 Merge remote-tracking branch 'origin/qds/dev'
Change-Id: I5d593fc74785958886453dc0b452c25356a8c65f
2024-01-18 11:15:29 +00:00
hjk
1cb58e80d8 QmlProjectManager: Merge the two *constants file
The reason for the split is unknown, maybe just an accident.

Change-Id: I4fadd003ee2e6f8d91ed9494bd2304b2d35eff81
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2024-01-18 10:32:28 +00:00
hjk
f52cf6b564 QmlProjectManager: Use setup pattern for QmlProjectRunConfiguration
Change-Id: Ib69a09c65a4755312663286fddbd891c4f7c49ce
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2024-01-18 10:18:04 +00:00
hjk
4d1f1f98d1 ProjectExplorer: Move OpenProjectResult off ProjectExplorerPlugin class
It's not really related to the "Plugin-ness", and I'd generally like to
get away from exported ExtensionSystem::IPlugin derived classes as
"entrypoint" with the resulting fat plugin pimpl in favor of more
separate isolated access points.

Change-Id: I445df6109f4231e37750aa15eaa210d6669805e3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2024-01-18 10:16:25 +00:00
hjk
d86ec67f31 QmlProjectManager: Delay construction of some run worker factories
... until the base factories are there.

Change-Id: I0b3541c32eb7f7bbc24461a0fc9c1be85fc4f29b
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
2024-01-18 09:29:16 +00:00
Dominik Holland
1d2ed65d93 Create RunConfiguration specific QmlProfilerWorkerFactories
Instead of relying on the QmlProfilerRunWorkerFactory to match for all
RunConfiguration, every plugin needs to create a WorkerFactory for
its own RunConfiguration.

Similar to the SimpleTargetRunnerFactory there is now a
SimpleQmlProfilerRunnerFactory which makes the setup easy.

Change-Id: I504ca5afe232cb4e3aa0bb0b67271637a7e7a9d0
Reviewed-by: hjk <hjk@qt.io>
2024-01-17 12:34:59 +00:00
Dominik Holland
c81efc39c8 Create RunConfiguration specific DebugWorkerFactories
Instead of relying on the DebuggerRunWorkerFactory to match for all
RunConfiguration, every plugin needs to create a WorkerFactory for
its own RunConfiguration.

Similar to the SimpleTargetRunnerFactory there is now a
SimpleDebugRunnerFactory which makes the setup easy.

Change-Id: I25aaabcd70f7ac649baeab4eb4c7e88d53dac91e
Reviewed-by: hjk <hjk@qt.io>
2024-01-17 10:17:41 +00:00
hjk
2f987932c1 QmlProjectManager: Hide plugin class in .cpp
Change-Id: If9ed1c00c53f127ba328f5011772431b5e5b25f9
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2024-01-16 13:44:46 +00:00
hjk
b63e2d39e8 QmlProjectManager: Cleanup qmlprojectplugin.cpp
... in preparation of moving the plugin class.

Change-Id: I449439f8db0a1c74dde51bf33a6f0e01fbc2a727
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2024-01-16 11:46:07 +00:00
Karim Abdelrahman
94125f9416 QmlDesigner: Disable MCU unsupported workspace and views
This patch disable unsupported 3D workspace and some views
from view menu and toolbar combobox

Task-number: QDS-10336
Change-Id: Ic97baead8029a93ae95707b9349f81f02adb6335
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Yasser Grimes <yasser.grimes@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2024-01-15 12:43:38 +00:00
hjk
016936a450 Clean up some lambdas
Change-Id: Id947c0935b1aa4579e1c64d3e510db41103fbe27
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2023-12-12 10:55:32 +00:00
Tim Jenssen
9f1d23df00 Merge remote-tracking branch 'origin/qds/dev'
Change-Id: Ic852bc9977d0292fb6cd93a319f4bfdebb22a1b0
2023-11-16 17:17:46 +01:00
hjk
b6569b9333 QmlProjectManager: Allow opening remote .qmlproject
This get rid of two instances of FilePath::toString and allows now
to opens the default wizard-generated "Qt Quick UI Prototype"
.qmlproject.

As the QmlBuildSystem is still heavily tied to the local file system
this here is only a baby step towards fully functionial remote
.qmlproject support.

Change-Id: I940f99472d45d9ade4966cf4f15b0692a51f2e7b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-11-15 15:00:37 +00:00
Sivert Krøvel
b080a3772c Handle nodes and properties required by MCUs in JSON conversion
Qt for MCUs uses several features in the qmlproject files which
are unknown to QDS. It is important that this information does
not get lost when converting to and from the internal JSON
project format, to avoid breaking MCU projects.

The following changes were made:
- Files nodes keep the type (ImageFiles, QmlFiles...)
- Added support for more Files node types used by MCU projects
  (ModuleFiles, InterfaceFiles, FontFiles...)
- Files nodes can have child properties
- Added a JSON object to store properties unknown to QDS.
  They may be used by Qt for MCUs, and new properties may
  be added between versions
- Added support for the MCU.Config and MCU.Module nodes
- Added a test project for MCU. This project is also tested
  with Qt for MCUs. Both the original and the converted
  project build correctly
- Added instructions for notifying the MCU team before
  modifying the MCU test cases to avoid breaking changes.

Fixes: QDS-10774
Task-number: QDS-10969
Change-Id: I0dfd7f3b150a8661fc0398a8a3d575c7e8777ef3
Reviewed-by: Burak Hancerli <burak.hancerli@qt.io>
Reviewed-by: Yasser Grimes <yasser.grimes@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-11-14 12:22:36 +00:00
Leena Miettinen
0ae211586e UI text: Fix "the the" in visible UI text, comments, and docs
Change-Id: I9b126ffa15b808fdb6f900a36453a9864248d35e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-11-13 11:08:11 +00:00
Knud Dollereder
578b66727a QmlProject: Add QML_IMPORT_PATH to the main cmakegen template
Change-Id: Idd55f372701c76f43869abfc3b493247e06ce8f5
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-11-08 12:53:16 +00:00
hjk
6685f0255d Utils/all: Move mime constants into a central place
They are reasonably standardized, and generally usable cross-plugin,
so this can help to avoid a few cross-plugin compiletime dependencies.

Change-Id: Icb2b010c3e12dee69df54ab16f6f8e90d9cffba6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-11-08 09:59:26 +00:00
Tim Jenssen
b5c60597dc Merge remote-tracking branch 'origin/12.0' into qds/dev
Change-Id: Iefea658312bba6675eadce23fb8dc92f9207ea0e
2023-11-01 16:40:26 +01:00
Thiago Macieira
6eca31c424 Add missing includes for QPointer
qtbase removed some indirect include somewhere.

Change-Id: I477e6dccebda4fbb81f6fffd179115840c67002f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-10-25 05:47:32 +00:00
Burak Hancerli
ab2c25d52a QmlProject: Absolute files paths are ignored
This patch fixes issues with adding files to the project by
providing the absolute paths in the .qmlproject file.

- If a directory is given without an explicit file list,
then that directory wil be searched recursively.
- If explicit file list given without a directory, then each
file will be added to the project separately.
- If both provided, then each file wil be prefixed with given
directory, and added project separately.

Task-number: QDS-10636
Change-Id: Ia13964ce2b3f6364d1def1aa71e20ec29f6f3542
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-10-20 10:08:24 +00:00
Tim Jenssen
85ea2758ac Merge remote-tracking branch 'origin/qds/dev' into 12.0
Conflicts:
	share/qtcreator/qmldesigner/connectionseditor/SuggestionPopup.qml
	share/qtcreator/themes/dark.creatortheme
	share/qtcreator/themes/default.creatortheme
	share/qtcreator/themes/flat-dark.creatortheme
	share/qtcreator/themes/flat-light.creatortheme
	share/qtcreator/themes/flat.creatortheme
	src/libs/utils/CMakeLists.txt
	src/plugins/CMakeLists.txt
	src/plugins/qmlprojectmanager/qmlproject.cpp
	src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp

Change-Id: Idd87c281e1aa7b7fd2702473ad55e18563cbfb21
2023-10-05 15:53:42 +02:00
Tim Jenssen
97ca8cc270 Core: add ICore::isQtDesignStudio()
Change-Id: I3aed97b62abd05b283ac327be210af75f173383d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-10-04 14:39:39 +00:00
hjk
342e066886 Utils, all: Standardize on QtcSettings
Change-Id: Id222016f15b1c3bfe6710fe5d0297666d4565ef1
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-09-27 13:25:31 +00:00
Tim Jenssen
8e0e097f55 QmlProjectManager: use qmlpuppet as qmlRunCommand only at host
Change-Id: I7a8e33bdf1007f26e45514abde378ca9b6799c81
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-09-25 18:34:27 +00:00