aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger/qqmldebugservice_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Replace debugger and profiler with stubs on -no-qml-debugUlf Hermann2016-07-281-0/+4
| | | | | Change-Id: I0f029d92366b3b508bf024c67b877a14bae27cd6 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlDebug: Inline most of QQmlDebugServiceUlf Hermann2016-07-271-8/+8
| | | | | | | | The compiler might be able to optimize better if it knows the methods are empty. Change-Id: Ib730e857d1ab948bb2f5c5006f4911d2e6db282d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Updated license headersJani Heikkinen2016-01-191-14/+20
| | | | | | | | | | | 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>
* Use QJSEngine instead of QQmlEngine in debug servicesUlf Hermann2015-11-171-7/+7
| | | | | | | | | This allows us to use the debug infrastructure in a JavaScript-only environment. Also add override declarations to make such changes easier in the future. Change-Id: I171271f0ad3868b3de71a8a2316a24602f94200a Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* QmlDebug: Restructure QPacket and QPacketProtocolUlf Hermann2015-11-171-1/+0
| | | | | | | | | | | | | | | | | | | | | | 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>
* Put QPacketProtocol into its own static libraryUlf Hermann2015-10-151-11/+0
| | | | | | | | | | | | We need it in 3 places in qtdeclarative and we could also use it in QtCreator. We don't want to bundle it with the debug client code as it is also necessary for the server. QPacket replaces QQmlDebugStream as it has the same purpose. This also fixes the inconsitent handling of data stream versions. Change-Id: I650fae353f267511c551b427d9169f4d718aa7f2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Remove pimpl from all classes derived from QQmlDebugServiceUlf Hermann2015-07-311-3/+0
| | | | | | | | There is no point in using pimpl for purely internal classes, especially when we move them to their own plugins. Change-Id: I2ee8bf2ded2242d91bab89f589a131dc3bcc9a55 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Use signal/slot for passing messages through QQmlDebugServerUlf Hermann2015-07-311-3/+3
| | | | | | | | | | | | | | This results in much cleaner code than the previous implementation using QMetaObject::invokeMethod(). We have to use read locks now for adding and removing engines, as we should have done already before. If a condition is waiting on a write lock you cannot acquire a read lock from another thread. So, if we kept the write locks we wouldn't be able to receive messages while the engines are waiting. Change-Id: Icfe641601dec2f8d7181ae579146ed603d57a4c2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Remove QQmlDebugService::objectToString()Ulf Hermann2015-07-291-2/+0
| | | | | | | It isn't used anywhere. Change-Id: I73e2f448be30c04dca4d7122d173782e302478bd Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Make QQmlDebugService's state and engine callbacks publicUlf Hermann2015-07-291-13/+10
| | | | | | | | | It's clear that the public API of QQmlDebugService is meant to be used by QQmlDebugServer or future replacements. Restricting access with "friend" requires listing all those possible replacements. Change-Id: I197f1fa53cf985f52cfe5e077a95eda1ed5214b4 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Remove static proxy methods from QQmlDebugServiceUlf Hermann2015-07-291-4/+0
| | | | | | | | | They all internally map to one-liners and just add to binary size and complexity. Especially, the most used one, isDebuggingEnabled(), simply checks if there is a QQmlDebugServer::instance(). Change-Id: Ib269928e08506894d933f6696e34ff0d3acb048b Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move data stream version into QQmlDebugStreamUlf Hermann2015-07-221-0/+2
| | | | | | | | When moving the server into a plugin we won't be able to directly access it anymore. Change-Id: Iea0bac187cfa5cda69a0852b36d61f535e12d6c6 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Simplify object/id lookup in QQmlDebugServiceUlf Hermann2015-07-211-5/+3
| | | | | | | | | | By tracking object destruction we can avoid looping over all cached objects to find out which ones are still OK and we don't have to manually clear the cache anymore. Looking up objects by source location is specific to the engine debug service and should be done there. Change-Id: I7dab73a7bf9c17087784f1bd9c5aef513b31e2c1 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Make name and version of QQmlDebugService constUlf Hermann2015-07-201-1/+1
| | | | | | | They aren't supposed to change after construction. Change-Id: I4aee0c04f5bb77b0e75c016ecbc72ea34639d587 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Unify #include syntaxUlf Hermann2015-07-201-1/+1
| | | | | Change-Id: I4e0e79ebae3d42664bcf617193ca347890cf922e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Make QQmlDebugService::name() a const referenceUlf Hermann2015-07-201-1/+1
| | | | | Change-Id: I7e75be206a1821018efc435337963f131b2996a8 Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* Make QQmlDebugService ctor protectedUlf Hermann2015-06-261-1/+1
| | | | | | | No one needs a bare debug service. Change-Id: I45a2f2437f51197707af2743faad1845b8007053 Reviewed-by: Simon Hausmann <simon.hausmann@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>
* Unify initial waiting of debug servicesUlf Hermann2014-02-101-0/+4
| | | | | | | | | | | | The debug services generally behave in one of two ways when initializing: Either they block the initializing thread until some configuration is passed over the network or they just go on. By introducing a generalized configurable debug service the various ways of waiting on initialization are cleaned up. The API defined for it also allows for engine-specific initialization. Change-Id: Id5685ef17d2a7eb1222629f7caa5ec53076d47b2 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Unify the interface for QQmlDebugServicesUlf Hermann2014-02-051-0/+6
| | | | | | | | Let the debug server handle adding and removing of engines through defined interfaces to prepare for multi-engine profiling and debugging. Change-Id: I7b277e54bdcce1d3e95e723f041a7db6b08b29fc Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Remove QT_{BEGIN,END}_HEADER macro usageSergio Ahumada2013-01-281-4/+0
| | | | | | | | | | | The macro was made empty in qtbase/ba3dc5f3b56d1fab6fe37fe7ae08096d7dc68bcb and is no longer necessary or used. Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html Change-Id: Ia07e99676e0134fde5e32880edb95e57c779a7ff Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Alan Alpert <aalpert@rim.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-101-1/+1
| | | | | | Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-231-24/+24
| | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Debugger: Clearing the ObjectReferenceHashSimjees Abraham2012-05-301-0/+1
| | | | | | | ObjectReferenceHash is cleared when the Qml file is reloaded. Change-Id: I78da1d88cce2f04fe820f3af14b047cd562e90ed Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
* Debugger: Removing the deleted objects from objectReferenceHashSimjees Abraham2012-05-241-0/+1
| | | | | | | | | | The invalid entries from objectReferenceHash in QQmlDebugService is removed once the Qml object is destroyed. Task-number: QTCREATORBUG_7451 Change-Id: I8d2ccafe81a811ea319f13fd99fbde3c13e6b2be Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
* QQmlDebugService: Fetch Objects for location infoAurindam Jana2012-05-121-0/+2
| | | | | | | | Fetch Objects for given filename, line number and column number. Change-Id: I9a81e4c7fa75faaf87f02453026c5320b7f86003 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* QmlDebugging: Exchange supported QDataStream versionsAurindam Jana2012-04-261-0/+10
| | | | | | | | | Since the client and service needs to pack/unpack datastreams, they need to encode/decode using the lowest common QDataStream version. Change-Id: I3b4886fece59b24950ba618da07a0fefd41a5637 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* Debugger: Fix race conditions in block modeKai Koehne2012-04-251-1/+1
| | | | | | | | | | | | Using waitForMessage() in the constructor after registerService() is _not_ safe: You might get the first message already after the registerService() and before the waitForMessage() call. Instead, use QMutex/QWaitCondition to block the initialization. Also make the use of the block mode explicit, since the service might already be enabled also for non-blocking modes ... Change-Id: I387bfe0627c80e2029acff71f86d12cd9ab58de1 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* Rename QDeclarative symbols to QQuick and QQmlMatthew Vogt2012-02-241-0/+113
Symbols beginning with QDeclarative are already exported by the quick1 module. Users can apply the bin/rename-qtdeclarative-symbols.sh script to modify client code using the previous names of the renamed symbols. Task-number: QTBUG-23737 Change-Id: Ifaa482663767634931e8711a8e9bf6e404859e66 Reviewed-by: Martin Jones <martin.jones@nokia.com>