aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger
Commit message (Collapse)AuthorAgeFilesLines
* Qml Profiling: Handle the case of profiling without any featuresUlf Hermann4 days2-6/+8
| | | | | | | | | | | | | | We cannot encode the "running" state of a profiling adapter into the features it's recording. It may be started with no actual features enabled and then we still need to stop it eventually. In order for the QmlProfiler test to work without the DebugMessages feature we still need to create the DebugMessages client, but ignore its output. Otherwise the logic that checks "unrelated" clients gets confused. Change-Id: I52a3c2bc55ea36454ab9c8c7f25fe833c7f14a43 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* qqmldebugserverfactory: use file-based includeSami Shalayel2025-11-171-4/+4
| | | | | | | Qt Code should use file based includes. Change-Id: I19a5b583c0df9c2c418c322ee1221afa1517f77b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qqmldebugserverfactory: add qFatal() on QApplication leakSami Shalayel2025-11-172-2/+18
| | | | | | | | | | | | It seems that the QML debugger framework cleanup does not happen correctly when QApplication is leaked. Instead of running into the asserts of QQmlDebugServerImpl::removeService and ~QObject (during destruction of QQuickProfilerAdapter), warn the user with qFatal() about the possible leak of QApplication. Task-number: QTBUG-139131 Change-Id: If0497b3d4de4a1dec1bf968760d9fa79eb24683e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Mark internal APIs with \internal commandJerome Pasion2025-11-071-0/+6
| | | | | | | | | | | These internal APIs have function documentation but are missing class documentation. Adding an internal class documentation fixes QDoc warnings. Task-number: QTBUG-141697 Change-Id: Iecb289d39e34ddaa964fbe0a1404830cd2269caa Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Tooling: Add an event replay debug serviceUlf Hermann2025-11-072-1/+18
| | | | | | | | | | | The event replay service can funnel input events recorded by the QML profiler service back into the program. This way we can re-create the exact behavior of a previous execution, including user input. Task-number: QTBUG-141569 Change-Id: I069cf546f6c62b3abb7637fb064ebb1b3158129f Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Fix QDoc warnings for internal classes and functionsJerome Pasion2025-11-071-1/+4
| | | | | | | | | | -Mark internal functions with \internal -Sometimes the solution is to have a \class command and marked internal -Fixed whitespace issues when the new marking introduced them Task-number: QTBUG-141665 Change-Id: I4f744aa94ca679da74b6c5e846e49a73346e2625 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Document QQmlDebuggingEnabler and enableDebugging()Ulf Hermann2025-11-051-0/+34
| | | | | | | | | Without this, the existing documentation for the other methods of QQmlDebuggingEnabler doesn't show up. Pick-to: 6.10 6.8 Change-Id: I97335271035294b7f65d9ac78b9cf0143896a6c3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlTooling: Add security headersUlf Hermann2025-10-312-0/+2
| | | | | | | | | | | | | | | The whole debugging framework (services and clients) should only be used in trusted environments. Therefore it's "significant" despite using network connections and parsing data. Mark the code the enables the debug framework in qqmldebug.{h|cpp} as crtical in turn. Fixes: QTBUG-136187 Pick-to: 6.10 6.8 Change-Id: Ie0a4ad555e088f564a233629e4d99e84b1327486 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QQmlDebugTranslationService: work around GCC bug std::variantThiago Macieira2025-10-271-0/+3
| | | | | | | | | | | | | | | | | | | Like std::optional, libstdc++'s std::variant may leave space outside of the active object uninitialized. Then GCC complains. Amends 4c6fb83b980aaca1e039e43ff0504e1ac0cd3aad, which attempted to workaround this bug by switching from std::monostate to std::nullptr_t. It didn't work. qqmldebugserviceinterfaces.cpp:54:21: error: ‘((QArrayDataPointer<char>*)((char*)&translation + offsetof(QQmlTranslation, QQmlTranslation::m_data.std::variant<std::nullptr_t, QQmlTranslation::QsTrData, QQmlTranslation::QsTrIdData>::<unnamed>.std::__detail::__variant::_Variant_base<std::nullptr_t, QQmlTranslation::QsTrData, QQmlTranslation::QsTrIdData>::<unnamed>.std::__detail::__variant::_Move_assign_base<false, std::nullptr_t, QQmlTranslation::QsTrData, QQmlTranslation::QsTrIdData>::<unnamed>.std::__detail::__variant::_Copy_assign_base<false, std::nullptr_t, QQmlTranslation::QsTrData, QQmlTranslation::QsTrIdData>::<unnamed>.std::__detail::__variant::_Move_ctor_base<false, std::nullptr_t, QQmlTranslation::QsTrData, QQmlTranslation::QsTrIdData>::<unnamed>.std::__detail::__variant::_Copy_ctor_base<false, std::nullptr_t, QQmlTranslation::QsTrData, QQmlTranslation::QsTrIdData>::<unnamed>.std::__detail::__variant::_Variant_storage<false, std::nullptr_t, QQmlTranslation::QsTrData, QQmlTranslation::QsTrIdData>::_M_u)))[2].QArrayDataPointer<char>::d’ may be used uninitialized [-Werror=maybe-uninitialized] This cannot be our bug. QQmlTranslation has a single, non-trivial member of type std::variant, so the variant is definitely initialized. If there's a bug, it's in libstdc++, so make the warning go away. Pick-to: 6.10 6.8 Change-Id: Id599211844d0350d7262fffd7315a20f9d367402 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Eliminate QFiniteStack and QQmlParserStatus backlinksUlf Hermann2025-05-151-10/+9
| | | | | | | | | | | | | | | | | Use a std::vector instead. Track QQmlParserStatus via a QQmlGuard on its QObject. This eliminates the need to keep stable references in the container that holds QQmlParserStatus. Therefore we don't need to allocate all of it in one go anymore, and consequently we can use std::vector rather than our homegrown solution. Since we now record the attached parser status callbacks in the same list as the regular ones, we also need to fix their profiler integration. Otherwise we would get mismatched profiler events. Task-number: QTBUG-135286 Fixes: QTBUG-132827 Change-Id: I695c8939892b18982f09357a53fe743479218808 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML debugging: Flush warningFabian Kosmale2025-01-101-1/+3
| | | | | | | | | | stderr is normally unbuffered, but that behavior can be changed. Ensure that our warning doesn't get lost by explictily flushing stderr. Pick-to: 6.8 6.9 Fixes: QTBUG-132350 Change-Id: I72463a62da50ec6bb551a110c719b061273f2595 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* Tooling: Use QHash/QMap's constFind() to avoid unnecessary detachesVladimir Belyavsky2024-04-231-4/+4
| | | | | | | | Use QHash/QMap's constFind() instead of non-const find() where applicable to avoid unnecessary detaches. Change-Id: I3906c7ff0601b2b4c336c6e4312319b76fa0c183 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Remove the use of Q_QML_PRIVATE_EXPORTAlexey Edelev2024-01-118-19/+19
| | | | | | Task-number: QTBUG-117983 Change-Id: I5790f01d614cd70c7fcc9bd817ec6ace3f3e3730 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Make base CU a member of ExecutableCompilationUnitUlf Hermann2024-01-101-2/+2
| | | | | | | | | | | | We want to re-use the base compilation unit across engines. For that to work it cannot be a slice of the engine-specific ExecutableCompilationUnit. Since CompiledData::CompilationUnit is refcounted on its own now, make it unmovable. Change-Id: I8418c9754d7a07e5210c1e7a7fc69355e1d57807 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix compile time qsTranslate with empty contextUlf Hermann2023-10-241-5/+8
| | | | | | | | | | | | | | | | | An empty context is to be passed as-is. We shall not replace it with the file context context. Since the TranslationData struct has a field for the context, we need to invent a "no context" value we use for the methods that don't allow you to set a context (e.g. qsTr, qsTrId). We cannot use 0 because that is the empty string which is a valid context now. Amends commit 9cfc19faf5d1ce2b9626914ab4528998b072385d. Pick-to: 6.6 6.5 Fixes: QTBUG-118469 Change-Id: I160c512f42aba4a8ae2fc8860cdf4e50c53d9d3e Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlRefCount: de-virtualize dtorMarc Mutz2023-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | Now that QQmlRefCounted ensures no-one uses ~QQmlRefCount() directly anymore, we can make it non-virtual, shrinking the sizeof(QQmlRefCount) from 8/16 to 4/4 bytes (32/64 bit platforms). This requires moving the release() function from QQmlRefCount down into QQmlRefCounted<T>, and static_cast'ing *this to T before calling delete. We need to be careful, of course, that no derived class relied on the implied virtualness of ~QQmlRefCount() making their dtors virtual, so require that all classes that use QQmlRefCounted are either final or have a virtual destructor. Update the toolsupport test and the TypeInformationVersion, as sizeof(QQmlRefCount) was one the items checked. Fixes: QTBUG-114817 Change-Id: I69afd36ec5b63313842c1438e0244503603ed96f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Qml: Analyze qsTranslate at compile timeUlf Hermann2022-10-131-3/+6
| | | | | | | | | | We generate translation bindings for all the other translation functions already. We can just as well generate a translation binding for this one, too. Fixes: QTBUG-107536 Change-Id: I851f03c26510b6d450aa78f5d7a1f0142d3a81aa Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Add new Quick3D event typesAntti Määttä2022-10-101-2/+3
| | | | | | | | | | | Also remove NumGUI/RenderThread constants since they are not needed anymore. Task-number: QTBUG-105970 Change-Id: Ib24e2f92d23e3ecdc5d9b4b759cceb71cdcefc06 Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-071-1/+1
| | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace. Task-number: QTBUG-99313 Change-Id: I601bf70f020f511019ed28731ba53b14b765dbf0 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Port from container::count() and length() to size()Marc Mutz2022-10-071-1/+1
| | | | | | | | | | | | | | | | | | | | 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>
* QtQml: Remove unused includes in qml, first partSemih Yavuz2022-09-141-1/+0
| | | | | | | | | | | | | | | Drop unnecessary includes detected by clangd-iwyu. Add new includes due to the transitive includes. Also, some of the includes were detected as unused even if they were actually in use. In those cases, use angular brackets instead of "" which deceives the tool not to complain. Affected subfolders: Debugger, Compiler, JsApi, JsRuntime, Memory, Parser Task-number: QTBUG-106473 Change-Id: I01d996a2a2ba31cbbc5f60f5454c8f850298f528 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmltc: translation binding supportSami Shalayel2022-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Implement and test support for translation bindings in qmltc: * qsTr() * QT_TR_NOOP() * qsTrId() * QT_TRID_NOOP() Not compiled by qmltc, but instead interpreted as script bindings: * combinations like qsTr(qsTr()) * qsTranslate() (as in qmlsc) * QT_TRANSLATE_NOOP() (as in qmlsc) Add the *.qm files directly to the resources as qt_add_translations() is not available from qtdeclarative (the cmake function lives in qttools that depends on qtdeclarative). Fixes: QTBUG-104637 Task-Id: QTBUG-105346 Change-Id: Ia9433c2bcef01f3486358d963059d9779c67708c Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Create Translation Bindings without CompiledData::BindingSami Shalayel2022-08-152-1/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To add translation bindings to qmltc, the methods used to create translation bindings need to be adapted to work without QV4::CompiledData::Binding as it is not available from qmltc. Instead, information already available from the QQmlJSScope should be used, along with a newly introduced helper class QQmlTranslation. Details: Add a QQmlTranslation class that represents a call to qsTr, qsTrId etc that knows how to translate itself (without needing any ExecutableCompilationUnit or Binding). It encapsulates the information needed to create a translation binding. ExecutableCompilationUnit::bindingValueAsString refactored so its functionality can be used without Binding. Instead, it uses only the translationId, see ExecutableCompilationUnit::translateFromId and ExecutableCompilationUnit::translateFrom. Refactored QQmlTranslationBinding to work with QQmlTranslation instead of CompiledData::Binding. Same for QQmlCppBinding::createTranslationBindingForBindable, QQmlTranslationPropertyBinding::create and QQmlCppBinding::createTranslationBindingForNonBindable. Changed TranslationBindingInformation to work without CompiledData::Binding, and also removed static unused QString ProxyTranslator::originStringFromInformation( const TranslationBindingInformation &translationBindingInformation) as I could not find out what this origin string is. Same for the translation debugging in qmldb_preview. Added QmltcCodeGenerator::generate_createTranslationBindingOnProperty. Added #if to avoid compilation error for standalone DOM compilation due to the new QQmlTranslation class. Task-number: QTBUG-105345 Change-Id: Iccd94d5cba4eaf63901233451fec48051c855c2a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlDebuggingEnabler: guard deprecated constructor definitionIvan Solovev2022-07-251-0/+2
| | | | | | | | | | ... to prevent compilation errors when built with QT_DISABLE_DEPRECATED_BEFORE >= 0x060400 Task-number: QTBUG-104950 Pick-to: 6.4 Change-Id: Id3d2528ed195ca2ad1da51f40fe81cb05884201b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove Qt key words from header filesYuhang Zhao2022-07-194-9/+9
| | | | | | | | | | | So that users can use QT_NO_KEYWORDS when linking against QtDeclarative, even if they are using private headers. Docs, examples and tools are not touched because it's not necessary. Pick-to: 6.4 Change-Id: Idc30797074aaa72576429ebdaaf915d7f5acf84e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-1123-875/+46
| | | | | | | | | | | | 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>
* qqmldebug.h: Wrap the QML debugging enabler into an unnamed namespaceUlf Hermann2022-06-022-3/+25
| | | | | | | | | | This way compilers will hopefully not complain about the use of global constructors anymore. It's clear now that we want a separate QQmlDebuggingEnabler for each CU. Change-Id: Ief8e748a87612c04a8ca9a8535f10d905675b918 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Fix race condition on QQmlEnginePrivate::qml_debugging_enabledMarc Mutz2022-05-312-2/+2
| | | | | | | | | | | | | C++11 allows static dynamic initialization from different TUs to happen concurrently, which means the QQmlDebuggingEnabler ctor must be re-entrant and synchronized with other users of qml_debugging_enabled. Thankfully, this is just a flag, so the fix is to simply make it atomic<> and use relaxed loads and stores on it. Pick-to: 6.3 6.2 5.15 Change-Id: I0305ab55be86a0e286016a3d1d97ee9bc0e28070 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlDebug: reliably print the debugger warningMarc Mutz2022-05-311-1/+10
| | | | | | | | | | | | | | | | | | | | | | When an executable contains some TUs that pass printWarning and some that don't, the warning could have been lost if static initialization first initialized one that had printWarning=false and only then moved to initializing one that had printWarning=true. Typically, a DLL might pass false here, in which case the user application, initialized later, wouldn't have a say in whether the warning was printed. Use an atomic_flag to independently track whether the warning was printed, so that we reliably print the warning when at least one TU in the final executable requested it. [ChangeLog][QtQml][QQmlDebug] The warning about enabled debuggers is now printed when at least one translation unit in the final executable requests it, independent of the order in which translation units are linked/initialized. Pick-to: 6.3 6.2 5.15 Change-Id: I10af0a46ecb82a8b1a1373eb9332d913c03b20f3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QML: Port QV4::CompiledData::Location to new special integer bitfieldUlf Hermann2022-05-111-1/+1
| | | | | | | | Pick-to: 5.15 6.2 6.3 Task-number: QTBUG-99545 Change-Id: If0d6f893f2351a4146ddf125be4079b5e312f308 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QQmlDebugService interfaces: make ctors explicitMarc Mutz2022-05-101-7/+7
| | | | | | | | | | We do not intend mere float values to be implicitly convertible to these types. Even though the ctor is protected, better mark them explicit. Change-Id: I7a15716cadb975e98781bd0dedea765b194981c9 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QQmlDebugService interfaces: de-inline dtorsMarc Mutz2022-05-102-0/+36
| | | | | | | | | | Destructors of polymorphic classes should be defined out-of-line, to pin the vtable and type_info to a single TU. Failure to do so may result in duplicated vtables and false-negtive dynamic_casts. Task-number: QTBUG-45582 Change-Id: Id7a1f17b5a50482c44fc7533e37014fa5fc60f0f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add a TU for QQmlDebugServerConnection{,Factory} to de-inline dtor & includemocsMarc Mutz2022-05-092-0/+54
| | | | | | | | | | | | Destructors of polymorphic classes should be out-of-line. Header moc files should be included into the implementation files. Both need a TU, so add one. Task-number: QTBUG-102948 Task-number: QTBUG-45582 Change-Id: I2b59d18fb4530245cccace895ff86ab0634d9f55 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add a TU for QQmlDebugServiceFactory to de-inline dtor & includemocsMarc Mutz2022-05-092-0/+50
| | | | | | | | | | | | Destructors of polymorphic classes should be out-of-line. Header moc files should be included into the implementation files. Both need a TU, so add one. Task-number: QTBUG-102948 Task-number: QTBUG-45582 Change-Id: Ifbfb7f462aa94c7f7e2db8a179e06392f021e097 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add a TU for QQmlDebugServerMarc Mutz2022-05-043-0/+51
| | | | | | | | | | | | | | | | This allows includemoc'ing, as well as de-inlining the destructor of this polymorphic class. Requires to rename the original qdebugserver.cpp, which turned out to be the implementation file for QQmlDebugServer_Factory_. I chose, surprise, qqmldebugserverfactory.cpp. The whole plugin could even be implemented in a single .cpp file, I guess. Task-number: QTBUG-45582 Task-number: QTBUG-102948 Pick-to: 6.3 6.2 5.15 Change-Id: I81aa4c60fa30ba5ced546afc72c5a4a3ba0e619f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Make sure all private headers include at least one otherThiago Macieira2022-03-102-0/+2
| | | | | | | | | | See script in qtbase/util/includeprivate for the rules. Since these files are being touched anyway, I also ran the updatecopyright.pl script too. Change-Id: Ib056b47dde3341ef9a52ffff13ef677e471674b6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QtQml: Do not depend on transitive includesFabian Kosmale2022-03-041-0/+1
| | | | | Change-Id: I287a6e63397c2c6140c3bc3e7d83f3212709531e Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
* Add quick3d events and types to qmlprofilerJanne Koskinen2021-12-201-0/+17
| | | | | | | | | | | | Loads qquick3dprofiler plugin if exists Task-number: QTBUG-98146 Pick-to: 6.3 Change-Id: I52ffaf4d68ad44161778a9cf5707afb1938012ca Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Clean up some includesUlf Hermann2021-11-051-5/+7
| | | | | | | | | We should not include qqmlglobal_p.h just for the export macros as that pulls in a number of other things. Rather, include qtqmlglobal_p.h for that. Change-Id: Iecb60ef676dd880c0d94360ccef6517ef1ec73bf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Plugins: Port to QPluginParsedMetaData and CBORThiago Macieira2021-11-012-9/+9
| | | | | | | | | | QFactoryLoader now no longer converts its internal metadata to JSON, so we may as well not do it here either. All of this is internal API, so we can change. Change-Id: I3eb1bd30e0124f89a052fffd16a6f2d82ad568af Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Qmldebugtranslator: report elide issues correctly inside layoutsTim Jenssen2021-10-122-5/+13
| | | | | | | Task-number: QTBUG-96991 Pick-to: 6.2 Change-Id: I911044893fb6eac54c6fb8f2b236f422bd04a7ae Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Add all qml debug translation fixes and functionalities from 5.15Tuomo Pelkonen2021-09-081-2/+4
| | | | | | | | | | | | * Add current state name in the protocol * Get style name in correct format * Get correct root item after changing new file Task-number: QTBUG-96052 Pick-to: 6.2 Change-Id: I5a7b9e29ec83e6258505cedbd55edf376386f783 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* QQmlDebugServiceInterfaces: Fix build when qml_debug is disabledFabian Kosmale2021-07-191-0/+2
| | | | | | | | | | | | | | | | Without the forward declaration, we don't know what TranslationBindingInformation is in foundTranslationBinding(const TranslationBindingInformation &). Moreover, we not only need to check for the translation feature, but also for the qml_debug feature before trying to use the QQmlDebugTranslationService. Pick-to: 6.2 Fixes: QTBUG-95162 Change-Id: I7bb100526a22d73637540729c51fa4cf1b148770 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add explicit QDataStream streaming operatorsThiago Macieira2021-06-231-4/+33
| | | | | | | I have a pending change to QDataStream that makes this an error. Change-Id: Iddb933f281024939b6acfffd1689d12f21b3a8e1 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Drop dead codeUlf Hermann2021-05-111-1/+0
| | | | | | | | No one should use Q_QML_IMPORT_DEBUG_PLUGIN anymore. Change-Id: Ic892dea7f28cacfa4e0d3ae2c2771b5c472b1dc9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Implement debugtranslationserviceTim Jenssen2021-04-263-6/+275
| | | | | | | | | | - moves the language feature from the preview service to an own debugtranslationservice - with the help of a proxytranslator the service gets all translate requests Change-Id: Ic26677bb1706abbea2db23e6aafe7a3f00648962 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove the qmake project filesFabian Kosmale2021-01-151-28/+0
| | | | | | | | | Remove all qmake project files, except for examples which are used to test that qmake continues to work. Change-Id: Ic4abb72dc2dcd75df7a797c56056b6b3c5fe62ac Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPEAndreas Buhr2020-12-161-1/+1
| | | | | | | | | | | | | Q_MOVABLE_TYPE was conceived before C++ had move semantics. Now, with move semantics, its name is misleading. Q_RELOCATABLE_TYPE was introduced as a synonym to Q_MOVABLE_TYPE. Usage of Q_MOVABLE_TYPE is discouraged now. This patch replaces all usages of Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE in QtDeclarative. As the two are synonymous, this patch should have no impact on users. Task-number: QTBUG-86829 Change-Id: I5bb418483a3b06619abb4ff62cf0290a7b3bcd4f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Standardize QJsonArray iterationDavid Skoland2020-10-281-1/+1
| | | | | | | | | When using refs as loop variables, the clang compiler complains (with default settings). This prevents that. Note that QJsonValueRef is used "behind the scenes", which makes this iteration method correct. Change-Id: I5a5f58ca8ad3887bce2009231cbae5a57c107697 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Make the qtquick and qtqml plugins optionalUlf Hermann2020-07-022-2/+15
| | | | | | | | | We can do the initialization and de-initialization as constructor and destructor functions. Then we don't need to load the plugins. Task-number: QTBUG-84639 Change-Id: I2aeeee7e8d028555e3af91e93518c2c2afd70dbb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>