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>
... by not actually creating the unused instances of the Id types.
Change-Id: I6955046fa1b457ea70d36090d3bf0051b31dfdaa
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@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>
Usually the directories and search terms relate to the project(s) worked
on, so save them in the session.
Fixes: QTCREATORBUG-793
Change-Id: Ia00597a91fa3a902d6b8b4f2d8cb93634cdc333c
Reviewed-by: David Schulz <david.schulz@qt.io>
This makes it possible to save it for the session instead/in addition.
Task-number: QTCREATORBUG-793
Change-Id: I95bc20f4912a97863cb88849e32699a689ba6f3f
Reviewed-by: David Schulz <david.schulz@qt.io>
On Unix we set the default just to cppcheck and mark it even as
valid if it can be found in PATH.
But when running we silently fail as we expect a full path before
launching the executable.
Use the effective binary instead.
Change-Id: I03393b1d227c595da5142fce6b8bea5210a15747
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
It is quite common to provide a single command as default value
for commands to be executed.
In several cases we fail to handle this correctly when trying
to validate or using the executable although it is validated
correctly inside the underlying path chooser.
This patch provides a method to explicitly get the effective
binary, means either the configured path or if it just had been
a single command it retrieves the full path information by
looking up the command in PATH.
This functionality is limited to non-device file paths which
are expected to be an (optionally existing) command.
Change-Id: I17db69f546f5fb9fec8809db91232f212d21e9a6
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Rename internal static m_messageOutputWindow into s_messageOutputWindow.
Make is a std::unique_ptr.
Change-Id: I27e9abf3dfa514d21f85d811e3647f65c26ddf31
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Simplify the implementation by creating and running the
ResultsDeduplicator directly on task tree start.
Change-Id: I08a0d2b924f92382c31771d4bbd878cc5506501e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
When add / remove buttons are disabled, the connection fails.
Change-Id: I6c9a3233f156b88e516481a6fc8e072ea5e1c13b
Reviewed-by: David Schulz <david.schulz@qt.io>
In order to fix QTCREATORBUG-29662 the check of existence of an dll was
a prerequisite to add the path to the PATH environment variable.
As it turns out this is not an easy thing to do, since the ".lib" file
name can be different than the ".dll" file name.
Also for MinGW you can have ".dll.a" or ".a" as library filename
extensions. You can also have a "lib" as prefix for the library
filename.
Amends 0d8a542b4f
Amends 8713919f31
Amends ac97ab1abf
Task-number: QTCREATORBUG-29662
Fixes: QTCREATORBUG-30827
Fixes: QTCREATORBUG-30932
Change-Id: I90afad825d43fd4f801c2aac20ed98f013861152
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
... for task details.
As a result, clicking on a linkified file path inside a task in the issues
pane will now open the editor at the column specified in the compiler
output, if there is one. We used to consider only the line.
Change-Id: Idccba33b5b33029abfa8f29c7888af6c7f2e1622
Reviewed-by: hjk <hjk@qt.io>
Previously the PluginSpec would create a keep around a single lua vm
that was then shared with the actual plugin instance. This made it
unclear when the VM was freed.
Now we instead cleanup the lua vm used to fetch the plugin infos
immediately and instead create a fresh vm for the actual plugin
instance that can then follow the normal Plugin lifecylce.
Change-Id: I81bb9ecf57706c2ba1b0d8db83ab26b3b8e944f2
Reviewed-by: David Schulz <david.schulz@qt.io>
Stuff you notice 10 Minutes after pushing the code you worked on for
days.
Change-Id: I24614b8129f80c8986ec11d5146c5631dae5d515
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
As in 5cc44b8cab, this time with the non-
trivial cases.
Change-Id: I48c3f27c83903457473afa6175c8522d2ff23f96
Reviewed-by: David Schulz <david.schulz@qt.io>
The original code was written with only the interactive case in mind, but
nowadays we also start "follow symbol" operations internally as part of
e.g. quickfixes.
Change-Id: I95928297fab16f9b0469bfd66ad687447b902fd9
Reviewed-by: David Schulz <david.schulz@qt.io>