summaryrefslogtreecommitdiffstats
path: root/src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Tools: handle file opening failureGiuseppe D'Angelo2024-04-141-6/+14
| | | | | | | | | Most of the cases, a file handle (stdin/out) is opened without checking for error. That operation may still fail, so check for it. Change-Id: I30c3e7b40858acd8b1662622129bd6557722dccd Reviewed-by: Ahmad Samir <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* qdbuscpp2xml: Register QtDBus metatypesIevgenii Meshcheriakov2023-11-281-0/+3
| | | | | | | | | | | | Explicitly register QtDBus-specific metatypes before attempting to generate output. This fixes a bug when types like QDBusObjectPath are sometimes ignored by this tool. Export QDBusMetaTypeId::init() for that reason. Add a regression test to tst_qdbuscpp2xml. Fixes: QTBUG-34550 Change-Id: I16faa79a794d09a26bad45e18730379681a20b50 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* Fix registration of QtDBus types' metatypesThiago Macieira2023-08-141-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | By actually registering them. Commit 850d850c5af8ff77a4b9d53457ec6b1ba6c20cb3 changed from qMetaTypeId<QDBusArgument>() to QMetaType::fromType<QDBusArgument>() and in Qt 6, fromType() does not register the type with the database. That means the lines became runtime no-ops at that time or during the QMetaType updates since 6.0. All they did was instantiate the C++ inline variable. The testing also detected we didn't register QList<QDBusVariant> as an alias for the "av" signature. I'm not entirely sure you're allowed to use this because QtDBus does not like re-registration of the built-in types, and "av" is already assigned to QVariantList. This is no trouble for the parser, anyway. Minor change to qdbuscpp2xml to allow reading from stdin, so we don't have to create temporary files. Pick-to: 6.5 6.6 Fixes: QTBUG-115964 Change-Id: I80612a7d275c41f1baf0fffd177a14925e7d23ac Reviewed-by: Ievgenii Meshcheriakov <[email protected]>
* qdbuscpp2xml: Support MEMBER field of Q_PROPERTYIevgenii Meshcheriakov2023-08-031-0/+2
| | | | | | | | | | | | | Emit properties with MEMBER field specified with 'readwrite' access. Previously only READ and WRITE filed where used for deriving the access value. Add a property using MEMBER to the test class used by tst_qdbuscpp2xml. Fixes: QTBUG-115631 Change-Id: I12351985a9fafd934ccc5e0b805077a9e44b6608 Reviewed-by: Thiago Macieira <[email protected]>
* Centralize copyright information for QtKai Köhne2023-03-201-1/+1
| | | | | | | | | Maintain one central place - .cmake.conf - for information about Qt's copyright. Pick-to: 6.2 6.5 Change-Id: Ibcbce4313eba9660d459061b0ad00307e267b8f7 Reviewed-by: Alexandru Croitor <[email protected]>
* Update Copyright year to 2023Kai Köhne2023-03-201-1/+1
| | | | | | Pick-to: 5.15 6.2 6.5 Change-Id: I8812bf2523ccb715407181aec6aebf2034c8ff84 Reviewed-by: Volker Hilsheimer <[email protected]>
* Port from container::count() and length() to size() - V5Marc Mutz2022-11-031-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8, but extended to handle typedefs and accesses through pointers, too: const std::string o = "object"; auto hasTypeIgnoringPointer = [](auto type) { return anyOf(hasType(type), hasType(pointsTo(type))); }; auto derivedFromAnyOfClasses = [&](ArrayRef<StringRef> classes) { auto exprOfDeclaredType = [&](auto decl) { return expr(hasTypeIgnoringPointer(hasUnqualifiedDesugaredType(recordType(hasDeclaration(decl))))).bind(o); }; return exprOfDeclaredType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes)))); }; auto renameMethod = [&] (ArrayRef<StringRef> classes, StringRef from, StringRef to) { return makeRule(cxxMemberCallExpr(on(derivedFromAnyOfClasses(classes)), callee(cxxMethodDecl(hasName(from), parameterCountIs(0)))), changeTo(cat(access(o, cat(to)), "()")), cat("use '", to, "' instead of '", from, "'")); }; renameMethod(<classes>, "count", "size"); renameMethod(<classes>, "length", "size"); except that the on() matcher has been replaced by one that doesn't ignoreParens(). a.k.a qt-port-to-std-compatible-api V5 with config Scope: 'Container'. Added two NOLINTNEXTLINEs in tst_qbitarray and tst_qcontiguouscache, to avoid porting calls that explicitly test count(). Change-Id: Icfb8808c2ff4a30187e9935a51cad26987451c22 Reviewed-by: Ivan Solovev <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-111-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, with manual unstaging of the actual definition and documentation in dist/, src/corelib/doc/ and src/corelib/global/. Task-number: QTBUG-99313 Change-Id: I4c7114444a325ad4e62d0fcbfd347d2bbfb21541 Reviewed-by: Ivan Solovev <[email protected]>
* Port from container.count()/length() to size()Marc Mutz2022-10-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is semantic patch using ClangTidyTransformator: auto QtContainerClass = 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'. <classes> are: // sequential: "QByteArray", "QList", "QQueue", "QStack", "QString", "QVarLengthArray", "QVector", // associative: "QHash", "QMultiHash", "QMap", "QMultiMap", "QSet", // Qt has no QMultiSet Change-Id: Ibe8837be96e8d30d1846881ecd65180c1bc459af Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Volker Hilsheimer <[email protected]>
* qdbuscpp2xml: Finish migration to qsizetypeMate Barany2022-07-071-6/+4
| | | | | | | | Inspect and change int types to qsizetypes where necessary. Fixes: QTBUG-103550 Change-Id: Ib92553ab214d06c8daecaa0c48ae2c2e4e32fdb7 Reviewed-by: Marc Mutz <[email protected]>
* Use SPDX license identifiersLucie Gérard2022-05-161-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. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
* Tools: replace remaining uses of QLatin1String with QLatin1StringViewSona Kurazyan2022-05-031-6/+6
| | | | | | | Task-number: QTBUG-98434 Change-Id: Ie136f600f823019c29461561d4e30be66a66e87b Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Marc Mutz <[email protected]>
* Tools: use _L1 for for creating Latin-1 string literalsSona Kurazyan2022-05-031-13/+13
| | | | | | | | | As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Task-number: QTBUG-98434 Change-Id: I6d4712a71b5ebf3f379f1f98ea476557bce963ef Reviewed-by: Marc Mutz <[email protected]>
* Tools: stop using QLatin1Char constructor for creating char literalsSona Kurazyan2022-05-021-4/+4
| | | | | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Change-Id: Ib9e01ede4e0d7869fc95414d36f37df4a30b16b4 Reviewed-by: Marc Mutz <[email protected]>
* Deprecate {QString, QByteArray}::count()Sona Kurazyan2022-03-121-1/+1
| | | | | | | | | | | | And remove their uses. [ChangeLog][QtCore][Deprecation Notice] Deprecated QString::count() and QByteArray::count() that take no parameters, to avoid confusion with the algorithm overloads of the same name. They can be replaced by size() or length() methods. Change-Id: I6541e3235ab58cf750d89568d66d3b1d9bbd4a04 Reviewed-by: Thiago Macieira <[email protected]>
* Update copyright year to 2022Kai Köhne2022-01-041-1/+1
| | | | | | | Pick-to: 5.15 6.2 6.3 Change-Id: If6f1d6f9f82a601f8e2b6d36650d6e737518aa60 Reviewed-by: Paul Wicking <[email protected]> Reviewed-by: Topi Reiniö <[email protected]>
* qdbuscpp2xml: add support for custom types with a new -t optionDavid Faure2021-08-251-8/+66
| | | | | | | | | | | | | | | | | qdbuscpp2xml can't know about custom types registered with qDBusRegisterMetaType<> in the server application whose header file it's parsing. So add support for custom types using a command line argument. For example: qdbuscpp2xml -t 'std::vector<Person>=a{ssss}' peopleserver.h which generates <arg name="people" type="a{ssss}" direction="in"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="std::vector&lt;Person&gt;"/> [ChangeLog][QtDBus][qdbuscpp2xml] Added a -t option to specify how to handle custom types. Change-Id: Ic0cad4f4eec8d5dfa48055c3a46cc772b1a60174 Reviewed-by: Thiago Macieira <[email protected]>
* Bump copyright year to 2021Kai Köhne2021-01-251-2/+2
| | | | | | Change-Id: I18a9c2de391ca51655148b2e3cc9abdfbb8ddbcf Reviewed-by: Tarja Sundqvist <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]>
* Use QMetaType instead of integer based type idsLars Knoll2020-09-231-8/+8
| | | | | | | | | Change the implementation of Qt DBus to use QMetaType directly instead of integer based type ids. Change-Id: I999023b58fa50dcc3504386467faf09874f7d2cf Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* Use QMetaType in QMetaCallEventLars Knoll2020-08-241-3/+3
| | | | | | | And don't use int based type mapping anymore. Change-Id: I456e76d1933ef646a7bd39ce565886b89e938a44 Reviewed-by: Thiago Macieira <[email protected]>
* Another round of 0->nullptr cleanupAllan Sandfeld Jensen2020-07-311-1/+1
| | | | | Change-Id: Ic8db7dc252f8fea46eb5a4f334726d6c7f4645a6 Reviewed-by: Sona Kurazyan <[email protected]>
* Use QList instead of QVector in qtbaseJarek Kobus2020-07-071-5/+4
| | | | | | | | Fixes all other QVector occurrences Task-number: QTBUG-84469 Change-Id: I5f9311298d341a9a3061a6a640539583d1618939 Reviewed-by: Friedemann Kleint <[email protected]>
* Use QList instead of QVector in other toolsJarek Kobus2020-06-251-5/+4
| | | | | | Task-number: QTBUG-84469 Change-Id: I90d0e2e723bb4d205d7bf333b21cdf583fdf4ea0 Reviewed-by: Lars Knoll <[email protected]>
* Replace most use of QVariant::type and occurrences of QVariant::TypeOlivier Goffart2020-01-231-3/+3
| | | | | | | | | | | | | | | | | | | | | I made a clazy automated check that replaced the use of QVariant::Type by the equivalent in QMetaType. This has been deprecated since Qt 5.0, but many uses were not yet removed. In addition, there was some manual changes to fix the compilation errors. Adapted the Private API of QDateTimeParser and QMimeDataPrivate and adjust QDateTimeEdit and QSpinBox. QVariant(QVariant::Invalid) in qstylesheet made no sense. But note that in QVariant::save, we actually wanted to use the non-user type. In the SQL module, many changes were actually reverted because the API still expects QVarient::Type. Change-Id: I98c368490e4ee465ed3a3b63bda8b8eaa50ea67e Reviewed-by: Lars Knoll <[email protected]>
* Bump copyright yearJani Heikkinen2020-01-091-2/+2
| | | | | | Change-Id: I9468ef21a2cf03cf07c38f012a2aa9bae6d02a03 Reviewed-by: Johanna Äijälä <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]>
* QRegExp include cleanupSamuel Gaist2019-04-191-1/+0
| | | | | | | | | | | | | | | | QRegExp includes can be found in several files where there's not even a use of the class. This patch aims to avoid needless includes as well as follow the "include only what you use" moto. This patch removes a QRegExp include from the QStringList header which means that there is likely going to be code breaking since QStringList is used in many places and would get QRegExp in. [ChangeLog][Potentially Source-Incompatible Changes] qstringlist.h no longer includes qregexp.h. Change-Id: I32847532f16e419d4cb735ddc11a26551127e923 Reviewed-by: Thiago Macieira <[email protected]>
* Bump copyright year to 2019Kai Koehne2018-12-181-1/+1
| | | | | | | | Task-number: QTBUG-72635 Change-Id: Idc9bd97fe873b332d7ff72cb44a00334a472404f Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Alex Blasche <[email protected]> Reviewed-by: Paul Wicking <[email protected]>
* qdbuscpp2xml: Don't silently ignore unregistered property typesLuca Weiss2018-11-121-1/+4
| | | | | Change-Id: Icf23804cc4992314785f07cdc6aaf76eeea56465 Reviewed-by: Thiago Macieira <[email protected]>
* Bump copyright year of code generated by dbus toolsAlex Blasche2018-09-031-1/+1
| | | | | | Change-Id: Ic5e2ecf672ea86e8ef70a9fa73c0535262d2e928 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Ulf Hermann <[email protected]>
* Bump copyright year of qdbuscpp2xml and qdbusxml2cpp to 2017Alex Blasche2017-07-141-1/+1
| | | | | Change-Id: I7be6f45d359db813b15a3754b3ed203cb829a3d0 Reviewed-by: Kai Koehne <[email protected]>
* Prefer rvalue version of toLocal8Bit()Anton Kudryavtsev2017-03-301-1/+1
| | | | | | | | ... to re-use existing buffers. Change-Id: I5907a2e29d7f7dac04df5bf50769b47131e175d8 Reviewed-by: Edward Welbourne <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* Use QString::asprintf(), QStringBuilder, and the multi-arg overload of ↵Alexander Volkov2017-01-121-9/+8
| | | | | | | | | | | | | QString::arg() ... instead of sequential .arg(const QString &) callings. It saves memory allocations and prevents unexpected results if replacing strings contain place markers. Found with clazy's qstring-arg check. Change-Id: I3912275a6e11c6fb7559ff5623f2e8cde9b7f07a Reviewed-by: Anton Kudryavtsev <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* Support C++17 fallthrough attributeAllan Sandfeld Jensen2016-08-191-4/+4
| | | | | | | | | Replaces our mix of comments for annotating intended absence of break in switches with the C++17 attribute [[fallthrough]], or its earlier a clang extension counterpart. Change-Id: I4b2d0b9b5e4425819c7f1bf01608093c536b6d14 Reviewed-by: Thiago Macieira <[email protected]>
* Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-111-0/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qfilesystemwatcher_win.cpp src/corelib/plugin/plugin.pri src/plugins/platforms/cocoa/qcocoaaccessibility.mm tests/auto/corelib/tools/qlocale/tst_qlocale.cpp Change-Id: Id6824631252609a75eff8b68792e4d10095c8fc1
| * Reduce allocations by using reserve()Sérgio Martins2016-02-071-0/+1
| | | | | | | | | | Change-Id: If34fa53402985f6b3c5e7217bce4a1177af835b6 Reviewed-by: Marc Mutz <[email protected]>
* | moc: replace inefficient QLists with QVectorsMarc Mutz2016-02-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These types are larger than a void*, so holding them in QLists is needlessly inefficient. Worse, the code could come to depend on the fragile property of (inefficient) QLists that references to elements therein never are invalidated. Fix by marking them movable, and holding them in a QVector instead. Change-Id: I42f494ed87854eadc33d78db4479203ff5e0370f Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Milian Wolff <[email protected]> Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-021-1/+1
|\| | | | | | | | | | | | | | | | | Conflicts: config.tests/unix/compile.test src/plugins/platforms/cocoa/qcocoahelpers.mm src/tools/qlalr/cppgenerator.cpp Change-Id: I0103ca076a9aca7118b2fd99f0fdaf81055998c3
| * Bump copyright year to 2016Kai Koehne2016-01-291-1/+1
| | | | | | | | | | | | | | | | | | | | Bump copyright year in tool output and user visible strings to 2016. Task-number: QTBUG-50578 Change-Id: I2f4aa9089c6672726f554cba7e6009b425d27683 Reviewed-by: Liang Qi <[email protected]> Reviewed-by: Topi Reiniö <[email protected]> Reviewed-by: Martin Smith <[email protected]>
* | qdbuscpp2xml: eradicate all Q_FOREACH loopsMarc Mutz2016-01-261-8/+9
| | | | | | | | | | | | | | ... replacing them with C++11 range-for loops. Change-Id: I0233bcf874cdadcd7461e11b89f752dabde086c0 Reviewed-by: Lars Knoll <[email protected]>
* | Updated license headersJani Heikkinen2016-01-211-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: I42a473ddc97101492a60b9287d90979d9eb35ae1 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Lars Knoll <[email protected]>
* | qdbuscpp2xml: Fixed wrong filename being reported in messagesSwen Kooij2016-01-161-1/+1
|/ | | | | | | | | | | | This caused the filename in messages to be one of the other arguments that were specified instead of the actual filename. Caused by the fact that mutations are possibly made to `args` in `parseCmdLine` and thus the amount of items in `args` does not always match the amount of items in `argv`. Change-Id: Ief3716dde39dfdc949a5192e7f83d93cf90130f0 Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* Update copyright headersJani Heikkinen2015-02-111-8/+8
| | | | | | | | | | | | | | | | | | 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. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <[email protected]>
* Bump copyright year to 2015Kai Koehne2015-01-151-2/+2
| | | | | | | | Bump copyright year in tool output and user visible strings to 2015. Change-Id: I9b29907fe3f555e78005cb296a49d92f601fb7ec Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Martin Smith <[email protected]>
* Check the Q_SCRIPTABLE tag of signals and slots as early as possible.Robert Griebl2014-11-041-0/+6
| | | | | | | | | This makes is possible to generate a valid D-Bus XML from a class that has e.g. internal slots with pointer parameters by explicitly marking all D-Bus exports with Q_SCRIPTABLE and running qdbuscpp2xml with the '-a' switch. Change-Id: Iab32a0a7f46f2516f6385808bbf35b26c7708b1a Reviewed-by: Thiago Macieira <[email protected]>
* Update license headers and add new license filesMatti Paaso2014-09-241-18/+10
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <[email protected]>
* Update copyright year in tools outputKai Koehne2014-03-311-2/+2
| | | | | | Change-Id: I9ee9604303b3cb29f89a4252df5af35e729f6249 Reviewed-by: Oswald Buddenhagen <[email protected]> Reviewed-by: Iikka Eklund <[email protected]>
* QDBus: improve error handling, to give the developer feedback.David Faure2013-07-011-4/+8
| | | | | | | | | | | | | For instance, exporting an object with a slot like QString complexMethod(const MyVariantMap& vars); (even with a simple typedef QVariantMap MyVariantMap) used to silently skip that method in the introspection. Now it outputs: generateInterfaceXml: Skipped method "complexMethod" : Invalid type in parameter list: MyVariantMap Change-Id: I7964cfb63e973257ce1abe47b9625e361b2ad23f Reviewed-by: Kevin Ottens <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* normalize #includesOswald Buddenhagen2013-03-141-5/+5
| | | | | | | we already have the syncqt'd include paths set, so use them. Change-Id: I9d0047a79b493dd8b65f0f5495f3592ce2e2fb1d Reviewed-by: Joerg Bornemann <[email protected]>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-2/+2
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <[email protected]>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-25/+25
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Sergio Ahumada <[email protected]>