It may happen that we dereference null inside the following
condition:
if (declarator->postfix_declarator_list)
This may happen in case we entered the "if (!declarator)"
condition, but didn't fulfill the nested
"if (path.at(n - i++)->asPointer())" condition.
Detected by clazy analyzer.
Change-Id: I47135bc5648459e91664a4f65f9752b58248a496
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Detected by clazy analyzer. The possible context was
TextEditorWidget::dropEvent(). In some branches we ensure
that mime is not null, but later we call insertFromMimeData()
unconditionally.
Change-Id: Iee5138bc19d405050eafc9617d3c2ed123b767c7
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
QQuick3DGeometry::updateSpatialNode can create QSSGRenderGeometry
object with exact same address as a previously created and subsequently
deleted QSSGRenderGeometry object (i.e. the memory location is reused).
If the previous node was not used for the exact same logical geometry,
then you get these artifacts, as QSSGBufferManager uses
QSSGRenderGeometry object pointers in QSSGBufferManager::loadRenderMesh
function to determine if it needs to reload the geometry and what
geometry gets used for each model. The cache still contains data for
the deleted node, which is then matched for the new node with same
address.
This workaround ensures that none of our grid geometries will have the
same generation id and thus will never get improperly matched in
QSSGBufferManager cache.
Task-number: QDS-8516
Change-Id: I017a4ae4a59eef2bb26ade5abf13e8f74f57c4af
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
By defining QTC_NO_MSVC_CLEAN_ENV one can skip the vcvarsall.bat /
clean_env functionality.
Task-number: QTCREATORBUG-28561
Change-Id: I6392b2278008607042a43a38a2c38669b4b52183
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
Otherwise it may unnecessarily detach. Either store a local
const reference or call const equivalent (e.g. constFirst()).
Change-Id: I96d665487cf28c17e72bea17f1b8f164ce06cc70
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
These methods are being called from c'tor or from d'tor.
Make sure these methods will not get overridden by any possible
subclass, otherwise these calls won't be dispatched properly.
Change-Id: I3652d2f495940f13b48b494ab2cf06abb3d37e7e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
When the summary changes, we need to recalculate the layout as it
might change the height of the target selector. Otherwise the selector
might move while the mouse is still pressed, leading to an unwanted
selection.
Change-Id: Ic1f1ffc89376caf33ecf1be80b7aeda52839bc5e
Reviewed-by: David Schulz <david.schulz@qt.io>
Changed when removing .ui file. Call order is important here.
Amends b3e3de517d
Task-number: QTCREATORBUG-28536
Change-Id: I04d9351f8bb7f2ed170f3643ba84af5f8afe35ab
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
QPushButton has the functionality of setting a menu, but that replaces
the normal "click" functionality, and always opens the menu on click.
QToolButton can have a menu and the user can still click on it to just
click. But, QToolButton looks very different, and in combination with
other, normal push buttons very alien.
Create a push button that only shows the menu when clicking on/near the
menu indicator, and otherwise just sends the clicked() signal like a
non-menu push button.
Change-Id: Id6ba367e40c370275f67f0fbf77521c2e974b3b8
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
The Windows registry node containing the installation path of IAR
workbench changed since version 9 that is the same as the one for
32-bit Windows host. Multiple registry keys will be used to identify
the latest IAR toolchain as well.
Task-number: QTCREATORBUG-28245
Change-Id: I92ed0c10a38e081ca45fcf9e543d902a3e98efc2
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: hjk <hjk@qt.io>
No need to manually implement recursion when QDirIterator::Subdirectories exists.
Change-Id: I88f04da9a6138e3fc903016dd85b94ba431e3b1a
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Instead, we should provide tst_StringTable that would
run GC, make a sleep inside GC being run in other thread
and execute destructor of StringTable in main thread.
In this case the test should ensure that destructor of
StringTable waits for its internal thread to finish.
Amends 7a02b39f26
Change-Id: I017b5a8f98b41ef6884c43d319858dcb16f17fba
Reviewed-by: hjk <hjk@qt.io>
Especially on non-casesensitive OS we may get the information
regarding break point locations with a wrong case which would
try to set a break point and silently fail as the files are
internally used with their correct case.
Change-Id: I32a780629e1b10ea075d669b8eca812fbd994600
Reviewed-by: David Schulz <david.schulz@qt.io>
When building type hierarchy the pointers to list
elements were put into queue. Later, the list was
modified and it was possible that list detaches
causing stored pointers to be invalid.
Simplify building type hierarchy by adding helper recursive
methods.
Fixes: QTCREATORBUG-28529
Change-Id: I240513fc097536d2175e2242766127b92aaa6a82
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
If the language server cannot be started, the client might be already in
an error state before the language server gets initialized.
Change-Id: Ib6c9df13b381e7854806714c07f4830796bb2cd3
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Helps the user to better understand why his language server might
have a problem.
Change-Id: I9440a28cb5d0d35808b497bcdcd545d7b10597a0
Reviewed-by: David Schulz <david.schulz@qt.io>
We need to be able to change the replacement text after a failed clangd
replacement request.
Change-Id: I0e97af18c6cbfd4bc4e4f8705a7b760dd97bd960
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
- new clangformatchecks files are generated based on
utils/layoutbuilder
Change-Id: Ie376755abc632083898e44ea57d2ff8600e47f34
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
The preferences dialog is modal and creates an event loop that would be
running within the mouse event handler of the widget. When the dialog is
closed after the widget is destroyed (i.e. after indexing finished),
control would be passed back to the destroyed widget, and crash.
Fixes: QTCREATORBUG-28566
Change-Id: I71efa683822b5682ad1b38c39ce8f73c89bdd610
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Textures in material browser can now be applied as light probes to
the active SceneEnvironment node.
Also changed the logic for resolving the active SceneEnvironment node
to prefer a currently single-selected SceneEnvironment node over
the SceneEnvironment node associated with currently active 3D scene.
Fixes: QDS-8472
Change-Id: I9a3a7b9c2fad3c8120e85ade507a7ea66de19f1d
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>