Don't call this method directly on every demand, but schedule
a call instead and invoke it once after the current call
returns back to the main loop.
The single call may cost up to ~20ms, and when we call it for
every target having 5000 targets, the total cost is up to ~10 seconds
(every call removes one items, so subsequent calls take a bit
less time). This happens on shutdown when Qt6 project was loaded.
The shutdown time went down from ~15 seconds to ~4 seconds with
this patch.
Change-Id: Id821d72cd8e1dd949112d9167b7736a267b221fc
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Don't search for each target separately in the node tree,
but do a one search for all targets at once.
This makes searching for nodes much faster, as in case
of loading a Qt6 project (5 main modules only) with debug build
of Creator, the searching time went down from 36 seconds into
30 miliseconds (just 1000 times faster). The number of targets
in this case was more than 5000.
Change-Id: I015f6fd2a2d5e613307cc7b65746c01a5b14c6dc
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
When dragging 3D model file(s) from the file system and dropping them
on the 3D Editor, add the models the the 3D Editor after importing
them.
Change-Id: I51ec945097a19e8895eb599b898d49e879100b6d
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
The current label could be confused with build-tools version, so make
it more explicit.
Change-Id: I96abe9af04e6a6e8518926578411f759b90fc9a0
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Content of widgets with windowType Qt::Dialog was already excluded from
being styled as "panelwidgets". This change adds Qt::Popup to the
blacklist.
Task-number: QTCREATORBUG-26370
Change-Id: I76d07da4d8f3ae9f1c8235cdc072a04917454065
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The glob "*.ui" is unfortunately not unique in the mime database, so it
falls back to using the mime magic to determine the mime type.
That process is unfortunately defined by the "standard" in a most useless
way: Even if a mime type matches both by glob and by mime magic, a mime
type that does not match by glob can be preferred, if its mime magic
matches either with a higher priority, or with the same priority but is
alphabetically "smaller" than the other mime type.
Reduce the priority of the "#include" mime magic for the text/x-c++hdr
mime type, so it is lower than the mime magic of the application/x-
designer mime type.
Fixes: QTCREATORBUG-21773
Change-Id: Idfb9ab509c13563b50381b098d643f6fa9292f27
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
We iterated through a list that was in the middle of a std::remove(),
which is not safe.
Change-Id: I2b4bce18ebe3365fd22f33521aa82868c10e9647
Reviewed-by: David Schulz <david.schulz@qt.io>
Qt 6 brings a behavioral change regarding delivery of wheel events:
92df790f46b3a8b17aec2f385d6472fd3f8647f6 and
2a857ee28315c5bacfe2ecaf402ca9005b35c20e. If there is an event
filter installed and wheel event is being processed, the event
is now accepted by default, which means that after returning
true from eventFilter(), the event is not propagated anymore.
Since we want to redirect the event to the parent HelpViewer object,
we explicitly ignore the event prior to returning true.
Task-number: QTCREATORBUG-26369
Change-Id: I2fc8b7c8bfbc343a9ca7951684ced405f8a55039
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
* QmlObjectNode::allInvalidStateOperations
* QmlTimelineKeyframeGroup::allInvalidTimelineKeyframeGroups
These functions make it easy to find dangling/invalid PropertyChanges and
KeyFrameGroups.
Change-Id: I201a6561a51aba53405e8a8fc92821c467fecb1b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
If the target cannot be resolved the result is invalid.
Task-number: QDS-5216
Change-Id: Ibd7884d6638ae653953347862ca1291f963aa3b3
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Moved the function into timelineutils.h in order to be able to
use it from other places as well.
Change-Id: If5fa094abb6ae52d7922bc9bbcb96b482ece7ac0
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
The question which concrete AST node corresponds to a given cursor
position is surprisingly difficult to answer, and clangd already has a lot
of code for this. Therefore, we always refer to clangd to get a concrete
node, even if we already have the full AST.
Change-Id: I5d1528d776ee459a53b8e650a616ea7019ec59bf
Reviewed-by: David Schulz <david.schulz@qt.io>
If a node is deleted also children are deleted.
We have to remove all references to children, too.
Change-Id: Ie944b00ffc832fb0fb11ef0380c4b9b30add5757
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Use resetPuppet() instead of delayedRestartProcess() to properly
notify other views of the impending reset.
Fixes: QDS-5222
Change-Id: I46dc0dfc9f0b675bd2a0fc07c6b7d9cde4d1e48a
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Valid for windows hosts, otherwise, the command might fail.
Change-Id: I3e759c74ea0a785fd226cda08f301f0cce17c9b7
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Both keys where set as a global shortcut for deletion.
The timeline considered only one of them.
Change-Id: I5d27221a371535e94751ffcd0f6d4420978d0f81
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
- Fixed behavior when saved data from file doesn't load
in the first opening of the code style options
Change-Id: I1c72845cbf8119f9eb402a2f40bcc816c5590c25
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Semantic highlighter objects are owned by their respective documents, so
we can run into destruction issues when keeping them by value.
Fixes: QTCREATORBUG-26364
Change-Id: Idc128d685ccdd25989dd9389d352453ccc935fa9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Looks like tabs are not "print", so make sure that whitespace is kept
unmodified.
Amends 1aa92b5dab
Fixes: QTCREATORBUG-26367
Change-Id: Ie9a89b36440c51ef2bbcf7a668f3c9b5f3c0f485
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
The main thread doesn't kill processes directly, but
sets just the cancel flag.
Instead of waiting infinitely long for a process to finish
we poll periodically (every 100ms) for the canceled flag
inside the thread that started the process.
Amends: a30aa4421a
Task-number: QTCREATORBUG-26333
Change-Id: I599d5c6cd69381cadc4a01c65f6a79f9a9bbd3fb
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Makes sure to convert it to unix style path on the target and use the
correct capitalisation on the host
Change-Id: I0c6dff47c34c1844a8198c3215ea857fdb6375c7
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This speeds up semantic highlighting considerably.
Change-Id: I1dca2c8d6b9e41ac2895a53b795466a3249f79bc
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
Make some changes to make Android kits behave as, for example,
desktop kits:
* Set the build device of the kit to the default desktop device.
* Don't make the device and toolchain aspects sticky.
Change-Id: I41a40c6ed8dc3434fa4f3a09349b75b5fd379317
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
clean, rename and delete unused constants, we well as unify the
usage between qmake, cmake, and qbs.
Change-Id: I8827ac2f2f7660e337694fef17f744e727bd776a
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Using the shell for short running processes that do not
modify the container environment is recommended as it
avoids starting up another process.
Change-Id: I32a1f348bfa56ee4094599cff1af17525a6d2a98
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
- Move logic work with clang-format file to
additional class to make clangformatconfigwidget
responsible only for work with ui elements.
- Fix functionality: when new BasedOnStyle was
chosen all fields were empty or set in default,
now it fills with the corresponding value.
Change-Id: I2ee42a502e87da761274d293a7f0a38fda98804d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The logic didn't account for custom parser nodes, which were
incorrectly detected as former implicit components needing clearing.
Fixes: QDS-5223
Change-Id: I026d5530082de9c6f23b3b0f2b28df2d08c9ac03
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Also mark the CMake configured generated precompile header files as
generated, so that the "Hide Generated Files" filter menu entry would
take them into account.
Fixes: QTCREATORBUG-25125
Change-Id: I0ec1cc923e361ae9b599eef1a039695e749a033a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>