This combines two of the previous three paths to create run workers,
and refers to RunConfigurations by id, not by type where possible
to decrease coupling between the classes.
Only allow "type of run configuration" and "type of device"
as the only possible kind of restriction and require a uniform
RunWorker constructor signature.
Adapt user code to fit that pattern.
Change-Id: I5a6d49c9a144785fd0235d7586f244b56f67b366
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Qt 6 API will move away from it.
Use QVector for API and some std container for internal things.
Change-Id: Iff14d48a47d5ac52ade875d9c8c84ad8a4f577d8
Reviewed-by: hjk <hjk@qt.io>
... by using factory members in the plugin pimpl. This also
(intentionally) transfers ownership of the factories to the
plugins, effectively progressing on the "FIXME:"
in runcontrol.h:164.
Change-Id: Ia75ee034d25a75b5d5bff6b2fa2b3471347d1a14
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The name "KitInformation" does not properly convey the fact that it
represents a certain *aspect* of a kit. The same goes for
"KitConfigWidget", which in addition was inconsistent with
"KitInformation".
We now use "KitAspect" and "KitAspectWidget".
Change-Id: I9804ee4cedc4d61fad533ea1dd4e4720e67fde97
Reviewed-by: hjk <hjk@qt.io>
We don't need to waste the time and memory required to create the views
if they are never shown.
Change-Id: I56add08981c90263e6735f5b7e6fac2140b457e4
Fixes: QTCREATORBUG-21894
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: hjk <hjk@qt.io>
This enables us to have multiple QmlProfilerTool instances without
conflicting action registrations. Ultimately there should be a way to
unregister actions, or to add some extra description on which tool
instance they refer to, but this is a minimal first step.
The main problem this fixes for now is the warnings generated by the
tests.
Change-Id: I2193fc48a5a68c52f46e5567919f3035bc93df36
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
qglobalstatic.h:87:18: error: field ?value? has incomplete type ?QmlProfiler::Internal::{anonymous}::Q_QGS_qmlProfilerGlobalSettings::Type {aka QmlProfiler::Internal::QmlProfilerSettings}?
qglobalstatic.h:152:9: note: in expansion of macro ?Q_GLOBAL_STATIC_INTERNAL?
qglobalstatic.h:159:5: note: in expansion of macro ?Q_GLOBAL_STATIC_WITH_ARGS?
qmlprofilerplugin.cpp:79:1: note: in expansion of macro ?Q_GLOBAL_STATIC?
Change-Id: I940917d6763842499b18fffd1514e0f3522f3bbd
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
... to be able to remove an unneeded use of the global object pool.
Plus some code cosmetics.
Change-Id: Ifdb0ff9cd40820a34a8951563402a50a594e4fdd
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
It wasn't really a singleton even before. For testing purposes make the
client/state/model managers accessible.
Change-Id: Ie5efbc47a6b9119495f999e4e05877d4789da407
Reviewed-by: hjk <hjk@qt.io>
We run a number of test traces through the trace client and make sure
that it doesn't crash and that the events reappear in the right order.
Change-Id: I45bbeeb978f2ab147551aaafa74631f927c710e8
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Also, add context to connect() expressions where we are or were
capturing "this".
Change-Id: I6e006ba6f83d532478018550d148ee93eca59605
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: hjk <hjk@qt.io>
It's a workaround, not a proper solution (as indicated by the
SOFT ASSERT: "d->m_profilerState" in file qmlprofilerruncontrol.cpp,
line 144 triggering) The state manager (and possibly more)
is referenced from potentially running run controls, that are ramped
down after the plugin.
Task-number: QTCREATORBUG-18736
Change-Id: Ia20b168fe640c818276a777e1d23feab0cacd565
Reviewed-by: Ulf Hermann <ulf.hermann@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>
A header file was indirectly included in debug mode.
Change-Id: I9142fc9b92fd6db1182c6602a0ac4a723aa2c9f7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
We want to use it for other profilers, too.
Change-Id: Ice4bd7fdfce6e0153d62a7c9a83dc7de6d5cba30
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
I doubt that anyone has ever used it.
Change-Id: Icf8c6513f5cdd10a9aa790e7373df9eba7c12ef2
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
On the user-visible side, only the 'Analyze' mode button disappears,
and instead a combobox to switch between different tools in appears
in the Debug mode toolbar.
Internally, that's quite some re-organzition: The centralized
'Analyze mode is busy' flag is gone, allowing us to run e.g.
ClangStaticAnalyzer and MemCheck in parallel.
Analyzer tools and debugger now share the same mechanism to
generate/load/save dock widgets.
Analyzer tools now create and handle their own start/stop button
when appropriate. In general, Analyzer tools can create/handle more
than one run control at a time.
Further consolidation is possible, e.g. RunControl state handling
could be merged into the base ProjectExplorer::RunControl to
avoid the still existing duplication in ~15 instances.
Change-Id: I91e5940ebc4211f98056d507cf2f7b5f8efe7f07
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Put the border between plugin code and view code in a more
natural place.
Change-Id: Ib5250a30e52ec9899dcb01bac23cdad62a2d5c5e
Reviewed-by: Ulf Hermann <ulf.hermann@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>
Most of them need a run configuration. It's better to pass the
right one than to use various hacky ways to work around it.
Change-Id: Ic21b0ef33bdd79b526b1e1a1ead5ca87d9f32c4d
Reviewed-by: hjk <hjk@theqtcompany.com>