Do not test for OpenGL-through-QRhi, but rather for
anything-through-QRhi. The implementation of the profiler
views is not tied to OpenGL anymore. That said, QQuickWidget
implies using OpenGL as of now, so in practice we will always
have OpenGL at best, but update the tests now to be better
prepared for the future.
Change-Id: Ic43eac1c5cf0e2ce2ef35cdd8a29b475884a5af8
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Use the CMake-based qml API to create the "QtCreator.Tracing" module.
This uses qt_add_qml_module, which was introduced with Qt 6.2.
For Qt 6.1 and below, everything compiles and runs like before this
change.
Change-Id: I4d63f9f724d0628cfaab9d1164c0d575f15d15aa
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Move Tracing Qml Types into the "QtCreator.Tracing" module.
Move QmlProfiler Qml Types into the "QtCreator.QmlProfiler" module.
Move PerfProfiler Qml Types into the "QtCreator.PerfProfiler" module.
And tst_flamegraphview ones into QtCreator.TstTracingFlameGraphView.
... in preparation to register the types declaratively.
Change-Id: Ic0e3863d09b3426fa5b7419116625ad49b817dcf
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
When the notes model is deleted, it becomes null. The notes model
belongs to TimelineTraceManager, not to TimelineModelAggregator.
Change-Id: I0ef9312620e08c06d31bc65976a887af0ca90c33
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This allows us to share code between the two, in particular the QML code
for the Details window, and the theme code. This way we can potentially
deduplicate some code.
Change-Id: I3a0d26b18488bd2a46b5b077b5b5d79ac2dfc5ce
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
With Qt 5.9 as minimal build version, we don't need to handle 5.7 or 5.8
Change-Id: Ie1eed95ab46364452b0633f78bebc565a4a63f4a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This is redundant, now that we have registerFeatures().
Change-Id: Ia56c28b8892ab6da694570fe4b9ea5c96fe194f1
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This way we can use the trace file loading and saving mechanism for
other profilers.
Change-Id: I98ec1cdde6f7abcea152cabf72e64d4e696dfa59
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
We never use it independently and only a subset of its interface needs
to be public.
Change-Id: I97bbc638270bcbb8fb1a4097fcfeacf37e96c048
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Those are needed when manipulating the model in a way that may change
the indices, like restricting to a range or filtering by categories.
Change-Id: I9f218d269cf23104c306960ef77c0fc41591daa1
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
The child models are made aware of possible changes in the details
strings, and in turn, we can do the finalization immediately after
acquiring is done.
Change-Id: Ibe57f158e64e5d01d4c97aa617c9b2bcc8e4e96e
Task-number: QTCREATORBUG-20106
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
The signals from QML are relayed through the respective models, so that
we don't have to use Qt4 connections there.
Change-Id: I864b49061c1f28acbebfc7378bfe39f96d3cae18
Reviewed-by: hjk <hjk@qt.io>
The timeline models were suspended for editing but never restored. To
test the correct behavior a test case for the trace view is added.
Change-Id: Ic1803e9d84656eed97795f1f1674e3d56c83f650
Task-number: QTCREATORBUG-18354
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... and make use of it.
With gcc 7, the new option -Wimplicit-fallthrough is introduced and
added to the -Wextra set, triggering dozens of warnings in our sources.
Therefore, we annotate all obviously intended fall-throughs. The ones
that are still left are unclear and need to be checked by the respective
maintainer.
Change-Id: I44ead33cd42a4b41c28ee5fcb5a31db272710bbc
Reviewed-by: Nikita Baryshnikov <nib952051@gmail.com>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
AcquiringData to ClearingData is a valid transition, for example when
the application crashes. We don't want to drop all models then.
Change-Id: Ibb1b5a551e0dbec121a44054d36c132d038153f4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This patch adds the missing include statements for QRegExp.
Change-Id: Ibb03b929940adb84ae190b5090cb6b88653cc14c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
And then, drop some methods we don't need anymore.
Change-Id: I057bdc012072abddca2df83918ee9a0460f78611
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
We can only use the timeline view if the scene graph is rendered via
OpenGL. This can be checked from Qt 5.8 on by querying the
RendererInterface. Earlier versions of Qt can only render with OpenGL.
Change-Id: I3f77e2a4dee1f9a1df5d6b1946cf7eb05a1bad01
Task-number: QTCREATORBUG-16503
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
As there are only two events views we can handle them separately rather
than keeping them in a list. Also, the object names and dock IDs should
match. This breaks the settings, but that shouldn't be a big problem.
Change-Id: Iac46fd7976d1e747fef4b40cead9a54e830d188f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The models are in an inconsistent state while we're processing data.
The items may have out of range row numbers, we don't get a
contentChanged() signal for each item added, the labels may not be
in place, yet, etc. We don't want the models to be accessed during
that time.
Change-Id: Ibe81e0943de78d5bb45d46d005e847ec2d4ae66d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
We want to use QVariantList here because that is the only list type we
can pass to QML without special registration.
Change-Id: Ia57f8f0c578388da7603ddb6d62288e9cf61e381
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This change implements theming of the toolbars and adds new, High-DPI
capable toolbar icons.
Task-number: QTCREATORBUG-16466
Change-Id: Ibcc774962c740995d8b15fa6c74345d3a48694de
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
There is no need to waste time rebuilding all the labels etc for each
new model.
Change-Id: I1ca24da7d55100b3c8efd8eea650b68b8b7c7737
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Drop the timeChanged signal of QmlProfilerTraceTime, too, as that
doesn't serve a purpose anymore. We don't want intermittent changes
of the trace time to be reflected in the UI when loading.
Change-Id: I85f18b90fc404ec254c68625104d3e3f9077a1d9
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
These file were not used anywhere else and had no business to be in
qmldebug to begin with. Moving them allows us to drop a number of
namespace qualifications and forces us to rename a few local symbols
in other classes in order to avoid name clashes.
Change-Id: I658ed455eec027cbaddacf2980d2ea6827ae6205
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Decouple layout generation from widget generation and
separate analyzer action description from menu action creation.
Tool specific layouts are named "Perspective" now.
Change-Id: I774efe77a07640c4cc26e4e566662c8a673c8831
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This is the first mechanical step to execute on the 'shared pool of
debugger/analyzer views' idea.
Future steps would be providing infrastructure for the view pool,
making all analyzer/debugger views use the pool and then re-extract
a sensible base for a 'analyzer-and/or-debugger' tool plugin interface.
Change-Id: I1bb392e6dd3084fc56937956bee1d6fd9530335d
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This removes the need to pass the QmlProfilerTool instance to all views.
QmlProfilerTool is exported so that we can access the common actions
from plugins.
Change-Id: Ie7072c23ef35763b729f4b87acce47ecbdb76e43
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
We never propagate a selection by source location.
Change-Id: I4594b88080bd1834572c0087db0397bc08a81d70
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
As the timeline doesn't automatically move us to the right file/line
anymore when we programatically trigger a selection, we have to do it
explicitly now when searching for notes.
Change-Id: I439b2162555a6cbf1c757c691ad3b0de067e3f94
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
It can be triggered from a thread loading trace data. This triggered
the warnings about QObject::startTimer and QObject::killTimer and was
generelly unsafe.
Change-Id: Iee1f5f29a49147a20b1f5c826f85b6713fcb8a45
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
It's not clear what they're supposed to tell us.
Change-Id: I62f4fb1265396b8d61df0ce6e3409f0eda677170
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>