Commit Graph

1898 Commits

Author SHA1 Message Date
hjk
771f1ef6d6 Utils: Rename SychronousProcess::terminate to stopProcess
To align with QtcProcess.

Change-Id: I02e739b55ec95d5f516037de38b4f6228859809f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-10 11:47:40 +00:00
hjk
d825805c39 Utils: Use std::function instead of signal SynchronousProcess callback
Simpler interface and use.

Change-Id: I8db448b7ccd12927b8f8fd347b0a92c3f76f7114
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2021-05-10 11:40:25 +00:00
hjk
c23cdd9262 Utils: Merge {synchronous,qtc}process.{h,cpp} file pairs
Mechanical to prepare merging the actual classes.
Adapting #includes.

Change-Id: I77a2c28129287778bc870c30cb890cd26bc2e62b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-10 09:47:51 +00:00
Eike Ziller
040d0cc1ef Android: Fix AVD display if there are no AVDs
Fix that a broken dummy item was shown in the AVD Manager tab in the
Android options, if no AVD is available.

Fixes: QTCREATORBUG-19338
Change-Id: I31550812c332ff78d107d79682e064aa9eae1070
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-05-10 09:47:12 +00:00
Eike Ziller
c213b93aff Android: Make avd output parsing testable
And add some tests

Change-Id: Ife0e0c60f55251a1ac23215055ece8fb01478d59
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-05-10 09:47:04 +00:00
hjk
bcb3efb3c6 Android: Use Utils::FilePaths instead of QStringList in JavaParser
Change-Id: I50cce4bd32ed494f2b68a9a3b7f6cb9108b92f66
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-07 07:50:13 +00:00
hjk
5813c7e8c2 Utils: Make SynchronousProcess use Utils::Environment for environments
Makes the interface more similar to QtcProcess.

Change-Id: I58e57d9fdb7c37eb0d2a5c5eef8643d6be97c3cc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2021-05-05 12:14:31 +00:00
hjk
2f593d9db9 LanguageServer: Use Utils::CommandLine in StdIOClientInterface
Change-Id: Ic2516387d7308bfad05cef54467c417cc47a7655
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-05-03 11:31:17 +00:00
hjk
8e352af0ec Core: Add a default parameter to various ICore::*path functions
Saves some code on the user side.

Change-Id: I32cd220b6e533f5497a1865f9c34ab9db4cfda79
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-04-27 06:52:05 +00:00
Eike Ziller
c1f90aeca2 ICore: Change some path API to use FilePath
Change-Id: Id841d6177206a021c9e606ce560b47d1ae6e52b9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2021-04-26 08:03:47 +00:00
hjk
5a9b715fed Android: Robustify aspect access by id
Warn, instead of crash in case the aspect implementation changes.

Change-Id: If74cb91395e317765d493a97dcd1cdecc6f94296
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-03-26 13:45:02 +00:00
Alessandro Portale
a25ea9febe Android/iOS: Don't add markup to display names of build steps
The display name is continuously read and written from/to settings.
Let's not add markup each occurrence, it accumulates.

BuildStep::summaryText has the logic to add the markup for the UI.

Change-Id: Ifbb74ccb8d2f0adcebbd69cc012a5b1376154934
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2021-03-26 11:21:36 +00:00
Alessandro Portale
bc7d0561c3 Android: Simplify pre-/post-run adb command input
AdbCommandWidget is cumbersome to use and has issues regarding updating
the enabled state of the buttons and the dragging and dropping of items.

Cut the maintenance and replace AdbCommandWidget with a StringAspect,
where one line means one entry, just like several other places in Qt
Creator do.

Some residue remains though: in order to keep project settings
compatibility, we need to convert from QStringList (settings) to QString
(StringAspect) and back.

Change-Id: I3ebfff882358ba2e8c0ac6d5b309e89a84f0554c
Reviewed-by: hjk <hjk@qt.io>
2021-03-26 07:02:31 +00:00
hjk
fdd69e27b3 Android: Prevent crash in AndroidManager::applicationAbis
... in connection with CMakeBuildConfiguration initialization.

Having an Android device type does not necessarily mean an Android Qt
version is selected in an incomplete kit.

Change-Id: Ib157166c45b7d2ac20eafd6437054b9232595c1e
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-03-26 06:58:36 +00:00
hjk
904f59a744 Android: Simplify implementation of aspect for extra commands
Change-Id: Ic8bd75d8d6cb183772d96263837f1ed307c5dc5f
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-03-25 16:19:32 +00:00
Eike Ziller
863260f1fd Merge remote-tracking branch 'origin/4.15'
Conflicts:
	src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
	src/plugins/debugger/gdb/gdboptionspage.cpp

Change-Id: I4149e860b6842ea63bff3a7eb9632b7a6c2919d8
2021-03-22 09:52:14 +01:00
Eike Ziller
8a7b9fbdd4 Merge remote-tracking branch 'origin/4.14' into 4.15
Change-Id: I72ac4dab24021f0272a30400cc801387f0dcb558
2021-03-22 09:24:41 +01:00
Andy Shaw
7ec825be5e Android: Ignore an error when doing an incremental build
Since this is not really an error but it is outputted to stderr,
we need to explicitly ignore it so it does not show an error
dialog.

Change-Id: Ia972cf134278216c317649b5483e3deac683374d
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2021-03-20 09:29:27 +00:00
hjk
035a6ff031 Utils: Avoid intermediate widgets when using LayoutBuilder
In most cases, the layout constructed in the builder was set
on a widget which in turn was put into a vbox in the actual
widget. This is not necessary, but needs some re-ordering.

Also make sure that using not-yet-parented widgets during
layout construction does not cause visible artifacts.

Change-Id: I75727a571da093d3131ea6fba467c2c646cdb6f1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-16 11:37:44 +00:00
Eike Ziller
4151f091e3 Merge remote-tracking branch 'origin/4.15'
Change-Id: If0dbebdf37b0ffea2528bf6ce6d34d88554f8dfb
2021-03-16 10:55:54 +01:00
hjk
2756794b4f Utils: Drop deprecated Utils::FilePath::{setFilePath,filePath}
Change-Id: I730dfb716f744bbcb62dedf611e93c0d2d358247
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-03-16 08:12:34 +00:00
hjk
d5dec08893 Utils: Pass settings key to BaseAspect::saveToMap
Makes the code on the user side somewhat more symmetric and is a
bit more flexible, even if that's not used right now.

Change-Id: I29a5182463ead0e4a39fcb51ecf4fdd5adf2a203
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-12 11:30:22 +00:00
David Schulz
d17277b546 LSP: reduce error handling complexity
Instead of checking recursively every possible object just check the
required keys for an object and validate it on construction or
assignment from json.

This will reduce the implementation effort for protocol extensions and
also reduce the false positives we might get if the protocol gets
updated.

Change-Id: I3df24e62430d2c7575d26c1581e6a9606e7da4c1
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-02 12:51:47 +00:00
David Schulz
925c4a3198 Android: Add path to Qt java bindings to project files
Change-Id: Ia3ee35732bece5870659cac338f26f815e3ce566
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-02-23 14:46:02 +00:00
David Schulz
3c80f1bd9d Android: Add 3rdparty jars to classpaths
Change-Id: Ibc645e2377d4cb6d5eddd86d77cbb7f8ca294f1f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-02-23 14:41:01 +00:00
Alessandro Portale
670616c6f9 Android: Use qAsConst with non-const Qt containers in range-loops
Change-Id: I1242a5c62a27b7b8f30bb7b43ff406eceb4135f7
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2021-02-23 10:51:37 +00:00
David Schulz
65d977ed93 Android: generate .project and .classpath
These files are needed by the java language server to operate properly.

Change-Id: Ie96a1fe32fefeea7333c7fa752557f79796a1478
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-02-23 08:52:04 +00:00
David Schulz
605df0c4b6 Java: use a temporary directory for the workspace
Change-Id: Ie8fc01f680393f141f099f57b98eb16a10b37d7e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-02-23 08:48:49 +00:00
David Schulz
94ee80b222 JLS: add special java client that can execute jls commands
the java language server uses special "java.apply.workspaceEdit"
commands that already contain the workspace edit that should be applied
when triggering the command.

Change-Id: If7c53b9b097aaeca289e3958a39be37a9725d395
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-02-19 11:42:59 +00:00
David Schulz
acd33a45d8 Java: add java language server settings
Change-Id: Ic8e8ce5833052fcbb3acb004ae577722e2ef8fc3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-02-18 13:56:42 +00:00
Alessandro Portale
ae5255cebd Android: Fix android-*-deployment-settings.json detection
Qt 6.0 + CMake: The name for the Android deployment settings file needs
to be determined by using the build key of the current run configuration
rather than by using the display name of the project root node.

Since in contrast to qmake/Qbs, CMake does not supply us with the file
name and we have to contruct it ourselves. Therefore, it makes sense to
move the value into the Android plugin.

This change adds AndroidQtVersion::androidDeploymentSettings which lets
qmake and Qbs still provide the value as before while handling the CMake
fallback.

Fixes: QTCREATORBUG-25209
Change-Id: I12314d06a45d6e045cb654d9140f9d2ed4602f67
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2021-02-18 09:34:48 +00:00
Jarek Kobus
d74edd2806 Remove unused includes of mutex classes
Change-Id: I5a34cda0b27786cb37e642479b11fbd24b8b5c36
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-02-18 07:02:07 +00:00
Christian Kandeler
7d4a632cb2 qbs build: Remove code for creating deployment packages
Not a use case anymore, and if it were, we'd do it using built-in
capabilities.

Change-Id: I4c588ad7fb282530880210cb4c5795677074b1e0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-02-17 16:11:49 +00:00
Alessandro Portale
9e2c6fbfca Android: Deduplicate string literals and use constants instead
Improves findability of identical string in code (via code model).
Reduces risk of typos.

Change-Id: I0e9d9af8eed5cd9b66bf303cfee99c53513bf314
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2021-02-10 10:32:15 +00:00
Christian Stenger
f6d4170c05 OutputFormatter: Reduce usages of DebugFormat
This is usually used in a wrong or at least misleading way.
Replace most of the usages by newly introduced GeneralMessageFormat
as most of the replaced usages just print to General Messages and
using any of the existing formats would change the layout of the
text. Except for some special debug output inside the valgrind plugin
that can use one of the existing formats which also makes it easier
to spot them and the runners which print QC internal output.

Task-number: QTCREATORBUG-24560
Change-Id: I824dc4250b2f3e4656bab8676b45c98e3407d59c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2021-01-21 08:18:54 +00:00
Eike Ziller
5572bc7220 Merge remote-tracking branch 'origin/4.14'
Change-Id: Ie52e046f8e280e8c39f0cc5e9e710b4f885010a6
2020-12-17 13:10:44 +01:00
Raphaël Cotty
e8e2aa8c7f Android: fix debugging with qbs
If the default libs path doesn't exist (which is the case for qbs) then
try to get the abis using the current project node data method using
the Android::Constants::ANDROID_ABIS flag.

Because in multiplex (multi arch) mode dynamic libraries are compiled in
different products, library paths must be gathered from those
sibling products using the "dependencies" json array.

Change-Id: I9409a6a12fd9f304f427ed7868a7060c8f985a0b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-12-15 15:39:44 +00:00
Eike Ziller
4bc2b4741d Merge remote-tracking branch 'origin/4.14'
Change-Id: I842a7c7358fd0ff6d85c151806e440043914e09a
2020-12-14 14:19:15 +01:00
Jarek Kobus
cf010911f7 Don't allocate unneeded temporary containers
Fix clazy warnings: allocating an unneeded temporary container
[clazy-container-anti-pattern]

Change-Id: I4b4c2c634eea650bbdf3c12d982a17f899fc94ec
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2020-12-14 12:35:47 +00:00
Assam Boudjelthia
f167811fb1 Android: fix Android SDK default path on macOS
Fixes ec68b4e96c.

Change-Id: I07b3a627c77d363c1e7e3b2ecc1222e211792959
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-12-14 09:34:47 +00:00
Oswald Buddenhagen
20a3eae86f fix memory leak in AndroidSdkDownloader::extractSdk()
put the process on the stack, so we don't need (and fail) to free it.
while at it, remove the pointless close() call.

amends f46099d2.

Change-Id: I4025691bebf2899efe006ee83012aefbb8797a64
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-12-11 14:54:47 +00:00
Eike Ziller
1283b15117 Merge remote-tracking branch 'origin/4.14'
Conflicts:
	doc/qtdesignstudio/examples/loginui1/qtquickcontrols2.conf
	doc/qtdesignstudio/examples/loginui2/qtquickcontrols2.conf
	doc/qtdesignstudio/examples/loginui3/qtquickcontrols2.conf
	doc/qtdesignstudio/examples/loginui4/qtquickcontrols2.conf
	share/qtcreator/debugger/dumper.py
	share/qtcreator/debugger/qttypes.py

Change-Id: Id44a67cdeeb0889ff96eddcdf409d20ca7cbdd0b
2020-12-10 13:02:02 +01:00
Assam Boudjelthia
ee199c3fed Android: setSticky behavior to follow other platform's kits
Don't set the whole kit's values to sticky, instead set only
device, toolchain, qt version properties to sticky to follow
the behavior of other platform's kits.

This also allow users to set specific CMake version for the kits
in case the selected one is not correct, since Android plugin doensn't
handle that anyway.

Fixes: QTCREATORBUG-25042
Change-Id: Ia6f6474b5ad9132e841e6e7024113439649b61f1
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-12-09 07:38:30 +00:00
Eike Ziller
b9a7864679 Android: Use new message manager API
Bring pane to front if error occurs when trying to install custom APK.
This is only triggered when the user explicitly presses a button, so
that is fine.

Task-number: QTCREATORBUG-24430
Change-Id: I4358e9a430ac220400ed70ebfe617f556d6e91a3
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-12-08 16:05:04 +00:00
Christian Kandeler
9cbcbfff33 Fix various clang warnings
Unused variables & functions, unneeded copies in range-for loops,
missing overrides.

Change-Id: I27b60e7c92a6ca425a84c89b537d5c3815449a94
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-08 15:39:20 +00:00
Assam Boudjelthia
ec68b4e96c Android: fix SDK path on macOS
Change-Id: I369cf218eb2fd42ede04a6cb6b638d6fa6282994
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-12-07 11:51:40 +00:00
Eike Ziller
d02afbe6b4 Merge remote-tracking branch 'origin/4.14'
Conflicts:
	src/plugins/projectexplorer/gcctoolchain.cpp

Change-Id: I2136ba89d3aa3c4c2a0e7a4f9d8ba9cec32924ce
2020-11-30 16:14:32 +01:00
Alessandro Portale
43c73b20e4 Android: Prevent multiple concurrent downloads of SDK tools
...by making the "Downloading SDK Tools package..." progress dialog
application modal.

Fixes: QTCREATORBUG-25013
Change-Id: I59979350d8f1ce5632ec520e1c661fff3399a283
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-11-30 15:01:11 +00:00
Assam Boudjelthia
3df31e9b4b Android: remove unnecessary setSummaryText for AndroidBuildApkStep
Amends 2d05822e27.

Change-Id: I24a9da450801953e1994384ae926c4f8b732b7b9
Reviewed-by: hjk <hjk@qt.io>
2020-11-27 08:28:02 +00:00
Assam Boudjelthia
6f17ad0562 Android: avoid QTC_ASSERT in addTask
Change-Id: I0b3eee749f21a031ff7b7f910b07719b03585759
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-11-26 19:03:01 +00:00