aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmldebug
Commit message (Collapse)AuthorAgeFilesLines
* Add 'We mean it' header to qqmlinspectorclient_p.hKai Koehne2019-02-211-0/+11
| | | | | | | | Fixes WARNING: src/qmldebug/qqmlinspectorclient_p.h does not have the "We mean it." warning Change-Id: I440c19a797c2780b6c775196682240a8cc7ca6fe Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-11-162-5/+12
|\ | | | | | | Change-Id: I34aa0c2eb178862b40e63b62c6daa056e5e204c6
| * Qml Tooling: Correctly sort debug messages into tracesUlf Hermann2018-11-152-5/+12
| | | | | | | | | | | | | | | | | | | | | | Debug messages are sent from a different debug service and generally arrive before they are "due". Therefore we buffer them and pass them on when the trace has advanced to their position. However, we forgot some places where we needed to check if there are pending debug messages to be sent. Change-Id: Ia6263086a9d06ae7c77c9e2afa85e6e1d8c8a19b Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | QmlDebug: Add QQmlInspectorClientUlf Hermann2018-10-244-0/+296
| | | | | | | | | | | | | | | | We use it in 2 tests and we might use it elsewhere, too. Task-number: QTBUG-66504 Change-Id: I57e52e70044ac857482ecfe863f0d30698ab2e60 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QmlDebug: Add QQmlEngineDebugClientUlf Hermann2018-10-244-0/+813
| | | | | | | | | | | | | | | | | | We use it in 3 tests already, and we may want to use it in other applications, too. Task-number: QTBUG-66504 Change-Id: Id73b6ccf49a701fbbc79ee3fe1ac638a70c4c939 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QmlDebug: Add V4 debug client from tst_qqmldebugjs.cppUlf Hermann2018-10-234-2/+784
|/ | | | | | | | | | | This is useful for implementing additional V4 debug clients. Along the way, we also drop the dependency on QML by using the JSON API from QtCore for JSON manipulation. Task-number: QTBUG-66504 Change-Id: Ib51e8e97b030a49fe8185ad5354d1cca63efef4a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Qml Preview: Record more detailed frame statisticsUlf Hermann2018-09-102-4/+17
| | | | | | | | | | | | | Just the number of frames per second doesn't tell us the reason for any low frame rates. The problem could either be GPU-bound, and rendering could take very long, or the problem could be CPU-bound, with synchronizing or the gap between frames being very long. Reporting the rendering and synchronization times in more detail gives the client an idea of what is actually going on. Change-Id: Ib2840a9e1aa9b9738e967730c668769946659be2 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* Tooling: Allow QML preview to change the languageUlf Hermann2018-07-202-1/+10
| | | | | Change-Id: I9afc5a0e1c7807f19dfcca1270267bbf7f718903 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QML Preview: Add a frames per second counterUlf Hermann2018-07-182-9/+22
| | | | | | | | It is instructive to the client to know how many frames per second the current QML can achieve in the preview. Change-Id: I8b73e2b5218410d903a07dfe27c038663c84fdee Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Tooling: Add QML preview debug serviceUlf Hermann2018-07-134-0/+288
| | | | | | Task-number: QDS-181 Change-Id: I02193afb84aa111792d8bebff3bdd9b410f9db5a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devSimon Hausmann2018-06-191-3/+2
|\ | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp src/qml/compiler/qv4codegen.cpp tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp Change-Id: I010505326d76ee728ffe5fbd4c7879f28adadb12
| * Tooling: Fix integer range checksUlf Hermann2018-06-061-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The packet protocol should check if the number of bytes to be read is positive. Also, a Q_ASSERT on the return value of read() is too brutal. The device can have failed for any number of reasons and we don't want to crash the application because of that. Finally, the number of bytes to be read includes the bytes read to determine the number. Make that clearer by subtracting the actual count, not sizeof(qint32). The check in QQmlProfilerTypedEvent is supposed to happen before we cast the number to the more restrictive type. Furthermore, if subtype doesn't fit the range constraint, we don't have to do anything at all as the default rangeType is already set before. Change-Id: I48c8c47e4207abae6e718eea97815d43e7f9d833 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-05-041-0/+11
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmltypeloader.cpp src/qml/qml/qqmltypeloader_p.h Done-with: Simon Hausmann <simon.hausmann@qt.io> Task-number: QTBUG-68091 Change-Id: I7c0ab3c9446ac50da07b58f54e24eb4587f7f28c
| * Add "We mean it" to qqmlprofilerclientdefinitions_p.hUlf Hermann2018-04-271-0/+11
| | | | | | | | | | Change-Id: I4ff64856c066309057e9f201ab51ed805042aefc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-04-2610-65/+232
|\| | | | | | | | | | | | | | | Conflicts: src/imports/imports.pro src/src.pro Change-Id: Icdc39b6169d15b2102acd0e4d550a8d91e4b0744
| * Make QtQmlDebug independent of QtQmlUlf Hermann2018-04-2410-65/+232
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | QQmlDebugClient: Make stateChanged a signalUlf Hermann2018-03-207-21/+8
| | | | | | | | | | | | | | | | | | | | | | This way we can observe it from the outside and drop all the code that genrated extra signals from the virtual method. Also drop the unused QQmlDebugTestService::stateHasChanged signal to reduce the confusion. Change-Id: Ia37c1eaf8b392e594b0931694f43f84fe09b000c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-03-031-2/+2
|\| | | | | | | Change-Id: I308b964d86ca01916f6af7d6e3f71557e3624eca
| * Silence a GCC 8 warning in qqmlprofilereventVille Voutilainen2018-02-281-2/+2
| | | | | | | | | | | | | | | | qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h:100:55: error: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct QQmlProfilerEvent’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Werror=class-memaccess] memcpy(this, &other, sizeof(QQmlProfilerEvent)); Change-Id: I72a03da54784ba3dcd89def5ae44c1ae26a68e53 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-02-273-13/+10
|\| | | | | | | | | | | | | | | | | | | | | | | | | 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
| * init variables where they are declared when possible (clang-tidy)Shawn Rutledge2018-02-261-10/+7
| | | | | | | | | | | | | | | | clang-tidy -p compile_commands.json $file -checks='-*,modernize-use-default-member-init,readability-redundant-member-init' -config='{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: "1"}]}' -header-filter='qtdeclarative' -fix Change-Id: I705f3235ff129ba68b0d8dad54a083e29fcead5f Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * use nullptr consistently (clang-tidy)Shawn Rutledge2018-02-263-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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/+11
|\| | | | | | | Change-Id: I2d4c012c8ca578f90d7eb56dbc6b306ac7cbb841
| * qqmlprofilereventreceiver_p.h: Add "We mean it" commentv5.11.0-alpha1Friedemann Kleint2018-02-141-0/+11
| | | | | | | | | | | | | | | | | | | | Fix warning: QtQmlDebug: WARNING: .../src/qmldebug/qqmlprofilereventreceiver_p.h does not have the "We mean it." warning Amends b82296f825daf0ba110fea4aa1b61f96d63f371b. Change-Id: I540bee466be96ba787283bfc7b1d5c36066df2ed Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-02-083-17/+44
|\| | | | | | | Change-Id: I32ae7587ddd92c53d078dc5bb69ca9281f801612
| * QmlDebug: Clear profiler client's trackedEngines on clear()Ulf Hermann2018-02-081-0/+1
| | | | | | | | | | Change-Id: Ibd3e033339e26158c5f5c3dadbbcb6a903671cf5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * QmlDebug: Use EngineControl to hold engines until we're done with themUlf Hermann2018-02-082-4/+25
| | | | | | | | | | | | | | | | | | Holding the engines with EngineControl makes sure we always receive the full trace before the connection drops. Task-number: QTBUG-66269 Change-Id: I9177c2a52743ba781547696508342c8d98557121 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * QmlDebug: Don't lie about blocked engines in EngineControlUlf Hermann2018-02-081-13/+18
| | | | | | | | | | | | | | | | Previously additional engineIds could be accidentally added to the list by processing the engineAdded and engineRemoved signals. Change-Id: Ibac0c1ff48ae31c736371d319fe91d33a3396b05 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QmlDebug: Use types with fixed length for QDataStreamUlf Hermann2018-02-081-3/+3
| | | | | | | | | | Change-Id: Ieb97a7137e9b7508d14e4dd9992850e3ffe1df7e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Define ~QQmlProfilerClient out of lineUlf Hermann2018-02-072-2/+5
|/ | | | | | | | This is a virtual function. We want only one definition of it. This also fixes some linker warnings to the same effect. Change-Id: Idffea96e705470be5d79bfd075fb62c0d52eac00 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Use better QmlProfiler client from Qt CreatorUlf Hermann2018-02-0215-329/+1822
| | | | | | | | | | | | 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>
* Run includemocs in qtdeclarativeThiago Macieira2017-04-263-0/+6
| | | | | Change-Id: I84e363d735b443cb9beefffd14b8c023a37aa489 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* headers: Add missing override and remove redundant virtualAlexander Volkov2016-12-072-2/+2
| | | | | | Change-Id: Ifa816ebcd79372afca42dbd0dc0ecde006bb688a Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Tooling: Convert connects to Qt5 styleUlf Hermann2016-07-283-29/+28
| | | | | Change-Id: I6746b777f73d047f5cf610bfca9b320ac1e13676 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlDebug: Fixes for QQmlDebugConnectionUlf Hermann2016-07-251-3/+4
| | | | | | | | Properly close the connection on invalid hello messages and implement flush() also for local sockets. Change-Id: Ie78441b9933c6de053962a11b5d7e2636792a31c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlProfiler: Send RangeData and RangeLocation only once per typeUlf Hermann2016-05-272-2/+27
| | | | | | | This saves time when serializing the data to be sent. Change-Id: Ic8c534d55445934a64dd253273099194b27d98af Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlDebug: Support sending multiple messages per packetUlf Hermann2016-03-111-5/+8
| | | | | | | | | | | | | This reduces the overhead caused by the prepending of service names to packets. When running the planets example from qtcanvas3d through qmlprofiler the average message length, without service name, is 26 bytes. The average full packet, with name and length, is 64 bytes long. In fact, the time between stopping the application and the last message arriving in the profiling client is reduced by 30-50% with this change. Change-Id: I0ffdd0483d45bbe8b092c59a9dcd63c6dc59119c Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Updated license headersJani Heikkinen2016-01-1912-168/+240
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* QmlDebug: Add some useful methods to QQmlDebugConnectionUlf Hermann2015-11-184-3/+55
| | | | | Change-Id: Iee2c09278f31ea93da9c02be6b2fc909b5f154d0 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlDebug: Move EngineControl client to qmldebugUlf Hermann2015-11-174-0/+315
| | | | | Change-Id: Ia2e01b3acb8e0dab19b67dd612e6228d13b4755d Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlDebug: Make profiler client use the right service keyUlf Hermann2015-11-171-1/+2
| | | | | | | This is the upside of having the keys exported after all. Change-Id: I265f481668e72d3c3bde1400b7f1e2b61eea82af Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlDebug: Restructure QPacket and QPacketProtocolUlf Hermann2015-11-176-28/+37
| | | | | | | | | | | | | | | | | | | | | | We cannot use the same data stream version for the client and server versions of QPacket and QPacketProtocol should not deal with QPackets but with simple byte arrays because the underlying QDataStream is hard to copy. The new QQmlDebugPacket picks its data stream version from QQmlDebugConnector now, which adjusts it when connecting. As there can only ever be one QQmlDebugConnector, we can keep the version static. The clients need to query the connection for the correct version. We may connect to several different servers sequentially or we may have a server running while using a client, and we don't want to confuse the versions between those. With this in place, all remaining occurrences of QDataStream are replaced with QPacket or QQmlDebugPacket. Change-Id: I3f6ba73fcbfad5e8df917c5feb9308116738a614 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move QML profiler client to qmldebugUlf Hermann2015-10-305-3/+601
| | | | | Change-Id: I506909b68be6cbad631d1645673c2d38460aed33 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move QQmlDebugClient into separate static libraryUlf Hermann2015-10-306-0/+783
Change-Id: Ib3daf9da2cf6798bd022cfcf54d11e565c9cb4ca Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>