We use std::to_chars instead of QByteArray::number. In the normal case
we only allocate once but if the numbers are unusual long we
would allocate two or three times. But this is very very unlikely.
Change-Id: Ieb734d63962d4cc5a1c1da73f4ccb4acd7db2577
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
In case we already visited the same base class symbol in the same
scope we already know the fully qualified name for base class,
so no need to search it again. We store all visited symbols
with their scopes in cache. This speeds up building type hierarchy,
especially for large trees, like for creator project and showing
type hierarchy for QObject: build time before this change was
about 300 sec, now it's about 130 sec.
Sometimes the old code didn't follow properly base classes
that were typedefs to other classes (like in creator project:
Debugger::Internal::RegisterHandler is derived from RegisterModel,
and RegisterModel is a typedef to Utils::TreeModel). This caused
that some subclasses were omitted form resulting type hierarchy.
E.g. type hierarchy in creator project for QObject lacked
about 8 subclasses.
Change-Id: I03c5aef65b7d7cb0ed279d3558aebc8a55e856b4
Reviewed-by: hjk <hjk@qt.io>
Highlight the old visible class after double click on a new
class in type hierarchy editor. Don't do that when
opening type hierarchy from cpp editor.
Change-Id: Ie9a1131cba9b5a35ab826909b994555188aaceb7
Reviewed-by: hjk <hjk@qt.io>
... by assuming that active.keys() is a subset of
TestFrameworkManager::registeredFrameworks() which is used in the case
above. Also, TestFrameworkManager::registeredFrameworks() is already
sorted, as can be seen from the above case, too.
Change-Id: If82c8c998716fa56d6257d3ee0ec09c12d458bb1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... when completing right after a dot.
It's unclear why the code uses half-baked heuristics all over the place
instead of simply employing the lexer (which is also used at some point)
for everything. For now, use it to determine the correct starting
location of string literals.
Fixes: QTCREATORBUG-25154
Change-Id: I14c4d71c4a9bc3e2407688ed9c908d1c99155c76
Reviewed-by: David Schulz <david.schulz@qt.io>
Allows e.g. distributions to adapt to system layout.
Fixes: QTCREATORBUG-25142
Change-Id: Ia6d759514fef5a154334bc3d7221ea4b970122f2
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
And AttachCrashedExternal to AttachToCrashedProcess
And AttachCore to AttachToCore.
Clearer.
Change-Id: I47c2eca5cbdbbc0eb38b9f62b2504c96558ff112
Reviewed-by: David Schulz <david.schulz@qt.io>
The code model may provide selections that are not ordered
as they appear inside the document due to the declarative
nature of QML.
Ordering before using them avoids couple of warnings stating
"overlay selections not in order".
Change-Id: Ie912e94aa01ffde52b01dca7a9bde24ae02e8b33
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
By first checking for it in the system, then if the internal copy
is checked out.
Fixes: QTCREATORBUG-25144
Change-Id: I839591cc8e311948a21685384de574e7330a6ee5
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This allows to have ctest based tests listed inside the test
integration and to run them.
Task-number: QTCREATORBUG-23332
Change-Id: I1cb855697d7bb4afcd7c887506abdea16c252cb0
Reviewed-by: David Schulz <david.schulz@qt.io>
The code that detected the qmake path for the project stopped
working with Qt 6.0.
The new code will run a small CMake project that will output
the path of qmake from the CMake world, and not something that
Qt Creator does from outside.
Fixes: QTCREATORBUG-25100
Change-Id: I9071648c2e60eb89d0dc8f08aed793167b42a365
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
To see the results use
QT_LOGGING_RULES=qtc.qmljs.imports.benchmark.*=true
Change-Id: I07fe7b71d893423f3dfe5f9c0f1410bd29312943
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* Add signal list dialog, delegate and view
* Add context menu entry on items which have a trigger signal
* Add specific model node operations
* Add qml Connections util class
* Add utility functions to signal handler property
* Fix property processing in node meta info
* Fix source code in connection editor and navigator
Task-number: QDS-3138
Change-Id: I362ceef230efdb14f2050995b1693937e5e73c41
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This is a guess fix without understanding what the
algorithm should do.
Change-Id: I06e258045ab966fd016295c1d8830bc6bdc83dca
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
This is needed for the "connect signal to event dialog" which resides in
a different plugin but needs to be opened from the connection editor.
Change-Id: I9e200791831fa46d65e5f833e14a0d893fc29432
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
You can now pass everything you can convert to a span directly and bind it
with a carray instead of using the pointer interface. This is working for
int, long long, double and null terminated C strings.
Change-Id: I274c218e2dec0f11e68576545bb78601f85462bd
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Make the static LLVM in ClangFormat really internal to the ClangFormat
plugin on Linux by not exporting symbols from it.
This was missed during the conversion of the qmake project to CMake.
Fixes: QTCREATORBUG-24998
Change-Id: If483f3c45d5cf7f63e7b8dde58efab6371414bdd
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
It checks for an executable compilerCommand(). This was used in Gcc,
Clang and Nim before. MSVC still overrides with a different test.
The formerly unconditional 'return true' for Keil/IAR/Sdcc uses that
check now, too.
Change-Id: I433a5ac6784277dc77129b2671c28af6913327a7
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Using "copy" would always copy the files on build, which is
suboptimal.
Change-Id: I8c80732124a6642acae03220f3d43074cece4526
Reviewed-by: David Schulz <david.schulz@qt.io>
While GDB can handle breakpoints set before specifying an executable
fine, it stresses the machinery unnecessarily and fails in corner cases
("wrong" dynamic loader etc). We can avoid most of that by moving the
breakpoint setting to a later point in the process.
Change-Id: I0450a0e43a81c80bfdfefb7b67f6799042e0ec26
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Messages from python that contain a path like deprecation warnings
contain backslashes. These unescaped backslashes result in parse errors
on the creator side:
"MI Parse Error, unrecognized backslash escape"
Change-Id: Ic6eb6e1d95b18a653767a5b64030d755f6e8970a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
When finding a Qt component, make sure to explicitly mention the
implicit dependencies too.
This is a workaround for a defect in FindQt5.cmake, which only creates
alias targets and sets the IMPORTED_GLOBAL property on components that
are explicitly listed in the find_package/find_dependency call.
Change-Id: I98c4090ece1fa5704c3a7abeb0e8e27475a30757
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
The plugin builds just fine and should be mostly (fully?) functional with
upstream clang, so it seems excessive to force-disable it entirely for
everybody not using our custom patch.
Change-Id: Id6a179c20325290a8205218c9514a16c1adc9076
Reviewed-by: hjk <hjk@qt.io>
That should only happen on direct user interaction.
Also use new message manager API.
Task-number: QTCREATORBUG-24430
Change-Id: I87297b2ec7191b88210d3a2037afe27b8a3f40e9
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The reason for the special callback setup is lost in history.
A possibility is that the extra roundtrip was needed for synchronization
with earlier gdb versions and/or start up sequences. It seems to
works fine without nowadays.
Change-Id: I28c95aec2f065e9c6f0730f1ffbc3db1a3d819da
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Fixes lupdate warning
qtcreator_hu.ts won't be updated: it contains translation but the target language is not recognized
Change-Id: I4b14b1986ca7fcb009e6c929583aaeed37613a11
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
From Alt+Y to Alt+Y,Alt+F. "Toplevel shortcut namespace" is a rare
resource.
Fixes: QTCREATORBUG-25124
Change-Id: I6268760f45e34f973b3b38b19d2577c0c655b000
Reviewed-by: Eike Ziller <eike.ziller@qt.io>