Commit Graph

6637 Commits

Author SHA1 Message Date
Christian Kandeler
5f9cbe7fe8 Remove clangbackend
Change-Id: I5f4f9a2fc5469c4eeb112a46626791ffb9a57a85
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-05-04 10:04:17 +00:00
Christian Kandeler
4b0b3e9e35 ClangCodeModel: Move fix-it tests into plugin
Change-Id: If53df602a42d8c1ffde5db6c8cb1e7fc269bb272
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-05-04 10:03:47 +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
Christian Kandeler
6da7babc4a ClangCodeModel: Remove libclang-based completion and function hints
Change-Id: I742fb14b1aba3ba1f35a5c80bf553d2a735cac48
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-05-02 10:31:05 +00:00
Artem Sokolovskii
efd25fb43f Utils: Remove foreach / Q_FOREACH usage
Task-number: QTCREATORBUG-27464
Change-Id: Ic72d173d95376276df8d1f08abdaec8370aff2ba
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-05-02 08:54:36 +00:00
Christian Kandeler
b52fac7148 ClangCodeModel: Remove libclang-based diagnostics and highlighting
Change-Id: Ib7c423884b76c27a6350ddea611919d3352fb80e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-05-02 07:51:51 +00:00
Christian Stenger
2e725b4869 Fix qbs build
Amends 88781a003f.

Change-Id: I5b44d89cc1b536d0d533cd29fc3a06005a7c80d3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-04-29 10:15:21 +00:00
Cristian Adam
88781a003f CMake: Qt Creator Static build support
This adds the build system feature that allows Qt Creator's libraries
and plugins to be compiled statically.

Fixes some symbol clashes when all plugins are linked into the same
executable.

Support for actually loading static plugins will be added in a separate
commit.

The feature is controlled by QTC_STATIC_BUILD which by default is OFF.

Change-Id: I1fab7953c43e42dc75619e35660029ee067106df
Reviewed-by: hjk <hjk@qt.io>
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-04-29 07:16:53 +00:00
Eike Ziller
93401c9c81 UpdateInfo: Retrieve output of maintenancetool calls separately
ShellCommand doesn't support retrieval of individual sub-jobs.
Simply use chained QtcProcesses and add a progress item directly.

This gets rid of fragile hacks that were needed to combine the output of
the two calls into a valid XML document.

Change-Id: I426c74f5fd2c522850daf9c077bfd09ce3f88bb1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-04-28 06:12:42 +00:00
David Schulz
11ce6e365f Utils: fix QProcess backend on Windows
Do not return false from QtcProces::waitForStarted if the process is
already running. This causes mayor issues on windows since QProcess
directly emits started and therefore switches to the running state after
calling QProcess::start.

Change-Id: I4604b08a59918d3df11c8a174b57e1e483e78a0d
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-04-25 10:04:48 +00:00
Eike Ziller
e2d5b6616a Merge remote-tracking branch 'origin/7.0'
Change-Id: I01ce83a2da66bb65af37c0ecc92372789cb85c01
2022-04-22 10:04:39 +02:00
Christian Stenger
9656eb9e7a QmlJS: Fix more invalid M325 cases
Fixes: QTCREATORBUG-27380
Change-Id: I76d1ef3d2f2a4cc9d930a006ecb3b564efea3fbc
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
2022-04-22 05:24:21 +00:00
Eike Ziller
d1686e1867 UpdateInfo: Fix parsing of update info
It was no longer showing any updates. At some point MaintenanceTool
added <?xml...> headers to its responses, which broke our combine-and-
parse hack, since such a header in the middle of XML is invalid.

Add a hack that removes these headers first. This should be refactored
without the use of ShellCommand in master, because that doesn't allow us
to access the output of the two jobs separately.

Change-Id: I7248b070a8edb1a45248b3531ed50bb0d94eef73
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-04-21 06:56:56 +00:00
Eike Ziller
98dda165e4 UpdateInfo: Add some auto test
Change-Id: If97121bda98e1b09f093d0bcc8f60efb1aa18235
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-04-21 06:56:47 +00:00
Eike Ziller
3b2134711b Merge remote-tracking branch 'origin/7.0'
Conflicts:
	src/plugins/webassembly/webassemblyrunconfiguration.cpp
	src/tools/processlauncher/launchersockethandler.cpp

Change-Id: Iab052af98013aa59282c16f22ae6e9ecb32f50c4
2022-04-20 16:12:41 +02:00
hjk
b1392e7938 Docker: Add x11-apps to manual test installation
Running xeyes is a good check that X works.

Also, don't remove the package data base in the run setup, that makes
further configurations (too) inconvenient.

Change-Id: I5760b99f6e2ed3e4539580049f04d24b64cecfd8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-04-14 12:28:10 +00:00
Jarek Kobus
a4a651aa32 QtcProcess: Fix StartFailed result
Amends 4ca336762e

Change-Id: I3781bec37b17ea3f86eedc51657db0931a456c39
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-04-14 07:55:22 +00:00
Christian Stenger
3b5ef55a32 Squish: Ensure treeview items are accessible
Before using mouseClick() we must ensure the items are really
accessible. So, scroll the view to the respective item explicitly.

Change-Id: I9e460b9f8cd64590d8a59692ba2d726495de3d92
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-04-14 04:35:28 +00:00
Robert Löhning
ef52fa743b Squish: Fix tst_cmake_speedcrunch for Python3
Change-Id: Ide963d0ee27ff14fdd3d5f4f2bd4dd7b94254521
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-04-13 11:41:17 +00:00
Christian Stenger
113c867bda Squish: Ensure we get str output from commands
Change-Id: I4e7ff85d2e2afbf714e9d16ae07e56d93cc57655
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-04-13 10:09:23 +00:00
Christian Stenger
0c1b5065c8 Squish: Remove obsolete workaround
Squish forces file dialogs to be real QFileDialogs for a long
time while testing.
Beside being no more necessary the workaround also causes
problems nowadays.

Change-Id: I211b64e61a0e28ede2a38d4d90cea5da350fa749
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-04-13 04:29:19 +00:00
Robert Löhning
e4463ba6d4 Squish: Port tst_create_proj_wizard to Python3
While staying compatible with Python2.

Change-Id: I1de16a4a066b00bc11b4142e144d7b9246f7c14c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-04-12 20:59:28 +00:00
hjk
76d5e7770d QmlDesigner: Avoid compilerwarning in test
[1262/1277] Building CXX object tests/aut...s/tst_qml_testcore.dir/tst_testcore.cpp.o
tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp: In member function ‘void tst_TestCore::writeAnnotations()’:
tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp:8707:21: warning: loop variable ‘child’ creates a copy from type ‘const QmlDesigner::ModelNode’ [-Wrange-loop-construct]
 8707 |     for (const auto child : rootModelNode.allSubModelNodes()) {
      |                     ^~~~~
tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp:8707:21: note: use reference type to prevent copying
 8707 |     for (const auto child : rootModelNode.allSubModelNodes()) {
      |                     ^~~~~
      |                     &

Change-Id: I496baf5424a7e07976aecdf3ad2402832bbc52d9
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-04-12 16:06:56 +00:00
Jarek Kobus
00acccfd3d QtcProcess: Fix terminate() for process launcher
ProcessLauncherImpl::terminate() was behaving the same as
ProcessLauncherImpl::kill() in case of process launcher
implementation - in both cases the launcher
immediately returned confirmation about receiving the
close request and was putting the corresponding
process into its reaper. However, the issue with this approach
is that we can't receive anymore any potential ready
read signal from the process being terminated after
a call to terminate().

The fix is to diverge the behavior of terminate()
and kill() of ProcessLauncherImpl. The behavior of kill()
remains the same, while terminate() just instructs the
process launcher to start termination without putting
the process into the reaper, yet.

Add a test that checks for any possible zombies.

We run the RecursiveBlockingProcess recursively. The most
nested process blocks. After a short wait we terminate
the outermost process. With this test we are trying to see
if terminating the middle process terminates also its
children and doesn't leave zombies.

Before we execute the test (and also by the end of this test)
we call Singleton::deleteAll() in order to ensure that reaping
of previously running processes has finished. We ensure the
number of running processtestapps is zero. Later, we ensure that
the leaf process was already started and the number of running
processtestapps equals the depth of recursion.

Fix apparent bug in getLocalProcessesUsingProc().

Change-Id: I7e2bc46ad5ca22f26620da86fbaf0fa00a7db3c3
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>
2022-04-12 13:59:41 +00:00
Christian Stenger
0bd4d38002 Tests: Remove ignored message
This soft assert is no more triggered a second time and
results in a fail now.

Change-Id: Ica850a19993797d412e0b5ff954b5e9760e21f53
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-04-12 08:05:17 +00:00
Jarek Kobus
2794b5e543 tst_QtcProcess: Get rid of lineCallbackIntern() test
This test introduced some additional private API to QtcProcess.
This makes refactorings of QtcProcess harder, as we need to
handle this artificial code working.

We have a real lineCallback() test instead which doesn't
employ this private API.

Change-Id: Idbc314210cecc2044e1ccc298e5d3e0a9747e811
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-04-11 15:26:10 +00:00
Jarek Kobus
a6fc7727a1 Get rid of SftpSession
Should be substituted by FilePath actions using remote paths.

Change-Id: Ib1e3913cc94d417045cbe6b922284a2f8ab6d71f
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2022-04-08 15:12:22 +00:00
Jarek Kobus
5715d433f4 Get rid of SftpFileSystemModel
It's being replaced with DeviceFileSystemModel.

Change-Id: I062f2a873ecede9755527e8ee7b8b4d578289c4b
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2022-04-08 11:50:15 +00:00
Marcus Tillmanns
bcfe2bc25a utils: Add additional tooltip to ElidingLabel
In case you want to set a real Tooltip for an eliding label

Added tests in tst_manual_widgets_infolabel

Change-Id: I72bcbf672415ce439c14e260e364fcd2f85fc733
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-04-07 07:28:22 +00:00
Jarek Kobus
97132cf7f0 tst_QtcProcess: Add a test that invokes a process recursively
After the required depth of recursion is met, the most
nested process waits for one seconds and crashes.

Change-Id: I8d9b359459fc7aa1983734685e5c5f19eb49ee94
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-04-05 11:40:20 +00:00
Jarek Kobus
8f427c1c95 tst_QtcProcess: Move subprocesses into a separate executable
Don't invoke subcreator test in order to run a custom process.
Run a separate executable instead. The advantages are:
1. Faster test running (no need for QTest specific code path
   when running subprocess).
2. Don't use std::exit() from subprocesses as it doesn't
   clean up properly. Use qApp->exit() instead.
3. This should support returning NormalExit and proper
   exit code of subprocess in case the code wasn't 0.

Change-Id: I1395bd8a7873c95a594c3e054087f00c55a15376
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-04-05 11:40:00 +00:00
Marcus Tillmanns
c246caf7a9 sdktool: Change tests to use QTest
* Moved all sdktool code into a static library, allowing us to link against the actual functionality in unittests
* Convert all tests to proper unittests

Change-Id: I5c93be0faecbd8b68e0923655483c870a2f408b5
Reviewed-by: hjk <hjk@qt.io>
2022-04-04 14:27:46 +00:00
Jarek Kobus
ab11c4373b QtcProcess: Introduce done() signal
Introduce QtcProcess::done() signal. It's similar to
QtcProcess::finished() signal, but also emitted when
process failed to start (so after QProcess::FailedToStart
error occurred).

SshRemoteProcess::finished() signal was already behaving
like this. So, we remove special handling of
FailedToStart error in this class and connect all clients
of SshRemoteProcess to done() signal, instead of finished().

Task-number: QTCREATORBUG-27232
Change-Id: If4240e2172f3f706e812bca669a1d5b24bdc3285
Reviewed-by: hjk <hjk@qt.io>
2022-04-04 13:28:12 +00:00
Christian Strømme
e45766cdc8 Make the ExternalTools classes accessible outside core
Change-Id: I225c22bc48b123fec4420761879382ea0a424029
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-04-04 08:02:11 +00:00
Jarek Kobus
679a7ba7ef tst_QtcProcess: Rename ProcessChannelForwarding into ChannelForwarding
Amends 91c11c769f

Change-Id: Ib38edca1f720a313c42ee6224cbd9109fb50fa84
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-04-04 07:20:02 +00:00
Alessandro Portale
91c11c769f Utils: Add mergedChannels test to tst_QtcProcess
Change-Id: Ia6c25004ca37c97c0cfa61bc2eb944493f796217
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-03-31 22:32:11 +00:00
Eike Ziller
c84380cdc8 Merge remote-tracking branch 'origin/7.0'
Change-Id: Ib2267ddbb702564a6e1c8f6b1db802bc9c45759d
2022-03-31 15:32:42 +02:00
GPery
f99094a0b8 CppEditor: Fix indentation for structured binding
Structured bindings were parsed as lambdas instead

Fixes: QTCREATORBUG-27183
Change-Id: I3c88dc1012e55edfe417504c17f6138e3356651c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-03-29 14:21:11 +00:00
Eike Ziller
780f5da7c4 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/studiowelcome/recentpresets.h
	src/plugins/studiowelcome/userpresets.h

Change-Id: Ie573b945eb28347a36ee1b3582fbd6ab0c0f866c
2022-03-28 15:10:11 +02:00
Samuel Ghinet
3935c671dd QDS New Project Dialog fix: recents should include all project properties
Previously, only the wizard category, name, and size were saved for
recent presets. Solved the problem by using the same kind of store (and
struct type) for Recent presets as for User/Custom presets - this way
we can save all properties.

Other changes introduced:
* After user creates custom preset C, then creates a project from it
(resulting in the creation of a Recent preset R), if the user then
deletes custom preset C, then the recent preset R will remain -
previously, all recents of the custom preset were deleted
* Now we can have multiple recent presets with the same name and size -
so, no distinguishing feature inside the Presets view. User will have
to look at Details and Styles panes to view differences.
* Replaced .ini format with *.json file format.

Change-Id: I500e9ac9378d4b9a393c3b0833ef6a34f785585c
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-03-24 10:31:16 +00:00
Jarek Kobus
127ca236a7 Ensure we never encounter the message about destroying QProcess
Until we remove the process launcher / process reaper.

Change-Id: I9c68c40c3c856c0a515277b69fc3084ba2addbee
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-03-24 09:42:07 +00:00
Christian Stenger
c1b585933b Squish: Fix remove kits test
cmake is automatically running when re-opening a project
and creates a temporary kit which was different when using qmake.
Switch back to qmake and enhance later to support cmake as well.

Change-Id: Id3e1dc23c828a6e2af5454863e1349d9866dfa38
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-24 05:55:16 +00:00
Christian Stenger
fcddfe5a8c Squish: Fix project wizard test
Change-Id: Iabf4463ac535cab025db3ee808e61f5fe7054095
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-24 05:55:08 +00:00
Christian Stenger
e7f314e02a Squish: Fix local git test
The test was written for a qmake based project. Explicitly use
one as default build system has changed.

Change-Id: Iccf5761915708dd66ba73aeda25ca6b61a8c0b99
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-23 13:44:28 +00:00
Eike Ziller
ae6c974fb2 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	src/plugins/android/androiddevice.h
	src/plugins/android/androidplugin.cpp
	src/plugins/android/androidplugin.h

Change-Id: I1a68354415283fe4a7450706520a576d2a1775e0
2022-03-23 14:16:07 +01:00
Robert Löhning
5b0b48177b Squish: Port tst_WELP03 to Python3
Change-Id: I997fb8cc44fab986b5f4e0aa6e6f1f92fccfd54a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-23 13:14:18 +00:00
Jarek Kobus
ae49fb213b Ensure that after a call to waitForFinished() process is not running
Amends 5de5f1cf0a

Change-Id: I64db8c6736c6a7cc6805813f852faf1048ebb629
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-03-23 12:12:39 +00:00
Christian Stenger
34b94d8cd2 Squish: Update Welcome page test
Change-Id: I447addcba50e932886a8ed5e730a1eab663a2224
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-23 05:37:42 +00:00
Jarek Kobus
5de5f1cf0a QtcProcess: Add a test for crashing app
Ensure that when waitForFinished() didn't timeout
but the process has terminated, it returns true,
like QProcess does, in contrary to what QProcess'
documentation says.

Change-Id: I6af5034f4df7fc2e14a83bab74334a8abefe7a0f
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-22 11:30:24 +00:00
Christian Stenger
f69de8b5bc Tests: Fix compile
Amends 47bcb63854.

Change-Id: I34a867b3b0b868933937e37e8268b98078aa3023
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-21 07:59:19 +00:00