QmlProject could be edited manually to add files into the project.
In case of the files are mising in the file system (or if there's
a typo in the file path) file names still shown in the project
explorer without any information. This patch brings a small overlay
on top of the original icon to notify the users that the file doesn't
exist.
Task-number: QDS-10344
Change-Id: Ia73699b048725bcc70a1ee0f52c34b55b081a779
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
If the outline view is set to not show all bindings, it can crash after
writing code that temporarily produces an element after the cursor that
is interpreted as the child of a NonElementBindingType. In the bug
report that is a temporary structure of
* Window (element)
* ...
* Rectangle (element)
* ...
* y (non-element binding)
* y (element binding)
* Text (element) <- this gets selected in the global outline
When an element is selected in the global outline, the outline view
searches for the first element in the parent hierarchy for which the
source index is successfully mapped to its filtermodel.
(QmlJSOutlineWidget::updateSelectionInTree)
Since filterAcceptsRow only explicitly filters out items that are non-
element bindings, the "Text" element in the above example is "not
filtered out", and is set as the selection in the outline view, even
though it is not visible because one of its parents is filtered out.
That leads to a crash later on.
Make sure that filterAcceptsRow explicitly filters out any item that has
a NonElementBindingType in its parent hierarchy.
Fixes: QTCREATORBUG-28862
Change-Id: I1091daae140f13ea7fea7bb637953f51348c3b63
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
... to ProjectExplorer::ProjectUpdaterInterface and generalize it
regarding language, but create a convience function for the C++
case, as that's the only user right now.
Also add the self-registering factory boilerplate and adapt all
buildsystems.
Change-Id: If928512609d41c25fad2aa58633c8bffabc4c48f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Instead of specifying two separate done and error handlers,
specify just one that takes additional "bool success" argument.
Task-number: QTCREATORBUG-29834
Change-Id: Ie4f92236a38b03dac3dd33b2c80a317b62772a12
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Instead of specifying two separate done and error handlers,
specify just one that takes additional "bool success" argument.
Task-number: QTCREATORBUG-29834
Change-Id: Ib92ef2dcd960372d9db6c8f50d4017a33c49ccd3
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
The overloaded c'tor takes one done handler with an additional
"bool success" argument.
Task-number: QTCREATORBUG-29834
Change-Id: Id579d055721a2a07a5a9f0900aa4a73655f21610
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Instead of having separate handlers for done and errorOccurred.
This will enable setting just one common done handler with an
additional "bool success" argument.
Task-number: QTCREATORBUG-29834
Change-Id: I52d826dd89461ff93772a6fe7a85e432d1e84665
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
It wasn't really used and it interferes when refactoring.
Change-Id: I8b8ba1740fef24502855e896e9b33ba816e1229f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This will enable employing ProcessReaper automatically
for QProcess tasks.
Change-Id: I54b1d4604a9dfb11698e23bd66cf94d34675f722
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Ensure all fonts in the project are always loaded,
even if e.g. the project singleton is not created.
We search for the .qmlproject file and then load all
fonts.
Task-number: QDS-11108
Change-Id: I1117fa6ba9677c75fe8fce96bb349b5e825af7f3
Reviewed-by: Burak Hancerli <burak.hancerli@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Fixes the initial value of the group mode as well as
storing and retrieving the values.
Also correctly updates the enabled state of the filter.
Change-Id: I083b783a60729cae795f0aaf1638da499737f545
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
FilePath::toUrl does not pass queries correctly to QUrl.
So we use QUrl::fromUserInput directly.
Fixes: QTCREATORBUG-29850
Change-Id: If0706b3b37d03eeea87247b44f07f8a0f8915a95
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
When using CMake package manager auto-setup the CMAKE_C|
XX_OUTPUT_EXTENSION is stored in the CMake cache.
This way CMake project manager can know about the correct extension when
building a single source file.
If CMAKE_C|XX_OUTPUT_EXTENSION is not found in cache it will only use
".obj" for Clang-Cl/MSVC/MinGW toolchains.
Task-number: QTCREATORBUG-27471
Change-Id: Ib9b75608d5a6834014150c57f3098f79284d8276
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
When launching Qt Creator with clean settings on Windows, the Android
plugin might cause an "Empty filename passed to function" warning that
comes from deep inside Qt.
This hack works around that.
Change-Id: Id668b981a1467a54d852082e95963e34554006e9
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
... that depend on changed headers.
When changing a header file the clangd code model is not updated for
files that including it if they are not opened in editor.
This is not to be done automatically, as it would be a performance
hazard to rescan many files, for example when changing a widely used
header.
Add a menu action to trigger such re-indexing manually to solve the
issue.
Task-number: QTCREATORBUG-27387
Change-Id: Ia8033401f847627cee041b102f9ac6f3af3dd709
Reviewed-by: Volodymyr Zibarov <gogan419@gmail.com>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This makes the dialog slightly bigger to avoid that horizontal
scrollbar (when using normal font sizes).
Also, the header sizing code is a bit cleaned up. The "Loaded" column
takes less unnecessary space.
Change-Id: Ic7db7595a88a6dcedd52dce608aa1c9c79c8a464
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Our approach was not fully thought through: When we got informed of a
file getting created by an ExtraCompiler, we would make it known to the
first client that came along and then forget about it. This means that
e.g. a source file including a UI header would parse fine with the first
client that opened it, but after switching the build configuration or
possibly even just touching the project file, the UI header would not be
found anymore.
Fix this by keeping the information about generated files around and
attaching them to every newly initialized client.
Note that this state should probably be kept somewhere more central.
Change-Id: Ib1d8cca9258d1962513d8d463f5d16f9ff91a048
Reviewed-by: David Schulz <david.schulz@qt.io>
It is now possible to override all materials and models used in the
scene with options available in QtQuick3D.DebugSettings. The overrides
are assigned per-split.
Fixes: QDS-11068
Change-Id: I3a3bc372e860d7f61942eb40166464c9c86efd8e
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mats Honkamaa <mats.honkamaa@qt.io>
Instead of using some flags in some struct, we convert the error handling
to use expected_str<ResponseData> to clean up the error handling with
the outside.
Change-Id: I0f8d10c99715989e0069568ebc1d799d412a0600
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Previously the "runCommand" function would never exit if the child process
hangs. This fix makes it so that the caller can specify a function
that determines whether we want to continue to wait.
In this function we then check if the promise has been cancelled.
We also let runCommand return an expected_str to better reflect actual
error reason.
We also early-error in various places to keep indentation low, and
make it easier to track where something returns an error.
Task-number: QTCREATORBUG-29564
Change-Id: I71ee4568d87c6b21c3ba9c71b81d028d517b553a
Reviewed-by: Serg Kryvonos <serg.kryvonos@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
On macOS, qbs always sets the sysroot to the xcode directory, while Qt
Creator's kits do not have a sysroot entry for Desktop targets.
Fixes: QTCREATORBUG-29829
Change-Id: I3f11c45fdcd94e67be1b6ef6c50cd33834c74f40
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Force built-in tr strings when running tests. Some tests rely on these,
e.g. the JSON wizard tests in ProjectExplorer.
Change-Id: I27836adce0bd2f8c6919a8b1948e41f719c08b3e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
set the DPR as a floating point number for the pixmap.
Change-Id: I354e27556dbd8a0d53cfc3e0c2b708f06406aaf5
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Coverity complains about not checking the return value of f.open()
Coverity-Id: 1359453
Change-Id: I9e6b7f5d3ab6ec58e99131e8a0d84d8f17863fed
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
If no replacment kit is created we have to return.
Task-number: QTCREATORBUG-29717
Change-Id: I7c91eeb5a3710640adfa0a561aaac4fefc8f1431
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Moving those functions to ModelNodeOperations allows reuse in
other views like e.g. the TextEditor.
Change-Id: I7eee1c6080b4208ffaab6637f0debf78ec648c8e
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>