... rather than accessing the aspects directly.
Task-number: QTCREATORBUG-30925
Change-Id: Id39b6226f6bbee75b93905747373513294deb29e
Reviewed-by: hjk <hjk@qt.io>
... into parent class implementation.
This way, the executable expansion will be done for all sub-classes, the
remote custom run configurations being the most relevant ones.
Task-number: QTCREATORBUG-30925
Change-Id: Id7715d9f60338767c0623fa33749ef18338ae479
Reviewed-by: hjk <hjk@qt.io>
This way you can have code completion for the constant literals and not
do any accidental typos.
Change-Id: I1f9dc36327052fcda9575dddec909db93c4b225c
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
If a CMake preset has the CMAKE_CXX_FLAGS_INIT parameter defined, it
would override the QML debugging flag set before.
This patchset makes sure that both are present.
Change-Id: I2012567af04c2fa0b0097331c05d96770dd86503
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
The connectedDevices() constructs the full list of
AndroidDeviceInfo with details not needed by findAvd().
These details were generated by using 2 excessive
process runs. Get rid of them, and deliver result
as soon as the matching device if found.
Make getAvdName() public.
Change-Id: Ic58e2ee55f275e230c07631853225ca3fdefd730
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Before, the implementation used connectedDevices() function
which constructs the detailed info about each device
found, including running 3 extra processes for each device
in a loop. For the purpose of isConnected() - the detailed
info isn't really necessary - it's enough to parse the output
of the {adbToolPath(), {"devices"}} command and detect if
the requested serialNumber appears there. We skip executing
3 additional processes for each device found.
Change-Id: I34f79fb56b4aa4d52a284bc2c67ae01a3467b505
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Only print out additional information if the environment
does not match the expected one.
Change-Id: I9be1a90400a180a4cbd0381f54eea79409c007c7
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The item view was made read-only and this connect
only results in a warning on the command line when
double clicking an item.
Amends 8ef85e481a.
Change-Id: I32d6b9d38e2c554fb91f5cbd1f1f5fd1e6c1a394
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
In the edge case that the name of one variable starts with the name of
another followed by an underscore, we mistakenly stopped at the former
when searching for the latter in the text widget.
Fixes: QTCREATORBUG-30855
Change-Id: I6decf7805a937d52d25e6c62899ae062f636a2a1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This patch allows commenting environment changes or adding
comments to the batch edit widget.
To mark a line as comment prefix it with '##'.
Modifying the environment by using the batch edit mode
allows using '#' to disable variables.
Mis-using this to disable statements of the environment
items widget is tempting and other tools explicitly allow
it this way. But when doing so, the environment may get
some unforeseen modifications.
So, explicitly provide a mechanism for comments and be
more clear about this inside the documentation.
Change-Id: I6a58d0d00e996a3f886ec30e826cade324321818
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
On macOS we now (with Qt 6.7) get nice, high resolution pixmaps from
QIcon::fromTheme. That means that our wrong assumption that the pixmap
size == UI size leads to huge layout sizes for the indicator of the
current wizard page.
We need to take devicePixelRatio into account for determining the UI
size.
Fixes: QTCREATORBUG-31015
Change-Id: I6e9c77cf2f37fce60735e75c1fa694e4b4208b98
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Amends a25bbf23c6
The commit broke evironment variable usage in CMake presets. For example
"$env{HOME}" would have been expanded to "/home/user:/home/user" because
of code thinking it deals with paths.
Change-Id: I3ef34179e2ebaf55b25a42dcce87438c1a72b73e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Make it more conforming to the current Qt style:
1. Remove trailing semicolons after inlined functions.
2. Use Q_SIGNALS / Q_EMIT in headers.
3. Use QString::fromLatin1() where needed (as otherwise the string
c'tor is deprecated).
4. Use module names in Qt includes.
5. Simplify local asserts in barrier.cpp.
Change-Id: I13cadee6ff61a24d792efcf3b613f7cf5563076b
Reviewed-by: hjk <hjk@qt.io>
Before, the loop got finished after the very first
failure of the pid command. Fix it so that the loop
stops on the first successful execution of any child.
Make timeout task return error, so that the loop
continues executing after the timeout.
Simplify some commands' constructions.
Amends a7ece15f6e
Change-Id: I637002f0248ec69e61e058c7246471396aac1142
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
If a GCC compiler has platform codegen flags they will be set into
CMAKE_C_FLAGS_INIT or CMAKE_CXX_FLAGS_INIT initial CMake parameters.
The linker flags are set they will be set into
CMAKE_EXE_LINKER_FLAGS_INIT, CMAKE_MODULE_LINKER_FLAGS_INIT and
CMAKE_SHARED_LINKER_FLAGS_INIT initial CMake parameters.
If the kit has a Qt the CMAKE_CXX_FLAGS_INIT value will merge both GCC
C++ platform codegen flags and the QML Debugging flags.
Fixes: QTCREATORBUG-24420
Change-Id: I066d30b816ae8575f615654bb85bd82a394f9737
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
CMake can have custom build types. Qt Creator can rename existing build
types.
This changeset allows having a custom build type like for example:
* CMAKE_BUILD_TYPE=MyRelease
* CMAKE_CONFIGURATION_TYPES=MyDebug;MyRelease
Fixes: QTCREATORBUG-30014
Change-Id: I3d81d9ff867bfaab29aaf1741606f9c586da82e0
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Otherwise, a non-responsive device will freeze Qt Creator for ten
seconds (with no announcement, because the env call does not go through
the device shell).
Change-Id: I92ab847dd441494770dbe29cde1c726dd31f32fb
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
It needs an explicit constructor, otherwise it complains that it cannot
find a match to the Arg2{p1, p2} call (requires 1 argument, but 2 were
provided) etc.
Amends 6231213aa3
Change-Id: Ibe3b27b334b8abff5028a77372cf208bfda9d8c1
Reviewed-by: hjk <hjk@qt.io>
reduces the number of calls to ShortcutSettingsWidget::initialize while
the shortcut settings widget is open and actions get registered. For
example when searching the preferences dialog the shortcut settings
widget is alive and some setting page widgets create a text editor,
which again registers some actions.
Change-Id: Ieb3c3d1c7ce317c3407a9c97514f6cc4a4ce76c4
Reviewed-by: hjk <hjk@qt.io>
Copilot has changed the name of agent.js to language-server.js. This
patch adds the new name and changes the installation note without
changing the translation.
Change-Id: I585fe54c86029de32de806447ec3356999a99540
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
We normally use arm-none-eabi-gdb-py, but this doesn't come
with the new arm gcc version which ships with Qt for MCUs 2.8.0
To make sure the kit works, use this as a fallback.
Task-number: QTCREATORBUG-30699
Change-Id: I85c6c3ea1f7aae504e0aa1afb8a344d9bc3067d5
Reviewed-by: Kwangsub Kim <kwangsub.kim@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The settings keys are versioned to avoid the situation where the
installer removes a settings key which may still be in use.
See QTCREATORBUG-29194 for details.
When reading from user settings, it makes more sense to use the
non-versioned keys, especially in the case of the main Qt for MCUs
SDK package path. With this patch, the plain settings key is used
to read and write except for when determining the default value of a
path in the McuPackage constructor, where we want to also look in the
system scope settings for the values written by the installer, which
may be version specific
Task-number: QTCREATORBUG-30810
Change-Id: Ib1e2be170cb7da24b6e4534b59f702b894556d8c
Reviewed-by: Yasser Grimes <yasser.grimes@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
We set the executable by default to a single command which
should be used as found in PATH.
Although listed valid in settings some commands refuse to
run when we validate the command before running without
taking their full path into account.
Use the full path of vcs binaries internally to avoid
problems but still display single command if set.
Change-Id: If8677b531c5534d27c19557ed36fa780a248558f
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Otherwise this file is exlcuded from project search results.
Change-Id: I65ce5121ac105f5565c46e4b5a5fbd74bee966d6
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Leave only mentions to things visible in the UI and
to compatibility functions.
Fixes: QTCREATORBUG-30883
Change-Id: Id63d791f79363c2f4c2602bb8c0ed656a9ceab29
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Setting a plugin forceDisabled must also remove the forceEnabled flag
and vice versa.
Broke in b39b192518
Change-Id: I9c2b84de0753a1b283c301b9868650e62c088144
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... when removing from the list of FollowSymbol operations. The done()
callback of ClangdFollowSymbol messes with the list, so call cancel()
after removing the corresponding iterator.
Change-Id: Ibb72ffa436598692e48119d93d430bb79bcb0f5e
Reviewed-by: hjk <hjk@qt.io>
warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
Change-Id: I3a8203c1662cfba36ebe28ad3bd1b5ff46b55dfe
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Amends 5d159e6185
This commit reverts to Qt Creator 12 behavior, plus skipping .obj/.o
parts which are needed for linking but not for finding out library paths
that need to be added to PATH environment.
Tested with https://code.qt.io/cgit/qt/qtdeclarative.git/tree/examples/
qml/tutorials/extending-qml/chapter6-plugins
Without the patch (Qt Creator 12 behavior):
"C:/Projects/chapter6-plugins/build/Desktop_Qt_6_7_1_MinGW_64_bit-Debug/
Charts/CMakeFiles/chartsplugin_resources_1.dir/.qt/rcc",
"C:/Projects/chapter6-plugins/build/Desktop_Qt_6_7_1_MinGW_64_bit-Debug/
Charts/CMakeFiles/chartsplugin_init.dir/chartsplugin_init_autogen",
"C:/Projects/chapter6-plugins/build/Desktop_Qt_6_7_1_MinGW_64_bit-Debug/
Charts/CMakeFiles/chartsplugin_init.dir",
"C:/Projects/chapter6-plugins/build/Desktop_Qt_6_7_1_MinGW_64_bit-Debug/
Charts",
"C:/Qt/6.7.1/mingw_64/lib",
"C:/Qt/6.7.1/mingw_64/bin"
With the patch:
"C:/Projects/chapter6-plugins/build/Desktop_Qt_6_7_1_MinGW_64_bit-Debug/
Charts",
"C:/Qt/6.7.1/mingw_64/lib",
"C:/Qt/6.7.1/mingw_64/bin"
As you can see above, only skipping the .obj/.o files will bring a lot.
The change also doesn't come with the side effects of the Qt Creator
13.0.0/1 releases.
Task-number: QTCREATORBUG-29662
Change-Id: I264a0ef579177b7129471919b77cd22a46e7d511
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This can lead to a deadlock. Example scenario:
- Have a kit with an unreachable device as the build device.
- Open a project with a .user file not matching the current QtC.
- The target setup page will open, showing a candidate widget
for each kit. These widgets contains path choosers, which nowadays
start a dedicated thread to validate their input.
- The path validation thread for the Linux kit arrives at setupShell()
and tries to announce the connection attempt. To that end, it
invokes a method of Core::ICore::infoBar, using
Qt::BlockingQueuedConnection, as otherwise the call would either
not be tread-safe or arrive too late.
- As the InfoBar lives in the main thread, control is now passed back
to that one, and the target setup page continues its work, which is
to gather candidates for importing a build from. This involves
perusing potential build directories for all kits. In case of the
Linux kit, QDirIterator is backed by a remote call to find(), which
triggers a call to runInShell(), which tries to acquire the mutex
that is already held by the path validation thread, which in turn is
waiting for the UI thread.
- Qt Creator now hangs indefinitely.
Skipping the announcements for non-UI threads limits the usefulness of
this feature, but I don't see a better way.
Change-Id: I816c83358f543aa9a6e6e97eee7fa8ad95e66ea8
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
The TerminalInterface did not fallback to the system environment
if no environment was set by the user. Instead it had platform
specific code that saved over the path.
Instead we just apply the user changes to the system environment.
Change-Id: I011f1a9d935c958265b2bda8257ad8611f06e578
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Less guessing on the user side what effectively happens.
Change-Id: I6ace4645d40346ee942ae7390575f28992dd0c26
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
At QTCREATORBUG-29662 we have the issue when a program cannot be started
because the PATH environment variable had content longer than 2048
characters.
Qt Creator 12 had only one place that added paths to librarySeachPaths
namely the "bin" directories.
Qt Creator 13 tried to filter these "bin" directories to the ones that
have .dll files. This fixed QTCREATORBUG-29662 but had issues with dlls
having different names than the link libraries provided by CMake.
By only allowing "bin" directories from paths not from the build
directory we allow Qt, or OpenSSL dependencies, but not just existing
"bin" directories.
Amends 0d8a542b4f
Amends 8713919f31
Amends ac97ab1abf
Amends 2ce6255a7d
Task-number: QTCREATORBUG-29662
Change-Id: If0b162f25ae1e5bfc1e1ff313720c54c5ae936c5
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>