Commit Graph

172 Commits

Author SHA1 Message Date
Fabian Kosmale 82971e75b8 Add missing includes
...in preparation of trimming down includes in QQuickItem.
As a drive-by, remove the superfluous qqml.h include from
quick/items/qquicktextutil_p.h.

Change-Id: I7ee0f459bcbfdfe07314d1f63433aaa8639870ac
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2024-10-24 14:19:23 +02:00
Ulf Hermann e86a91dfd5 QtQml: Store singleton typename as UTF-8 QByteArray
We rarely want to read it as QString, and we almost always set it from
UTF-8 data.

Change-Id: I389e9a6de140d8adc09ccc3350685b2d47e03eb8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-08-30 14:18:17 +02:00
Ulf Hermann 4cdf0643b4 QtQml: Key singletons by singleton instance info
We can keep the singleton instance info the same across multiple types
created in a single registration call. The result is that we only get
one singleton instance per engine, rather than separate ones for each
version. If you invoke qmlRegisterSingletonType separately, you still
get separate instances, though.

[ChangeLog][QtQml][Important Behavior Changes] The QML engine will now
refrain from creating separate instances of a singleton type for each
version it is registered for if the singleton is registered
declaratively (using QML_SINGLETON). The behavior of procedurally
registered singletons (using the qmlRegisterSingletonType() family of
functions) remains the same: For each registration call, a separate
singleton instance is created.

Task-number: QTBUG-116432
Change-Id: Ic8a5de0f88ef530670cfd81b192201a8ab49b2f7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-08-30 14:18:17 +02:00
Sami Shalayel a1ce0596e5 Replace signal name manipulations with QQmlSignalNames
Remove custom implementations found in qqmljs* and use the
static helper methods from qqmlsignalnames_p.h instead. This sometimes
requires to move some code around to avoid bugs with property that do
not have letters in their name.
Add a warning in the JS implementation of the SignalSpy.qml that the
used heuristic might fail on certain signal names.
Add tests in in tst_qqmllanguage to see if the property change handlers
work correctly for weird names.

Change-Id: I4dc73c34df7f77f529511fa04ab5fcc5385b59fc
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-08-15 12:13:31 +00:00
Ulf Hermann d158c61cef Improve string handling in qmltyperegistrar
Use QLatin1StringView for all the constants and define them in one
place. Parse the Json into Cbor in order to be able to retrieve UTF-8
data from it. Avoid conversion to QString wherever possible.

We could further improve QQmlJSStreamWriter to avoid temporary
allocations. Add some TODOs to this effect.

This change shows some API gaps in our various string view classes. To
work around them, we need our own QAnyStringViewUtils.

Change-Id: I41054a5057102d29e1db9e66a5998569d97382f9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
2023-06-30 10:47:17 +02:00
Ulf Hermann a933e28bd6 qmlplugindump: Don't crash on value types with extensions
We have some internal value types without their own base metaobjects,
but with extensions. qmlplugindump is not designed to handle those. Skip
them.

Pick-to: 6.5
Fixes: QTBUG-109562
Change-Id: I3c4925790ac905077e6ea07724c898b32dd6e59a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-01-04 08:55:55 +01:00
Marc Mutz 5eb52b7255 Port from container::count() and length() to size() - V5
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 on() was replaced with a matcher that doesn't ignoreParens().

a.k.a qt-port-to-std-compatible-api V5 with config Scope: 'Container'.

Change-Id: I58e1b41b91c34d2e860dbb5847b3752edbfc6fc9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2022-10-13 00:18:35 +02:00
Ulf Hermann 5533f63312 qmlplugindump: Warn if we can't change the directory
It's unclear why we even have to change to the import path, but given
the brittle nature of qmlplugindump, let's keep it that way and simply
output a message if it fails. The static analyzer complains about a
missing return value check.

Coverity-Id: 401048
Change-Id: I72e6258dceb7df76a87584b6fe4f5236d754f7cc
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-10-11 15:01:13 +02:00
Marc Mutz c2d490a238 Port from qAsConst() to std::as_const()
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>
2022-10-07 23:38:56 +02:00
Marc Mutz 958cd3ee10 Port from container::count() and length() to size()
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>
2022-10-07 23:38:48 +02:00
Sami Shalayel aba13583ac qmltyperegistrar: Extract into own library
Split qmltyperegistrar in two parts: the tool (commandline parsing etc)
and the lib (that does the actual qmltyperegistration generation).
The tool lives at tools/qmltyperegistrar and the lib lives in
src/qmltyperegistrar.
This would allow to test qmltyperegistrar and is a first step into adding
some structure to qmltyperegistrar.

Moves the qqmljsstreamwriter from QmlCompiler to QmlTypeRegistrar.
Also, moves the qmltypes.prf from the lib to the tool, so it can still
be used from qmake projects!

Fixes: QTBUG-103862
Change-Id: I8627d1181db139d043228a802f047a35bff63bb5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-01 13:55:42 +02:00
Lucie Gérard 0dc4fd240a Use SPDX license identifiers
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>
2022-06-11 08:05:15 +02:00
Ulf Hermann 5fa9093191 qml{plugindump|importscanner}: Don't mix std::cerr and std::wcerr
Apparently that causes output to be suppressed.

Pick-to: 6.3 6.2 5.15
Fixes: QTBUG-99400
Change-Id: I4ac6a66a10c7d2c27dfc1efa6d52afa60bdc58d6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-01-06 16:54:14 +01:00
Fabian Kosmale 8d95d5f10a Fix spelling mistakes in declarative
Addressses reported in tools and libraries of qtdeclarative (including
qqc2).

Task-number: QTBUG-97092
Change-Id: Ice5bcdd4e4f20a28716a1e339bb0f033b3e5a7f2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-10-05 17:30:33 +02:00
Fabian Kosmale a4ba251179 Remove QQmlMetaType::isQObject
All callers do have a metatype which they can query instead.

Task-number: QTBUG-82931
Change-Id: I2ff514354a43d677da963d4239333fc66a42df59
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-03-05 15:54:57 +01:00
Ulf Hermann 953ea29328 Deprecate qmlplugindump
You should use qmltyperegistrar these days.

[ChangeLog][QML][Important Behavior Changes] qmlplugindump is
deprecated. Instead of using qmlplugindump to generate qmltypes files by
loading and analyzing the pre-built plugins, you should declare your QML
types using QML_ELEMENT and friends. Then you can automatically generate
the qmltypes files at compile time using qmltyperegistrar.

Fixes: QTBUG-91089
Change-Id: Iebd1b71a8e36c311d1590cb10128f9fc6d5e318c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-02-12 11:30:43 +01:00
Maximilian Goldstein 40eaa9509b qmlplugindump: Fix overload ambiguity
Fixes: QTBUG-89955
Pick-to: 6.1 6.0 5.15
Change-Id: I89ce8a146c0ce07c8e308783f79677575458c71c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-02-08 14:54:13 +01:00
Ulf Hermann 843be43f18 Merge the QtTest and Qt.test.qtestroot QML modules
There is no point in having them separate and this way the plugin can be
optional.

Fixes: QTBUG-89804
Change-Id: Ic7de35f6ee7abde4840841e17d21c2b709f6db7d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2021-01-12 20:58:41 +01:00
David Skoland 27bd9cab73 Standardize QJsonArray iteration
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>
2020-10-28 14:44:47 +01:00
Ulf Hermann 31302761f0 QmlCompiler: Rename QmlStreamWriter
The names should start with a common prefix.

Change-Id: Ib2cc247d459d78de5f0a8ea0be73b89429154475
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-10-05 14:58:58 +02:00
Ulf Hermann 767dd738d3 Long live libQtQmlCompiler!
Move all the code from tools/shared into src/qmlcompiler and build a
static library from it so that we can re-use it in external tools.

Change-Id: I7c8d8e59063dc7c711f4072f103a01095e6f5997
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-10-05 14:58:32 +02:00
Ulf Hermann e52e7ad76e qmlplugindump: Fix handling of dependencies
Tolerate dependencies without version and don't write them into the
output anymore. No one should read them as the same info has to be
available from the associated qmldir files.

Change-Id: I5e4cd93c83cb5e874a8a6e1467461d081b1a089c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-07-08 07:46:39 +00:00
Ulf Hermann 19ea4e630c Clean up registration of QEasingCurve
We don't need to register the Type enum for both QtQml and QtQuick.
QtQml is enough. Removing this makes the whole manual value type
registration obsolete. Furthermore, we want QEasingCurve as QML_FOREIGN
as we have several classes with properties of that type. To keep it nice
and tidy, we make the uppercase-named enum holder class a separate type.

Unfortunately, the Type enums differ in one entry:
QEasingCurve::BezierSpline is called Easing.Bezier in QML. Therefore, we
need to keep the custom enum around. We can change all users in
qtdeclarative to use the name from QEasingCurve, though.

Change-Id: Ibbc78d8bbf8938e2a8722f8c09833a0c73394c3d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-05-19 08:36:04 +02:00
Ulf Hermann 789929f939 Use QTypeRevision for all versions and revisions
In many places we carry major and minor versions or revisions that are
loosely coupled to minor versions. As the Qt minor version resets now,
we need to handle these things more systematically. In particular, we
need to add a "major" part to revisions.

QTypeRevision can express the current major/minor pairs more efficiently
and can also be used to add a major version to revisions. This change
does not change the semantics, yet, but only replaces the types.

Change-Id: Ie58ba8114d7e4c6427f0f28716deee71995c0d24
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-02-03 15:22:12 +01:00
Olivier Goffart 82030ac616 Adapt to the removal of QObject::staticQtMetaObject
Qt::staticMetaObject should be used instead

Change-Id: I1e02884f0b1f07e9c51d065f11bdc51c793b7173
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-14 14:53:56 +01:00
Ulf Hermann e9ae201497 qmlplugindump: Fix prototype and name for composite types
Before we would always merge everything up to QObject. That would
duplicate entries between types that inherit from the same base class.

Also, when the composite type doesn't specify a module (because we just
created a component from a plain QML file), use the module URI from our
version info. As we're dumping the component we can assume it belongs to
the module we're dumping.

Change-Id: Icf9a58cfe1165f557ebbf7309251e98a0782dc33
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-10-15 13:20:11 +02:00
Ulf Hermann 8da8d51939 qmlplugindump: Drop defaultReachableNames
They are unused.

Change-Id: Id49720bead07e353e448d92a53c2c6aabe265d3a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-10-12 08:18:33 +02:00
Ulf Hermann dae5bc672e qmlplugindump: Consistently sort composite types
Previously the sorting depended on qHash(QQmlType), which hashes a
pointer to QQmlTypePrivate. That was not very useful.

Also, the defaultCompositeTypes were only populated when dumping
builtins, and only used when dumping regular types. Therefore, whenever
they were used, they were empty. We don't have to bother with that.

Change-Id: Ibfbfc7e14bee900d617bab58cbe39d05f5fe91c3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-10-02 11:20:05 +02:00
Ulf Hermann 8af52c803b Loosen qmlplugindump's checking of URI and major version
If not given a "--strict" argument, qmlplugindump will ignore the given
major version and only check the URI as prefix, not as exact match. This
is in line with what qmlplugindump did in version 5.13 and before.

Fixes: QTBUG-78745
Change-Id: Ib2803d47e6cb60c797fec8dfaa628278307d4cd4
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-09-26 13:03:29 +02:00
Fabian Kosmale c734eb3a8b qmlplugindump: fix prototypeNameForComposite
We do not put the objects we encounter in defaultReachaleNames. Thus,
the check in prototypeNameForComposite will fail most of the time.
Instead, we now use the same check as in collectReachableMetaObjects
(that is, does the type belong to the module).

Then, we once again only collect the metaobjects belonging to the module
in objectsToMerge, and only dump the relevant properties from there.

Fixes: QTBUG-78744
Change-Id: I78cae1e56b6f59e277198f9bcd0d826c4e0978a7
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-09-25 15:20:48 +02:00
Fabian Kosmale c763c5bbe6 qmlplugindump: Handle types reexported by QtQuick
Now that our own types are not registered with qmlRegisterType<T>() anymore,
we can use QQmlType::module to decide whether a type should be included
in the qmltypes file.

We include types with no module, to support existing user code which
still calls qmlRegisterType().

Change-Id: Iee0a132bf5b3ddcdfc222ab4b2d37a1f05b1851d
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-08-22 16:13:35 +02:00
Qt Forward Merge Bot 07205972ca Merge remote-tracking branch 'origin/5.13' into dev
Conflicts:
	.qmake.conf

Change-Id: I20ad6f8a260f387a3b73566a32c35a5772b401a5
2019-07-04 13:32:18 +02:00
Qt Forward Merge Bot 97aa001da9 Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	.qmake.conf

Change-Id: Icd05d016de5b4cf9af5234cb47b5c3fd0f6a053e
2019-07-03 06:11:21 +00:00
Ulf Hermann 659b575d19 qmlplugindump: dump enums also for composite types
Change-Id: I2745d3df4fca77483313c70e5433339c444c7fd4
Fixes: QTBUG-76627
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2019-07-01 11:54:23 +02:00
Richard Weickelt 4d09813242 Move creation and management of singletons to QQmlEnginePrivate
Singleton object instances were previously managed by
QQmlType::SingletonInstanceInfo and kept in a shared storage. This caused
concurrency problems when instantiating singleton instances from different
QML engines in different threads.

This patch moves the singleton house-keeping infrastructure to
QQmlEnginePrivate and makes SingletonInstanceInfo immutable.
Singleton objects are stored in a QHash with QQmlType as the key because
the qml type id might be 0 for composite singletons. The public API of
QQmlType is extended to provide more information about singleton types so that
access to SingletonInstanceInfo is not needed.

All internal accesses of singleton objects must now take the same code path via
QQmlEnginePrivate::singletonInstance<T>() which simplifies overall usage of
singletons and scatters less implementation details throughout the code base.

Task-number: QTBUG-75007
Change-Id: I13c5fd21cac2eb7291f2cbcf2c2b504f0f51a07c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-04-24 08:43:00 +00:00
Qt Forward Merge Bot 76be4abbbc Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/qml/compiler/qv4codegen.cpp
        src/qml/animations/qsequentialanimationgroupjob.cpp

Change-Id: I8b76e509fd7c8599d4cef25181d790ee28edab54
2019-03-13 10:10:09 +01:00
Kai Koehne c911349b8b Fix re-dumping of composite types
Just like with 'normal' types, we don't want to include composite types
that were actually part of depending imports. So we need to remove them
from the list.

This fixes an issue with QtQuick.Controls style plugins, were so
far types from QtQuick.Controls 2 imports were re-dumped.

Change-Id: Ib099ae9cfba35218cab852d4d260369c2a652727
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-03-06 12:37:41 +00:00
Kai Koehne 073977a7a1 qmlplugindump: Make compositeTypes non-static
Change-Id: Ia4f35781ed96a347464b5e423bd7446f5a7f6752
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-03-04 13:41:19 +00:00
Sergio Martins 7e6ede9d5d Fix warnings about unused Qt containers
Fixes -Wclazy-unused-non-trivial warnings, in preparation for using
gcc/clang's warn_unused attribute in all containers.

Maintainers please check if some unused variable isn't hidding an
actual bug.

Change-Id: I83c5a11aa2328db3dce4c6c402295d86ef297c83
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-30 10:06:55 +00:00
Qt Forward Merge Bot 1a0b06bca7 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I7a2b9bdb69512b2d52050d829b1b65f4fcd9d99d
2018-11-01 01:00:14 +01:00
Liang Qi 2609429d7a Merge remote-tracking branch 'origin/5.11' into 5.12
Conflicts:
	src/imports/settings/qqmlsettings.cpp
	src/quick/items/qquickwindow.cpp
	tools/qmlplugindump/main.cpp

Change-Id: I96fedbc773a110374baed79a0b7de92d65df0ed6
2018-10-29 08:10:45 +01:00
Kai Koehne 53481058c5 qmlplugindump: Hardcode QtQml and QtQuick import to 2.0
Change 8725f9873d fixed qmlplugindump to always use the current
Qt minor version for the Qt Quick and Qt Qml dependencies.

Anyhow, this is unnecessary; for the dependencies resolution only the
major type is important. Hard-coding the latest import might lead to
people unnecessarily updating the plugins.qmltypes.

Change-Id: Icc969517f268b775492f2bcc901827de64123bae
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-10-17 12:43:26 +00:00
Kai Koehne 7ca32bc41c qmlplugindump: Remove sigsegv handler
It's not safe to use printf and memory allocations
in a signal handler.

Task-number: QTBUG-70460
Change-Id: I2a4caf302e17992471575bd89faa505a8db4a7e3
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-10-11 08:32:16 +00:00
Kai Koehne b7f5d34602 qmlplugindump: Properly handle extension types
Extension classes do augment the primary C++ class with additional
properties that should be part of the QML type. Anyhow, they should
not be visible in the API.

The old logic tried to emulate this by making the extension
class the actual C++ type, and 'inheriting' from the normal
class by setting it in the prototype. Anyhow, this failed for
e.g. Qt3D, where there are numerous types sharing the same
extension class.

Instead, this patch fixes the issue
a) hiding the extension class metainformation itself, and
b) printing properties of the extension class as part of the
   main type.

In the QMetaObject collection phase, we now traverse the class
hierarchy using QQmlType::baseMetaObject instead of
QQmlType::metaObject.

In the generation phase, we explicitly resolve the extended type,
and dump additional properties and "DefaultProperty" information
into the main type description.

Note that the ExtendedType sets the DefaultProperty independent
of the version. Changing this would require either revisioning
the defaultProperty, or (again) splitting up the types, which
however brings other problems.

Task-number: QTBUG-70294
Change-Id: I324469152398a605fae9e5a35b619845444ac4e8
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-10-09 07:50:37 +00:00
Kai Koehne c481ce0789 qmlplugindump: Fix calling of qmlimportscanner on Windows
Change-Id: I16618f0858b3fa878b4255147291c011efdacfc8
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-10-09 07:50:25 +00:00
Kai Koehne f24b3dacd0 qmlplugindump: Mark qsigSegvHandler with Q_NORETURN
Change-Id: I4b25bbe4f777f524762e6f3f15df9fc358a46da6
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-09-24 06:37:07 +00:00
Kai Koehne a836aee75c qmlplugindump: Add spaces to stderr output
Change-Id: Ib24b06a3c5dcdf99306fd4ecdf79e1846e492c9b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-09-24 06:36:54 +00:00
Kai Koehne 638f80c317 qmlplugindump: Remove path for -dependencies argument
Do not print the full path passed to -dependencies in the file header.
This avoids local paths to show up in the plugin.qmltypes file, and
therefore in the Qt checkout.

Task-number: QTBUG-70264
Change-Id: I7870d7d4e30e57684c62f4e353a6bf6d72dc5faf
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-09-06 12:20:42 +00:00
Kai Koehne 8725f9873d qmlplugindump: Automatically use most up to date QtQuick version
QtQuick / QML minor version is nowadays the same as the Qt minor
version.

Change-Id: I4d7ef0b101320ee2179746c95093b62e063adba2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-08-30 13:42:37 +00:00
Shawn Rutledge 499ec43937 use nullptr consistently (clang-tidy)
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>
2018-02-26 07:13:18 +00:00