aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmlprofiler/qmlprofilerapplication.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Port from container::count() and length() to size()Marc Mutz2022-10-071-2/+2
| | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8: auto QtContainerClass = anyOf( expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o), expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o)); makeRule(cxxMemberCallExpr(on(QtContainerClass), callee(cxxMethodDecl(hasAnyName({"count", "length"), parameterCountIs(0))))), changeTo(cat(access(o, cat("size"), "()"))), cat("use 'size()' instead of 'count()/length()'")) a.k.a qt-port-to-std-compatible-api with config Scope: 'Container', with the extended set of container classes recognized. Change-Id: Idb1f75dfe2323bd1d9e8b4d58d54f1b4b80c7ed7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Prepare for moving qVersion() from qglobal.h to qlibraryinfo.hSona Kurazyan2022-08-301-0/+1
| | | | | | | Include qlibraryinfo.h where it's used. Change-Id: Ie2ea09458380e012f594e765b50a311a20b423d8 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-111-27/+2
| | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QML profiler: Fix nonsensical conditionUlf Hermann2021-02-191-8/+12
| | | | | | | | Failure to connect within 5s is a warning now, and not affected by the verbosity setting. Change-Id: Ia0bace7bfbb1c7aa09642b7036344d0929f9b2b8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Port QtDeclarative from QStringRef to QStringViewKarsten Heimrich2020-06-161-1/+1
| | | | | | | | Task-number: QTBUG-84319 Change-Id: I2dcfb8a2db98282c7a1acdad1e6f4f949f26df15 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Use Qt::SplitBehavior in preference to QString::SplitBehaviorEdward Welbourne2020-03-021-1/+1
| | | | | | | | The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step cloaser to that goal. Change-Id: I3214ad6ccaca9dfd4a026589cabeb40cbf4a6298 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix interactive mode of qmlprofilerSimon Hausmann2019-10-091-2/+2
| | | | | | | | | | | Use the correct commands for toggling the recording status and flushing. Also don't clear the event types when clearing the profiler data after a flush, as those remain valid and are needed for processing in the future. Change-Id: I5a3cd5aa33e43a3e81c53cbbaa0c5b8fb407c5bb Fixes: QTBUG-78044 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Tools: Fix deprecation warnings about QProcess::finished(int)Friedemann Kleint2019-02-051-1/+1
| | | | | | | | | | | | Use QProcess::finished(int, QProcess::ExitStatus) with QOverload, fixing: qmlpreviewapplication.cpp:151:86: warning: ‘void QProcess::finished(int)’ is deprecated: Use QProcess::finished(int, QProcess::ExitStatus) instead [-Wdeprecated-declarations] connect(m_process.data(), static_cast<void(QProcess::*)(int)>(&QProcess::finished), qmlprofilerapplication.cpp:475:83: warning: ‘void QProcess::finished(int)’ is deprecated: Use QProcess::finished(int, QProcess::ExitStatus) instead [-Wdeprecated-declarations] connect(m_process, static_cast<void(QProcess::*)(int)>(&QProcess::finished), Change-Id: I0eb09e398b2a3b307fdd67a3fe505b1bdd1078f8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmlprofiler: Use std::cerr directly rather than through QTextStreamUlf Hermann2018-12-171-16/+10
| | | | | | | | | | | The application output already is in the right text encoding. There is no point in re-encoding it. The re-encoding is actually expensive enough to delay the target application in some cases, and that distorts the profiling results. Change-Id: I3a6c47801cba072f6cfff8d0d2c3d10725750d00 Reviewed-by: Martin Smith <martin.smith@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Tools: Improve wordingUlf Hermann2018-11-221-17/+17
| | | | | | | | We start an executable and that results in a process. "program" is not very well defined here. Change-Id: Iec00ec806843c93951f0dcfbfe46984bf599470f Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-04-261-3/+2
|\ | | | | | | | | | | | | | | Conflicts: src/imports/imports.pro src/src.pro Change-Id: Icdc39b6169d15b2102acd0e4d550a8d91e4b0744
| * Make QtQmlDebug independent of QtQmlUlf Hermann2018-04-241-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This means QtQmlDebug needs its own qqmlprofilerdefintions.h. This is a good thing because this way we notice if we change the definitions in an incompatible way. The test uses QtQmlDebug after all. Also, qqmldebugserviceinterfaces_p.h is not available anymore, which means the service names have to be spelled out. This, also, is beneficial as it prevents us from accidentally changing the names. In the context of QmlDebug we don't need to namespace the profiler definitions, either. This simplifies some code. Task-number: QTBUG-60996 Change-Id: Ibb39e48c9b758687d68b8ce4431f45eb26939a09 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-02-271-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4internalclass.cpp src/qml/parser/qqmljslexer.cpp src/qml/qml/v8/qv8engine.cpp src/qml/util/qqmladaptormodel_p.h src/quick/items/qquickanimatedsprite.cpp tests/auto/quick/qquickanimatedsprite/tst_qquickanimatedsprite.cpp Change-Id: I16702b7a0da29c2a332afee47728d6a6ebf4fb3f
| * use nullptr consistently (clang-tidy)Shawn Rutledge2018-02-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | From now on we prefer nullptr instead of 0 to clarify cases where we are assigning or testing a pointer rather than a numeric zero. Also, replaced cases where 0 was passed as Qt::KeyboardModifiers with Qt::NoModifier (clang-tidy replaced them with nullptr, which waas wrong, so it was just as well to make the tests more readable rather than to revert those lines). Change-Id: I4735d35e4d9f42db5216862ce091429eadc6e65d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-02-151-0/+18
|\| | | | | | | Change-Id: I2d4c012c8ca578f90d7eb56dbc6b306ac7cbb841
| * Merge remote-tracking branch 'origin/5.10' into 5.11Liang Qi2018-02-121-0/+18
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/imports/shapes/qquickshape.cpp src/imports/shapes/qquickshape_p_p.h src/qml/compiler/qqmlpropertycachecreator_p.h src/qml/jsruntime/qv4value_p.h src/quick/items/qquickloader_p.h tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp tools/qmlprofiler/qmlprofilerapplication.cpp Change-Id: Iafc66ae84bf78630ed72a986acb678e9d19e3a69
| | * qmlprofiler tool: In attach mode, finish when connection dropsUlf Hermann2018-02-021-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | We won't have a process that terminates in this case and we don't want to wait forever. Task-number: QTBUG-66159 Change-Id: I5d0bbe2f8bc9c7cbc8732272ccca779d5f9bcc7d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | qmlprofiler tool: Fix message in interactive modeUlf Hermann2018-02-071-1/+5
|/ / | | | | | | | | | | | | | | | | The "Really Quit?" can be posted for more than one reason. Only repeat the last part if the user doesn't press 'y' or 'n'. Also, output an extra newline on exit, so that the shell prompt shows up again. Change-Id: Ide0372e1e11059d6b8089750f5e665f05aa60122 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* / Use better QmlProfiler client from Qt CreatorUlf Hermann2018-02-021-27/+30
|/ | | | | | | | | | | | This client can track locations itself, and thus doesn't require the server to send the event types over and over with each message. Once all our client implementations have this feature we can drop a lot of code. Furthermore, this way we can write regression tests for bugs that only occur when client side location tracking is active. Change-Id: I3735392452e20a7be98e92b900fadef04701d85f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* tools: replace 'foreach' with 'range for'Anton Kudryavtsev2016-08-201-2/+2
| | | | | | | | | Mark some local variables or parameters as const to prevent detach()'ing. Use qAsConst where is not possible mark as const. Change-Id: I0a777c3bd855abd3bb1ad0907152360cf4a1050e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* tools: use QStringRef moreAnton Kudryavtsev2016-08-121-3/+3
| | | | | | Change-Id: I4fccbfb2b965daf3a31846d1d51d39eb74ad944d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Tooling: Convert connects to Qt5 styleUlf Hermann2016-07-281-12/+16
| | | | | Change-Id: I6746b777f73d047f5cf610bfca9b320ac1e13676 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Updated license headersJani Heikkinen2016-01-201-17/+12
| | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I04760a0801837cfc516d1c7c02d4f503f6bb70b6 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Extend QDebugMessageServiceUlf Hermann2015-11-171-1/+5
| | | | | | | | Add category and timestamp, and allow synchronizing the timestamps with QQmlProfilerService. Change-Id: I8dc67e43e1087e231167fc4cfdfb5f659e00c5b2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move QML profiler client to qmldebugUlf Hermann2015-10-301-27/+5
| | | | | Change-Id: I506909b68be6cbad631d1645673c2d38460aed33 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlProfiler: Collect useful input eventsUlf Hermann2015-10-301-2/+4
| | | | | | | | | Just "Key" or "Mouse" as only attributes of input events are not very useful. This change adds some additional information and also collects input events from QQuickWindow. Change-Id: I062bbffeef3fa87776bc8be33f2321edf793faa2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* qmlprofiler: Use local socket connection by defaultUlf Hermann2015-10-301-14/+30
| | | | | | | This is faster and more reliable. Change-Id: I2eef4c7ffa99daf68d0f7a53a959f4fc788666c5 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move QQmlDebugClient into separate static libraryUlf Hermann2015-10-301-16/+1
| | | | | Change-Id: Ib3daf9da2cf6798bd022cfcf54d11e565c9cb4ca Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* qmlprofiler: Clear trace client when trace is finishedUlf Hermann2015-10-151-0/+4
| | | | | | | | If the application was killed with -9 or similar there may be some open ranges left. We don't want them to influence the next session. Change-Id: I284086ff96d81a829f02e160ef8b82417fd51466 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* qmlprofiler: Simplify QmlProfilerClientUlf Hermann2015-10-151-15/+9
| | | | | | | We only need one class for it now. Change-Id: Iea2715993c0ce168a3ceeecbb694f1ad3585da68 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-10-141-1/+1
|\ | | | | | | Change-Id: I11ea57222ba5aa683b7bfd7735fbc1d2cf86e875
| * Tools: Fix single-character string literals.Friedemann Kleint2015-10-131-1/+1
| | | | | | | | | | | | | | Use character literals where applicable. Change-Id: I55679dcc13c4c79567712c0dfaaabc2b84fee010 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
* | qmlprofiler: Remove V8 profiler clientUlf Hermann2015-08-281-36/+2
|/ | | | | | | It's been a long time since the last Qt version with V8. Change-Id: Iae36dd1c5bb6275254c6a64a8e6b843454139e2b Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Allow specification of loadable debug services via command lineUlf Hermann2015-08-131-1/+2
| | | | | | | | | We don't want to load the debugger when profiling and vice versa. This makes it easier to prevent unwanted services from getting loaded. Task-number: QTBUG-47623 Change-Id: I28893b6218110274a6d30b27805d89dbb443add3 Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* qmlprofiler: Use QQmlProfilerDefinitions for accessing definitionsUlf Hermann2015-07-231-11/+11
| | | | | Change-Id: I6def7dd8a0ce0db22ad4829029d8510f5869c813 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* qmlprofiler: Remove some dead codeUlf Hermann2015-06-151-6/+1
| | | | | Change-Id: If1f542bc73d5af259ea3c0a5da40786f8d6f3dbf Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: Allow specification of features to recordUlf Hermann2015-06-091-0/+72
| | | | | | Task-number: QTBUG-43066 Change-Id: I963a5a483f961dd150f00de3d96c723c8b62edb8 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: Record input eventsUlf Hermann2015-06-091-0/+2
| | | | | Change-Id: Ib6413d97638b192377d7dbeb19ed0c2f733a06a1 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: Output data after application quits in non-interactive modeUlf Hermann2015-06-071-0/+8
| | | | | Change-Id: I38abed0d5af3bcc7be5fa9e21bde14be40a3ce1d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: Redirect app stdout to qmlprofiler stderrUlf Hermann2015-06-071-1/+1
| | | | | | | | This seems to be a common technique for tools that wrap application execution and potentially have their own output. Change-Id: I4ca1bc5861d5b915b4ca07aec08ad06c8c73c8d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: Improve options for trace outputUlf Hermann2015-06-061-42/+167
| | | | | | | | | | | | * Remove the auto-generation of file names. * Accept file names as parameters or from interactive commands * Output to stdout by default for better scripting and quick preview * Decouple output from clearing of data so that you can write the same data multiple times. Task-number: QTBUG-43066 Change-Id: Ia4cc3701cbac7c6f8948b11307130a5d6a2ff44c Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: Only accept commands if we ask for themUlf Hermann2015-06-061-6/+6
| | | | | | | | This way we can shut down the input thread after the last command and we cannot get commands before we can process them. Change-Id: Ie1583a338da9c9df0e07c9e09ce185857c5ea66d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: In interactive mode, don't quit if application quitsUlf Hermann2015-05-211-7/+7
| | | | | | | We might want to inspect or save the pending data in some special way. Change-Id: I235b1f948ad4a9ddd100332991243231119bcf08 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: Add non-interactive mode and make it the default.Ulf Hermann2015-05-211-7/+17
| | | | | | | | | | | | | If you just run a test application through the profiler without any further parameters, you want it to record the data the application generates and then terminate itself. [ChangeLog][QtQml][Behavior Change] Make qmlprofiler command line interface better suited for scripting. Task-number: QTBUG-43066 Change-Id: I831e714b9c7b4b984b6450ad5c78ba4fdae6b8f6 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: Clean up recording state messUlf Hermann2015-05-211-48/+35
| | | | | | | | | | | | | The recording state is a global property of the profiler client, it has to match the application's recording status as well as possible, and the user can set an initial target value with a command line parameter. This way we don't get strange error messages when the application quits by itself and properly sends all the data before. Task-number: QTBUG-43066 Change-Id: Id93aa7fb940f870c8f16cea8427c38aab450f864 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmlprofiler: Add some sanity to command line parsing.Ulf Hermann2015-05-211-78/+85
| | | | | | | | | Use QCommandLineParser to allow for double-dash options and improve the help text. Task-number: QTBUG-43066 Change-Id: Iac772cbbf750016a9058658c9b4b275faf8fb62f Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-121-7/+7
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9 Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* Update license headers and add new licensesJani Heikkinen2014-08-251-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0 Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* Write memory events into tracefiles generated by qmlprofilerUlf Hermann2014-08-121-0/+4
| | | | | Change-Id: Ic01505194f29967ed1aad16fe36e14dc5532ae25 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Properly support all events in trace files and clean up a bit.Ulf Hermann2014-06-061-0/+9
| | | | | | | | | In particular, use both message and range type to identify events so that we can get rid of the messy type aliasing. Task-number: QTBUG-36953 Change-Id: I691a7501aa285f78f7ce5b7017ef50628f44fcf7 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>