Commit Graph

16 Commits

Author SHA1 Message Date
Jarek Kobus
c05f9cacc6 CtfVisualizer: Fix multithreading issues
Simplify the CtfVisualizerTool::loadJson(). Don't create a QThread
manually, but use TaskTree with AsyncTask instead.
Move pure parsing into the separate thread, and leave the
nlohmann::json event handling in the main thread.
Avoid moving m_modelAggregator between threads.

Fixes: QTCREATORBUG-29657
Change-Id: I0c6a9a4ea8298dbbdbafcddd338d39ad73c3f82b
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-09-27 15:09:56 +00:00
Cristian Adam
ed1568309b CMakePM: Add CMake Profiler action
Change-Id: I17f258834724c37f0933d18b6214851be1965913
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-09-21 18:39:53 +00:00
Eike Ziller
c83047abb9 CtfVisualizer: Allow strings for process and thread id
While the format document only uses numbers for these in its examples,
the data type is not really specified there and chrome://tracing itself
handles strings for them without complaint. On trace-generating side
std::thread::id can't easily be serialized as a number, and strings can
easily be supported in the viewer.

Change-Id: I36c8497049d4933058b9f72a28f24e1d1cf0d5bb
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-09-12 14:21:27 +00:00
David Schulz
7bb8f59587 Merge remote-tracking branch 'origin/11.0' into HEAD
Change-Id: I3b6a4bd860c11324d989818d9010f07faaac677a
2023-09-12 09:47:01 +02:00
Eike Ziller
6defd083ef CtfVisualizer: Never crash with uncaught exception when loading JSON
If we retrieve a value of a type that doesn't match the actual type in
the JSON, the JSON library throws an exception.
We should have checks to avoid this, but as a global measure never let
exceptions through to Qt Creator.

Change-Id: Ibfe830d745a94810f874ccca82b83d57ea72f31e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-09-08 07:01:07 +00:00
Jarek Kobus
aa016cc5a7 Various Plugins: Add context object into connections
Change-Id: I360677bebfef16a3233b3b8177cff6da57ec7c31
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-08-02 08:55:37 +00:00
Alessandro Portale
5975657e77 Utils: Centralize style-related property names as constants
This introduces string constants in Utils::StyleHelper. They are used by
code all over in Qt Creator to tell ManhattanStyle how to paint certain
widgets.

Change-Id: Iecca36103f80084cd5fe93fcb6b18b8fbb3a32bb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-05-10 13:25:10 +00:00
Alessandro Portale
48affa1889 Translations: Remove header includes of *tr.h in .h files
The wrong Tr::tr could be executed by code indirectly including a *tr.h
file from another module.
To Translate in a header file, use QCoreApplication::tr().

Change-Id: I30e67245991d2c2f0eeb01ab356555bdb9841af0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-02-08 11:08:48 +00:00
Kai Köhne
56baf8c058 Remove GPL-3.0+ from license identifiers
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...

While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only

Change was done by running

  find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;

Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-01-06 11:15:13 +00:00
Alessandro Portale
58b0f2d8f9 CtfVisualizer: Convert to using Tr::tr
Change-Id: Ide0c6556642c20a200fd72ec8e9596950af823b4
Reviewed-by: hjk <hjk@qt.io>
2022-09-22 06:52:42 +00:00
Lucie Gérard
a7956df3ca Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.

Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-08-26 12:27:18 +00:00
Eike Ziller
5b364de168 Use dialogParent() instead of mainWindow()
There are very few reasons to use mainWindow() directly.
Especially for modal dialogs, using dialogParent() is important, since
that guarantees the stacking order in case of other dialogs currently
being open.

Change-Id: I7ad2c23c5034b43195eb35cfe405932a7ea003e6
Reviewed-by: hjk <hjk@qt.io>
2020-06-02 11:44:53 +00:00
Leena Miettinen
268a61d530 CTF Vizualizer: Fix UI text according to the guidelines
https://doc.qt.io/qtcreator-extending/qtcreator-ui-text.html

Task-number: QTCREATORBUG-23683
Change-Id: I9778dd6af9322d068ac1715876774d4ff5efe161
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-03-16 11:54:08 +00:00
Tim Henning
b90200cb19 Tracing: CtfVisualizer: Add menu to restrict view to certain threads
Add a new dropdown menu to select which threads should be displayed.
If no threads are selected, all are shown (this is why the word
'restriction' was chosen). At the moment this only affects the
timeline view, see the follow up for the statistics view.

Change-Id: Ib3b08ea895e852189156e23feb8dea5f843cceb3
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-10-24 08:47:39 +00:00
hjk
6cb1268f49 CtfVisualizer: Remove unused signal
Change-Id: I29c47b279dcf1002fa1ffabcb0cd1f2865d4c683
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
2019-09-03 12:30:29 +00:00
Tim Henning
7fec418205 Tracing: Add Chrome Trace Format Visualizer plugin
This new plugin adds a viewer for Chrome Trace Format (CTF) files
(aka Trace Event Format). It uses the same UI components as the
QML Profiler timeline and the Perf Profiler.

The Trace Event Format is generated by different kinds of tracing tools.
Usually the files are display with the trace-viewer, built into Chrome
(chrome://tracing). This plugin was developed because of the high memory
usage of trace-viewer, which makes it difficult to use with trace files
bigger than 100 MB.

The plugin fully supports all event types used in data generated by
LTTng, converted to CTF by https://github.com/KDAB/ctf2ctf.
Some of the more advanced event types used for example in Android system
traces, though, are not supported. The viewer will silently ignore
unsupported event types.

Supported Event Types:
- Begin, End, Duration and Instant events
- Counter events (graphs)
- Metadata events (process and thread name)

The plugin uses nlohmann/json instead of QJson because of the ~128 MB
object size limit by QJson.

[ChangeLog][Tracing][CtfVisualizer] Added Chrome Trace Format Visualizer plugin

Change-Id: I5969f7f83f3305712d4aec04487e2403510af64b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-08-29 13:37:04 +00:00