Commit Graph

8032 Commits

Author SHA1 Message Date
Jarek Kobus
dfd06ec175 TaskTree: Fix destruction of running task tree
Delete all storages that were created before.

Change-Id: I8cbeb571424086b77fa7b19611c5b3f6cc1f4db1
Reviewed-by: hjk <hjk@qt.io>
2022-11-23 12:59:29 +00:00
Jarek Kobus
3468cd20ca TaskTree: Introduce Storage item
The Storage item makes it possible to define the whole
subtree as a self-contained, full-functional recipe, without a need
for passing (together with recipe) a one-use only (disposable)
pointer to storage object.

That's the last closing element of making the idea of pure,
value-based recipe real. It makes the TaskTree machinery ultimately
powerful.

Change-Id: Icd81bdd3e94251e8b241b2b550957d566fa4ab75
Reviewed-by: hjk <hjk@qt.io>
2022-11-23 12:59:18 +00:00
hjk
fa1adf4d40 CPlusPlus: Proliferate FilePath use
The starts with CppDocument::filePath(), plus a bit of the fallout

This is one patch of potentially many. It is hard to draw the
line where to stop this kind of chunk, this here converts a few
additional functions for which including it in the patch looked
like less churn than without.

Converting is mostly fromString/toString, with a few exceptions
for "already seem" like caches, that use cheaper "path()" to
avoid likely performance regressions (on Windows FilePath
comparison is currently case-insenstive, and more expensive).

There should be no difference for local operation with this patch.

Change-Id: I7b35f98a0a6f0bfed4ea0f8f987faf586f7a8f2b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-11-22 15:30:00 +00:00
Marcus Tillmanns
3e6c3d9fe7 Utils: Add "addCommandLine..." functions
addCommandLineAsSingleArg allows to reliably create commandlines
like "bash -c 'echo ...'"

addCommandLineWithAnd combines two command lines
by adding '&&' in between

Change-Id: Ic5af34c90fd5271dced40ba1341a3df019ededb8
Reviewed-by: hjk <hjk@qt.io>
2022-11-22 13:17:00 +00:00
Miikka Heikkinen
e3a817ec77 QmlDesigner: Hide or disable material browser and editor if no library
If material library is missing, material browser and editor UI should
be disabled, except for material editor main pane in case of root
material node.

Change-Id: I3d2bd545de0649fb90d3fe1f751d46b7c7054bbf
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-22 10:05:55 +00:00
Jarek Kobus
292e8f510e Add manual test for TaskTree
Change-Id: I92ea4d949729f59d2d1e262ecd38fc3be4f463fe
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-11-18 16:36:59 +00:00
Jarek Kobus
34a7ada66b AsyncTask: Add async task adapter for task tree
Change-Id: I9fd90fef0d9eedfaca6e405ada5aa26006f06e33
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-11-18 16:34:59 +00:00
Jarek Kobus
30eac65e09 Utils: Introduce AsyncTask
AsyncTask encapsulates a function and arguments list
for further asynchronous invocation (using Utils::runAsync).
This is going to be a part of TaskTree hierarchy.
It will enable keeping asynchronous tasks inside the tree.

This means we will be able to construct a task tree
consisting of a mixture of processes and asynchronous tasks.

Implementation-wise this is a simple templated subclass of QObject,
where template parameter is of asynchronous result's type.
It holds QFutureWatcher object internally in order to
track task's running state.

Change-Id: I96f307cdf663cadc840465debb353ab55a2c3550
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-11-18 16:06:18 +00:00
Jarek Kobus
4e4176a3d3 TaskTree: Add task tree adapter for task tree
Now it's possible to nest TaskTrees. A nested TaskTree
is seen as one, singular task inside parent tree.

Change-Id: Iad95de39c7b79580e0b589c222594de91d5b51a1
Reviewed-by: hjk <hjk@qt.io>
2022-11-18 15:31:03 +00:00
Jarek Kobus
1f59f42287 Remove unused includes of QLayout
Change-Id: I12777e07f3d6fcc639b48f02080e73b1a0a3ea30
Reviewed-by: hjk <hjk@qt.io>
2022-11-18 15:29:35 +00:00
Jarek Kobus
1a70403f94 Remove unused includes of QFormLayout
Change-Id: Ia877cb57037342f2a7b332b29d9cb45e9b01c4bc
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>
2022-11-18 07:33:29 +00:00
Jarek Kobus
7ab95906b9 TaskItem: Move enums outside of TaskItem
Change-Id: If8a2b285bf9d9bd5a5b7222c13772c1a873daf23
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-11-17 15:07:59 +00:00
Jarek Kobus
a4b7e10861 TaskTree: Implement simple progress reporting
The progressMaximum is the number of tasks in tree.
The progressValueChanged signal is emitted whenever task is done
(advance by one) or when some number of tasks were skipped or stopped
due to workflow policy or dynamic setup group handler.

Change-Id: I403059a6466ae0534ef647c3c1c61c0318f10325
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2022-11-17 15:07:47 +00:00
Jarek Kobus
e38db06203 TaskTree: Add taskCount() getter
Will be helpful when implementing progressMaximum.

Change-Id: I9204b53425054a01c96f3b926b595f7888f81e3a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2022-11-17 15:07:34 +00:00
Jarek Kobus
234b3d1e6f TaskTree: Add DynamicSetup handler for groups
DynamicSetup enables finishing group (with Done or Error)
immediately before the group was even started.
The handler is invoked dynamically, just before starting
the group. The handler may also allow for running only
selected children and omitting others, so it may serve as
dynamic condition or dynamic multiplexer. This can be achieved
by modifying QSet<int> childrenToRun field inside returned
GroupConfig and setting the policy to ContinueSelected.

Change-Id: I15bddbb866a89ae9f783c59cc4bca89dd6a81c75
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2022-11-17 15:07:22 +00:00
Christian Kandeler
953000b981 CPlusPlus: Add new usage tag "Template"
For use in follow-up patch.

Change-Id: I49c057280be9b09862a89fa385a7396f1b1093bb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-17 15:02:09 +00:00
Tim Jenssen
213d60ad64 Merge remote-tracking branch 'origin/qds/dev'
Change-Id: I74bf2bfb1eacb60675640c47eb41ce51dd6eb99f
2022-11-16 18:22:59 +00:00
Eike Ziller
ae67799eb3 Merge remote-tracking branch 'origin/9.0'
Change-Id: I2123e09f75199a63af6e8505fb8889e7f9d025d2
2022-11-16 09:40:34 +01:00
hjk
ef658663aa Utils: Remove internal /./ relative path marker
Some creeped into settings earlier, making the paths that were
meant to be empty look non-empty.

Also add a test for FilePath::isEmpty().

Change-Id: I99e3dd673294206558f9fee9b7c7874d2441327e
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-11-16 07:23:46 +00:00
Robert Loehning
b85183d966 SquishTests: Improve tst_memberoperator
- Update expected behavior
- Update to ClangCodeModel replacing "." with "->"
  only after selecting a completion
- Update to ClangCodeModel no longer announcing
  needed substitution in proposal widget
- Added test for unchanged lines
- Stabilize by using proper wait conditions
- Fix surplus warning

Change-Id: Ia90e0102d44fbd8abb41acaa83509657ad11bf4d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-15 08:48:16 +00:00
Robert Löhning
80885d12e0 SquishTests: Update tst_installed_languages
Change-Id: Ic06b6241df913ebcfe685936f3c509875a2897bc
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-15 06:45:00 +00:00
Eike Ziller
3f0f9a63c0 Merge remote-tracking branch 'origin/9.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/clangcodemodel/clangdcompletion.cpp

Change-Id: Iaa92bf057d7696d2da10802ff95e80863f3235d8
2022-11-14 15:26:20 +01:00
Christian Stenger
a6774dbad5 Tests: Fix dumper tests on macOS
Change-Id: I7827245017c285ff7c9eb4799a7b340061f3c4af
Reviewed-by: hjk <hjk@qt.io>
2022-11-11 14:28:00 +00:00
Robert Loehning
c6e08d6940 SquishTests: Enable clangd also on machines with low memory
Change-Id: I92caa0da779aacf731a0aa23a86f55e659c51d2b
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-11 09:14:35 +00:00
Eike Ziller
f147ef73eb Fix compilation of tasktree tests
Change-Id: Id20b581c53cc4f55735b4047bd9ba723b0e370da
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-11-10 12:47:33 +00:00
Eike Ziller
10dca6b37f Merge remote-tracking branch 'origin/9.0'
Change-Id: Ie069f3b2a1200b3e665341b1d56ce836024b0d29
2022-11-10 13:22:43 +01:00
Christian Stenger
7205ff6c25 Tests: Fix compile with Qbs
Amends c49de14c9d.

Change-Id: Ife37f6763b9039a46d63a7f1b4ef16fd0e787d01
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-11-10 05:52:20 +00:00
Jarek Kobus
c49de14c9d Utils: Introduce TaskTree and Tasking namespace
The TaskTree class is responsible for running async task tree
structure defined in a declarative way.

Change-Id: Ieaf706c7d2efdc8b431a17b2db8b28bf4b7c38e5
Reviewed-by: hjk <hjk@qt.io>
2022-11-09 17:06:31 +00:00
The Qt Project
f56420ee07 Merge "Merge remote-tracking branch 'origin/9.0' into qds/dev" into qds/dev 2022-11-09 15:42:39 +00:00
Tim Jenssen
f8c99ebd9a Merge remote-tracking branch 'origin/9.0' into qds/dev
Change-Id: I02fd6f492c27d85b88af7ec8bc18ff62f2c6ed14
2022-11-09 16:41:12 +01:00
Robert Loehning
01bbe3a4d5 SquishTests: Remove unused object
Amends 2acc90a0ba

Change-Id: Ie88fb9278c81b3c7a27df93a78978974d86e5377
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-09 13:22:31 +00:00
Robert Loehning
af6741b5f2 SquishTests: Update tst_basic_cpp_support
While the old code model used to jump to the "extern" line,
clangd jumps directly to the linked variable.

Change-Id: I2817d87697b6040afdd538e8e15b4b40ef17e124
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-09 13:21:58 +00:00
Robert Loehning
c4164738b8 SquishTests: Stabilize tst_basic_cpp_support
Make sure the CppEditor is available before proceeding.

Change-Id: I34ed4f581637cc3608283ac045ceb5b4e6ada55a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-09 13:21:38 +00:00
Marco Bubke
63022d08ea QmlDesigner: QmlPuppet as standalone tool
The qmlpuppet is now a standalone tool. There is new a library too with
the communication code. That is shared between the designer and the
puppet. It's in a .cmake file so it can be included by the standalone
tool if it is not part of a designer build.

Task-number: QDS-5879
Change-Id: I2bc2a0b463fbb3e0c8c23d182abfd368cf87e968
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-11-09 12:29:38 +00:00
Jarek Kobus
a8801eff5f ProcessTestApp: Make setupSubProcess const
Change-Id: I1dd45baebb32135cba6a35040d8e87a0bcc5d3ac
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-11-09 07:21:51 +00:00
Marco Bubke
77e49a954e QmlDesigner: Workaround strange superClasses behavior
superClasses() return not only the super classes but the type itself. We
should later fix that and introduce something like prototypes().

Change-Id: Ied9c1edad40754cb995bfb26b8d65b0aa3d17753
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-11-08 14:04:53 +00:00
The Qt Project
7dd4af1a34 Merge "Merge remote-tracking branch 'origin/9.0'" 2022-11-07 14:27:48 +00:00
Christian Kandeler
3e3569f6dc CPlusPlus: Add more usage tags
To be used in subsequent patches.

Change-Id: Id7140aa39bb2adba343cc12b0273c90f3c12abeb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-07 13:24:58 +00:00
Eike Ziller
63c1bc572a Merge remote-tracking branch 'origin/9.0'
Change-Id: Ie24672b00aae6c0afa5931d87e6e1c24fb841161
2022-11-07 12:59:28 +01:00
Robert Loehning
176df5827e SquishTests: Fix tst_CSUP04
Change-Id: I4d9546c13451d8e56a1bc616c3ac8a7640db3204
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-07 11:41:46 +00:00
Christian Kandeler
d891e18edc CPlusPlus: Make Usage::Type QFlags-based
We want to extend the enum with more non-exclusive values.

Change-Id: I4d8ebe1f7327139c7817b9f621b4b74a883c5e09
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-07 11:33:33 +00:00
Robert Löhning
724d275f4f SquishTests: Update tst_QMLS01
Change-Id: I8313aa6dbd9120341bcd9eee7b8d7c72f051a9b9
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-07 09:50:04 +00:00
Marco Bubke
e3bf172585 QmlDesigner: Handles directories in Project storage updater
All directories are searched for qml files and they are added to the
meta data. If the directory is changed the qmldir is always parsed even
if it was not changed. We can optimize that later but I think there is
no big advantage fot this optimization.

Task-number: QDS-5297
Change-Id: Ibe3102520bc18ac474380aad306486d8e25bc5db
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-11-03 14:47:50 +00:00
Tim Jenssen
40072fb5c7 Merge remote-tracking branch 'origin/9.0' into qds/dev
Change-Id: I5f72661f1fc54ff861e2cbbaa4cb32f867924c3b
2022-11-03 15:32:29 +01:00
Marco Bubke
f51162a3fe QmlDesigner: Improve ownership of QmlProjectItem
Change-Id: Ibfe4b0b5314dada85a601a8f27003af135df78f1
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2022-11-03 12:58:21 +00:00
Eike Ziller
68388a38dd Merge remote-tracking branch 'origin/9.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp

Change-Id: I154a9ababa9e166cb06e98652d481fe6234f6399
2022-11-03 13:44:37 +01:00
Robert Loehning
d063e21c2e SquishTests: Update and stabilize tst_HELP06
Change-Id: I1d97a550c9b63b8b04f0bd32d23c5bf249b6ccc5
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-28 13:50:07 +00:00
Marco Bubke
2bbae7d499 QmlDesigner: Detach views outside of model destructor
modelAboutToBeDetached can still calling the model. So calling the
function from inside the model destructor is a little bit undefined. To
get around it we add a custom delete which call the detachAllViews()
before it deletes the model.

Change-Id: I38ff8283f4e1ac48b256aeb9fd5bb9f3fb6bfed1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2022-10-27 14:48:31 +00:00
Robert Löhning
5039ebff70 Help: SquishTests: Updates for tst_WELP01
Change-Id: I2e25f8c3368c4c00c13827f5eb70d9e3a4fc5a9e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-26 07:33:16 +00:00
Cristian Adam
4fdbfe1641 CMakePM: Proper handling of relative toolchain files in CMakePresets
Previously it was only tested with absolute paths.

Change-Id: I3871da60f3f1b17ae4d2d4cfb69d1be60da1435b
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-10-25 20:56:24 +00:00