Commit Graph

2760 Commits

Author SHA1 Message Date
Thomas Hartmann
56b14c9d18 QmlDesigner: Implement support for SignalDeclarationProperty
This allows implementing a signal with a signature.
e.g. signal mySignal(int i)

Task-number: QDS-7319
Change-Id: I23cb000a218d709218322e7f31c86076d3ad949b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-07-20 11:01:32 +00:00
Marcus Tillmanns
07cb8876db deviceshell: Fix racecondition and long running tests
When writing to stdout and stderr from two processes, their output could become
interleaved. To work around that, we write stdout and stderr to different files
and later combine them together in the shell script.

Since tst_deviceshell tests could run for a long time if /usr folder
is too big, added a check that first tests the runtime once.

Since we currently only support linux containers, limit the tests to
only run if the container platform is linux as well.

Change-Id: I4b313596cdf9acc839d54d7cc77c66fd53ac23bf
Reviewed-by: hjk <hjk@qt.io>
2022-07-18 08:06:06 +00:00
Thomas Hartmann
aeea22257c QmlDesigner: Add support for Behaviours
A Behavior will be added as a normal ModelNode to the default
property, but we store the property name in behaviorPropertyName.

The value of behaviorPropertyName cannot be changed after the
ModelNode was created, since I do not see any use case and it keeps
things simple.

Change-Id: I69ba1d4d706432cfbbd35b001238f623e6e0b4fd
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-07-13 15:33:07 +00:00
Thomas Hartmann
7354d8a462 QmlDesigner: Fix tests
We do not allow rect as id, since it is also a QML type.

Change-Id: I348071b9b1f6c3e72d3934770196421ce72d36b5
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-07-13 06:50:07 +00:00
Jarek Kobus
872494fc4b tst_QtcProcess: Increase the timeout
Fix recursiveCrashingProcess() flakiness.

Change-Id: I0d62368ccb5b67be691a787b6fa69717a4f024d1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-07-12 09:42:14 +00:00
Eike Ziller
d059a610b1 COIN: Arm auto tests
Some of our auto tests fail, so add an EXCLUDE_FROM_PRECHECK option for
add_qtc_test, which sets a corresponding label on the ctest, and exclude
these when running ctest on COIN.

Disable the Googletest based unittests for now, they are inconsistently
failing on CI, e.g. sometimes timing out after 60 seconds for tests that
usually take only a fraction of a second.

tst_perfdata from the perfparser submodule also fails. Temporarily
disable it explicitly, until the EXCLUDE_FROM_PRECHECK change can be
merged there.

Change-Id: I7e9d7aded75bbe8800f82f7aa125c181271a2a1f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-07-05 10:13:18 +00:00
Jarek Kobus
5d3b8c4d88 tst_QtcProcess::crashAfterOneSecond(): Increase the timeout
Increase the timeout to default 30 seconds when
waiting for finished. Apparently 2 seconds were
sometimes too short. We still ensure that waitForFinished
didn't timeout but finished eariler.

Change-Id: I12ca647b45537174c7c66d271e7c8a477184f2ff
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-07-05 07:24:34 +00:00
The Qt Project
d69cf8096d Merge "Merge remote-tracking branch 'origin/7.0' into 8.0" into 8.0 2022-07-01 13:27:55 +00:00
Eike Ziller
caed14b22d Fix pluginspec test for Windows release builds
Used a wrong name for the plugin library

Change-Id: Ic1cff07387b660a641c2f43bfb913bd8b8668c5c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-07-01 11:34:56 +00:00
Tim Jenssen
56bcad81ad Merge remote-tracking branch 'origin/7.0' into 8.0
Change-Id: I7cd5d3808007ef739212f4347ba9b16e7b298943
2022-07-01 09:22:10 +00:00
Tim Jenssen
a920bbf59f qmldesigner tests: remove unnecessary defines
Change-Id: I1363e7e2ac174b51236644dd37fe184e711e96d3
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-07-01 09:17:39 +00:00
Tim Jenssen
88080612bc tst_qml_testcore: fix spelling
Change-Id: I76345be2a8837c4371abf2f4a4695d1edebf2770
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-07-01 09:17:32 +00:00
Marcus Tillmanns
3958087124 deviceshell: fix hang on multithreaded access
When outputting a commands stdout / stderr / exitcode,
the shell was free to interlace different outputs.

This could trip the parsing of the output, leading
to the shell missing the exit code of a command.

When that happened, the caller might wait indefinitely
for a result that would never come.

To workaround, the shell script now writes each command output
to a temporary file first, which is then written to stdout
by a single subshell, that way guaranteeing that the output
of multiple commands will not interleave

Change-Id: I9d8e7e788f5922c612ff533e5ba063f61a22aa8c
Reviewed-by: hjk <hjk@qt.io>
2022-06-29 07:28:46 +00:00
Marcus Tillmanns
88651ecb3e deviceshell: Disable tests on old macos versions
The bundled "base64" tool of macos < 10.15 did not support
the "-d" option ( only -D ). We disable the tests running
on the local shell to keep them from failing.

Change-Id: I6af353869033ed15cefedc03e2562621d1ea9904
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-06-28 11:31:11 +00:00
Christian Stenger
8d3c2ab348 Tests: Disable SSE dumper test on arm macOS
Change-Id: Idc6f769a7967fa6afb27e419238a10d631bca0fd
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2022-06-27 12:56:47 +00:00
hjk
ffa3aad576 CPlusPlus: Inline some simple central functions
Depending on context, callgrind sees contributions of >8% to
the total cost of project parsing for these functions. The
functional are actualy executed executed out-of-line, often
for a function body of one "payload" instruction only.

Inlining removes the call/endbr64/ret overhead.

Change-Id: I6886f08e322fcaa4e0f54d424279e0a8c24e4718
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-06-24 11:49:41 +00:00
Thomas Hartmann
34491bdfc3 QmlDesigner: Only remove node with position
Extending the test case.

Change-Id: I37255de763262e069c2f9d30b1ce584a0347fbcf
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-06-24 08:32:14 +00:00
Jarek Kobus
b77645d133 tst_QtcProcess: Don't use errorOccurred() in tests
Change-Id: I71657e111ab09b599480874ed22e714142697c19
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-06-23 06:39:19 +00:00
Thomas Hartmann
092a1fc6a3 QmlDesigner: Support reparenting to new nodes in transactions
When we reparent to a new node that was created
during the same transaction, then this node has
no position. In this case we have to delete the
reparented nodes and they will be created
as part of the creation of the new node, since they
are children.

Change-Id: Icd1d02f29f529fc0f00809f7ecebf3eabfdc9a5c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-06-22 13:56:38 +00:00
Jarek Kobus
d8ad6b2a9e tst_QtcProcess: Connect to done() signal instead of finished()
Change-Id: Ie01349b1f9ec8189d6503df3ed0b2e1e1252d0f6
Reviewed-by: hjk <hjk@qt.io>
2022-06-21 14:54:57 +00:00
hjk
8e22e08d21 Test: Make valgrind modeldemo test compile with cmake
As on it, correct the handling of the launcher interface.
This still does not work due to wrong call of valgrind-fake.

Change-Id: Id835e84eee29720579ac2947906bb95f84377185
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-06-21 08:16:28 +00:00
Christian Stenger
7d69b5b208 Tests: Provide valgrind testapps in cmake build
Change-Id: I4ec94504e3d2265d066434e118ab2eae6279a42f
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-06-17 11:49:55 +00:00
Eike Ziller
7bd703d123 Increase ctest timeout for tst_qtcprocess
Default is 5 seconds, which is by far not enough.

Change-Id: I4a5851de3ec2268bd68b6a386efa8dfa181e0af3
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-06-14 09:59:59 +00:00
Eike Ziller
737877984d Use QTEST_GUILESS_MAIN where applicable
instead of QTEST_MAIN. Reduces the initialization that is done by the Qt
test applications, and can also reduce interference with normal OS
operations like the current window loosing focus.

Change-Id: If88f289281aa1c8703ac7d4dbe0799d067c16588
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-06-13 06:06:44 +00:00
Marcus Tillmanns
16c10cc913 DeviceShell: Don't use 'command' to test for base64
On (debian based) linux the "command -v base64" did fail to find
the base64 exectuable. Instead we now use "which".

Change-Id: I9b57527d93952b08bcb9abc7484a7e6891aa664c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-06-09 08:17:16 +00:00
Jarek Kobus
f051ed3076 QtcProcess: Add a test for various quit methods
The quitBlockingProcess() test examines different types
of process quitting and illustrates differences in
behavior.

Change-Id: I9209f00576e03eef66fbdf5665351138ed437ac9
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-06-08 06:57:49 +00:00
Eike Ziller
4ded73583d DeviceShell: Fix compile issues
- fix warning deviceshell.cpp:222:59: warning: suggest braces around
  initialization of subobject
- add missing dependency to app_version to tests

Change-Id: I6d61f26cbc6f51b28175257ab7d0f4d2b491fecb
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-06-07 13:36:25 +00:00
Marcus Tillmanns
0135c47849 device: Use multiplex script to allow multithread support
Previously the runInShell and outputForRunInShell methods were
exclusively processed single threaded, meaning all calls
were processed sequentially. With the multiplexed
helper script we can now run multiple processes simultaneously.
( see tst_manual_deviceshell )

Additionally the new script allows us to capture both
stdout and stderr from commands which was not possible previously.

Change-Id: I52f4fb46d872dc274edb9c11872d2f6543741b34
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-06-07 09:22:14 +00:00
hjk
abd289190e Valgrind: Inline CallGrindController into CallgrindToolRunner
No functional changes.

Change-Id: I3b73da69e20e4d0324c582544c67a84eac8dbdab
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-05-31 13:50:13 +00:00
Jarek Kobus
f3957d383f Utils: More forward declarations / drop unused headers [T-Z]
Round 1 - focus on headers.
For classes with initial in range [T-Z].

Replace QT_FORWARD_DECLARE_CLASS with QT_BEGIN_NAMESPACE and
QT_END_NAMESPACE and forward declare inside.

Change-Id: I4ac3a8391e6167aa2db3973a9f94a45ac3c8ebd1
Reviewed-by: hjk <hjk@qt.io>
2022-05-25 07:40:47 +00:00
Jarek Kobus
2853660a59 Utils: More forward declarations / drop unused headers [D-G]
Round 1 - focus on headers.
For classes with initial in range [D-G].
Try to keep the same separators between different kind of headers.

Change-Id: Id42cd7b3743a816f75cecb6b576c0e37cb057473
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-05-25 07:13:52 +00:00
Jarek Kobus
9db911ae12 Get rid of Ssh lib
Move the rest to ProjectExplorer plugin.

Change-Id: Id2f022359e7e01728779228ea1f7f0b05a81c8e4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-05-23 18:21:28 +00:00
Jarek Kobus
87f3e7563c Ssh: Rename SshConnectionParameters into SshParameters
Move it to its own header.
Get rid of SshConnection and SshConnectionManager,
as they are not used anymore.

Change-Id: I52fe20d7816ea57e7a7158ab2ae9565d50a76e21
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-05-23 12:03:39 +00:00
Jarek Kobus
edd9ddcd75 Get rid of SftpTransfer
Remove also sftpdefs.h. They are not used anymore.

Change-Id: I6c45a70cec2e01afdd1a668068e090f5d4abde9b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-05-23 11:51:35 +00:00
David Schulz
0422233af4 LanguageClient: Move the interface out of the gui thread
Change-Id: Iec34f5a0ca3f7f8e2306d3c8a50c2155b5b96807
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-05-19 09:49:42 +00:00
hjk
296edb321a Debugger: Add dumper for QAnyStringView
Change-Id: Ic7cd577559ae7e73a74daa93784b6f2e1c8abccd
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-05-19 09:15:58 +00:00
Alessandro Portale
db7ba4ad6f QmlProjectManager: Fix CMake build with absent Qt5::QuickWidgets
Change-Id: Ic6c211a629bc4e5f215abad0bd80c6edb64f5c5d
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2022-05-18 12:33:29 +00:00
David Schulz
0b6bc0d187 LanguageClient: Move the BaseMessage to JsonRpcMessage conversion
... to the client interface. JsonRpcMessages are the only messages used
so far and no other types of messages are currently used by any of the
supported Language Servers. If a client is going to need special message
parsing it can still implement a specialized client interface and
overwrite parseCurrentMessage. This is the preparation to move receiving
and parsing data passed to and from the language server out of the GUI
thread.

Change-Id: Ibd4cd95daab7efff947273ca9e7d457de0286f47
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-05-17 04:31:06 +00:00
Christian Kandeler
db1f2c8dd9 LSP: Do not copy a message before sending it out
Change-Id: I58cc1f50b504bf21ea4ee9f99edba2ae8dc1ca1c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-05-13 07:19:15 +00:00
Jarek Kobus
257abc627c SftpTransfer: Get rid of FileTransferErrorHandling enum
FileTransferErrorHandling::Ignore wasn't used anywhere.

Change-Id: I5826fc9f7871b06cd8f423d7e3b1d01a5b6cbdff
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-05-11 08:16:59 +00:00
Eike Ziller
9bf0efcbb9 Merge commit 'origin/7.0'
Change-Id: I90148816d32c81b9fef982b5010c785161d83097
2022-05-10 11:45:37 +02:00
Christian Stenger
81f33072b9 Tests: Fix compile of test app on macOS
Change-Id: I1a96bc57bae2aa3f1f7a1c0d6d4306cf5c36a78b
Reviewed-by: hjk <hjk@qt.io>
2022-05-10 06:19:33 +00:00
The Qt Project
0114f3acd6 Merge "Merge remote-tracking branch 'origin/7.0'" 2022-05-09 07:49:34 +00:00
Eike Ziller
70b9f13792 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	src/libs/utils/qtcprocess.cpp
	src/plugins/cppeditor/cppcodemodelsettingspage.cpp

Change-Id: I602f4ff13f9370ec20704efaea34b42445a75fd4
2022-05-09 09:48:28 +02:00
Jarek Kobus
6455d7fcf3 QtcProcess: Make the class final
Currently, as a result of many refactorings, the QtcProcess
is designed so that if you want to customize the behavior
you should implement custom ProcessInterface subclass.
Adding virtual methods directly to QtcProcess caused tons of
unpredicted side effects and nasty bugs, which were hard to
track and hard to fix, as provided fixes were usually fixing
particular case while introducing regressions in not related
code paths.

Consider also aggregating QtcProcess object instead of
deriving from it when some additional methods are required.

This patch removes the last virtual methods from QtcProcess API
and makes the class final in order to prevent from adding
any new virtual methods to this class in the future.

This commit message should make it clear that having subclasses
of QtcProcess is not a desired design. It's a post-mortem
conclusion. So: don't derive from QtcProcess - we mean it!

Change-Id: I1e43ed45be326b366422fd7db6e05ba48ea5fb98
Reviewed-by: hjk <hjk@qt.io>
2022-05-09 07:42:29 +00:00
Jarek Kobus
2856091c75 Get rid of SshRemoteProcess
It's being replaced by QtcProcess with path on device.

Change-Id: I29eb038d1b17151683f86855eb547e47f7f7dea5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2022-05-09 07:42:13 +00:00
Jarek Kobus
afe32bca30 Get rid of SshRemoteProcessRunner
It's being replaced by QtcProcess with path on device.

Change-Id: I89abacd686e00e3f42f6ab90e9439f015d73ce80
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2022-05-09 06:53:46 +00:00
Fawzi Mohamed
556ec7c20e qmljsreformatter: support nullish coalescing
qmljsscanner did interpret ?? and ?. as a single ? and thus as the
start of a ternary operator, breaking reformatting.

Fixes: QTCREATORBUG-27344
Change-Id: I0429d20aed0196743f1c20e6ceac11351d5a7a3b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-05-06 13:23:34 +00:00
Christian Stenger
1346ffc159 Dumper: Fix offsets for QFile members
Change-Id: I890b3f387505cf5acc8783e3dc7088515d6934cc
Reviewed-by: hjk <hjk@qt.io>
2022-05-05 07:42:09 +00:00
Jarek Kobus
8e931838ef Get rid of SshConnectionInfo
It's not used anymore.

Change-Id: Ie77c9d9bc8eb82c1f74cfdac2304bc6c2f92ee93
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-05-03 14:38:23 +00:00