Skipping paths that ends with "private" is not enough.
Task-number: QTBUG-47027
Change-Id: I25af518b76f594c268db6b77dbafd343f2f57ee8
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Make sure any QQmlType stored in the meta type data
has a refcount of 1. This should now make it possible
to clean out unused types by iterating over the
list of types and removing those that have a refcount
of 1.
Some care is still needed for C++ registered types, that
will need to get one more refcount, so we don't accidentally
remove them.
Task-number: QTBUG-61536
Change-Id: Id2a18dae5ddcb815f34013f5fde1f05d2d9d0214
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
QQmlType is now refcounted, and we need to use it by
value, to control it's lifetime properly. This is
required, so we can clean up the QQmlMetaTypeData
cache on engine destruction and with trimComponentCache()
Task-number: QTBUG-61536
Change-Id: If86391c86ea20a646ded7c9925d8f743f628fb91
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Report to the user the stderr of qmlimportscanner, if needed.
Task-number: QTBUG-58930
Change-Id: Ib8ddf12cb3d18c936eb151f12991900a32175576
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Remove "qrc:/qt-project.org/imports" from the paths list passed to
qmlimportscanner.
qmlimportscanner will error out on a path that does not exist.
Since the internal qrc:/qt-project.org/imports path only exists if
the plugins are compiled in statically into qmlimportscanner, we
have to remove this path to stop it from erroring out.
Task-number: QTBUG-58930
Change-Id: I39525f2b6ff29c02b38f5f701342026dea871701
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Some modules (ie QtChart) require a QApplication instead of the
QGuiApplication that qmlplugindump use by default.
This option let the user specify if a QApplication is needed.
Task-number: QTBUG-58264
Change-Id: I10e68d0d3eab2afad315b57fef9ce92c42e70124
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Having only the possibility to redirect the stdout of
qmlplugindump to a file is both unconvenient and unreliable
since some plugins might write content (such as logs) to
stdout, which pollute the output.
Change-Id: I8b1d482d7674945e6145d59aea839c54600e7784
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Wrap all global variable in an anonymous namespace in order to avoid
compiler warnings on the uninizialized ones.
Change-Id: Ifabb790d2d76b6056d706580b9e4c0f12f5119f0
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Mark some local variables or parameters as const
to prevent detach()'ing.
Use qAsConst where is not possible mark as const.
Change-Id: I0a777c3bd855abd3bb1ad0907152360cf4a1050e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
The QGuiApplication documentation explicitly says that QT_QPA_PLATFORM
can be used to specify the QPA for every QGuiApplication. Unconditionally
overriding this value within the application is a unexpected behavior.
Task-number: QTBUG-54789
Change-Id: Ia7a61a0f2921ef8ec27fe630e8d307d20ba1eb37
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Fixes a regression introduced in 541eb6b704. There's no point in
setting AA_ShareOpenGLContexts for the minimal plugin.
Change-Id: Ibcc65ede41acf5a8cf22eacef4b94c20048a354a
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Add the option -noforceqtquick that prevent the inclusion of the
QtQuick dependency in the resulting qmltypes file.
Including the QtQuick dependency interfere with the generation of some
qmltypes, such that the one of QtQuick itself.
Change-Id: I63a44632b8dbabdd1ffecf16da050a9429e557da
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
WebEngineView requires a shared opengl context. The plugin checks for
this when initializing.
Change-Id: I686b9c22be95f7ef16ea68ea49b8f9aee47789ae
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
qmlplugindump used to skip directories called "Private". It seems that
some directory called "private" are added, notably the one in
QtGraphicalEffects. Such directories cause qmlplugindump to fail, so
the name check is now case-insensitive.
Change-Id: Ie564db7bf96d6596d5cd674adc125a9bcdcba7bb
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
QtCreator does not handle dependencies between Qml types defined in
different qmltypes files. Sometimes manual editing of qmltypes file is
needed to let QtCreator find the missing type information.
With the new -merge option it is possible to merge a qmltypes file to
the output of qmlplugindump. Dependencies are correctly merged but
components are simply added, so they could cause conflict.
Change-Id: I6569339e4f05d37ea63fa2173983b4d595ae0ad6
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
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: I04760a0801837cfc516d1c7c02d4f503f6bb70b6
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
qmlplugindump used to import QtQuick, therefore skipping all QtQuick
types when dumping. Now that it imports only Qt, it is no longer the
case, and all QtQuick types would be dumped in the module's qmltypes
file. It can be avoided by specifyng 'QtQuick' as dependency in qmldir
file or in a json file passed as -dependencies option. It seems however
that people are not used to that, so in order to restore the old
behavior, the QtQuick dependency is automatically added when the
dependency list is empty.
Change-Id: I5fb2e57893607a877d284767b3fd09159b45ff42
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
Qt.test.qtestroot is only provided by quick_test_main so
if we find any plugin that tries to inherit from TestCase.qml
qmlplugindump will fail trying to import this unexistant import
Change-Id: Idee881fa641267a17594dd3c92e929ca3473f3df
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Timo Jyrinki <timo.jyrinki@canonical.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
builtins.qmltypes used to contain also definitions that belong to
QtQml. This patch makes qmlplugindump dump only Qt built-ins when
called with the '-builtin' option, and makes dumping of QtQml work
correctly.
Change-Id: I123b9cae6f2557cf281f857df51fae095cbc25cc
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
This generates just noise in the diffs.
Change-Id: I09d1dbc6d8255a9cf5055abf96eb06ca78a80a94
Reviewed-by: Marco Benelli <marco.benelli@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
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>
- alloca() needs malloc.h
- crtdbg.h couldn't be found on MinGW
Change-Id: Ibbf91a58d39ef1e2572baae3c409393acf7aa5df
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix warnings when using MinGW:
main.cpp: In function 'int main(int, char**)':
main.cpp:734:55: warning: statement has no effect [-Wunused-value]
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG);
^
main.cpp:735:53: warning: statement has no effect [-Wunused-value]
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_DEBUG);
^
main.cpp:736:54: warning: statement has no effect [-Wunused-value]
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_DEBUG);
where _CrtSetReportMode() is an empty macro.
Change-Id: I644bc207b5a3df62d6390811f53b2c0948979d58
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
On windows the debug version of qmlplugindumper used to show a panel on
assert failure. Failure should be silent.
Done-with: Thomas Hartmann <thomas.hartmann@digia.com>
Task-number: QTCREATORBUG-12644
Change-Id: Ib5036754b37cdd5e3820e0cfd60b3ef7df3f1fb6
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This helps plugin objects to shut down cleanly
Change-Id: I167f63220a35a7428f50715a4cb9072320ef1c87
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
When hiding part of the hierarchy during the merging of composite
types properties/methods/signals that are hidden should not be dumped
twice.
Task-number: QTBUG-38354
Change-Id: I328cf25dd5a70e1c0fce017e8ae572e8a9e56245
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
the qmlengine defines isCreatable as "is creatable through the C++
interface", for the qmltypes and qml code model it makes sense to
define isCreatable as "can appear as component in QML"
Change-Id: Ib26cf25dd5a70e1c03ce017e8ae572e8a9e562c1
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
In this case the debug output is actually meant to be read by the user.
Logging it to some system facility, as on BlackBerry doesn't help. To
fix that a message handler that redirects all debug output to stderr
is installed.
Task-number: QTBUG-36378
Change-Id: I16dbca8bc4d07e0aabc2b41ce93b56bd679fa166
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
For errors in command line parameters qmplugindump uses cerr
but errors during plugin loading are logged using qWarning().
It would be better to log always to cerr in case of problem
because some platforms (BB10) have logging from Qt redirected.
Task-number: QTBUG-36378
Change-Id: I04506c2f12b87190966e66c482f4ac5aed44af05
Signed-off-by: Daniel Pesch <dpesch@blackberry.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
This patch implements a new function QQmlMetaType::qmlAllTypes() used
by qmlplugindump that returns list of all registered components. Previous
implementation used QQmlMetaType::qmlATypes() call that returned only
components with defined QML name.
Task-number: QTBUG-36199
Change-Id: I85acba61cfa511973a004934cf0650f38cc46ed9
Signed-off-by: Daniel Pesch <dpesch@blackberry.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Qmlplugindump tool does not generate information about singleton status
and creatability from QML for a component. This patch adds two new boolean
properties that contain this information. It is used by Momentics IDE for
providing better code validation and could be used by QtCreator in future
in similar way.
Task-number: QTBUG-36139
Change-Id: If85374a1854aaa0727670b27df735d481cab5337
Signed-off-by: Daniel Pesch <dpesch@blackberry.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
The full command was written in the generated file including
the full path to the qmlplugindump tool.
Now only the tool name without its full path will be
printed with the adjacent arguments.
Change-Id: I03aa7350d1cd6b96ce00341796f8944669989793
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
QT_QPA_PLATFORM is set to minimal by default unless
--defaultplatform is set when running the qmlplugindump tool.
This is for example useful for the QtQuick.Dialogs module.
Change-Id: I1194526ee0641d11802c4db20bd3043aebd1e261
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Since 56bbf3c2d5b31142e5a1b872a0118479edcf874b (qtbase)
So public signals must be dumped.
Change-Id: Ic7047660fbac40f78c7a205e760c059256c71d6f
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
The prototype name for the composite type is the first "default"
prototype found in the reachable types. If none is found then
the default value is QObject.
Change-Id: I40b4fefaab40e4c9f83d24c89bd026579be63e7b
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
This flag allows you to run qmlplugindump on plugins which cannot safely
create objects, such as plugins with unusual requirements or missing
essential dependencies.
Change-Id: Ifcc542b8dec5358fc8a76d78a2a272c9cbf5d78a
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
this will enable us to switch the default to nonrelocatable
Change-Id: Ic4bff6466ee2fb6d4d1dd89829034ad239422a7e
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Some people were confused about exportMetaObjectRevisions, and
the "all 0" as default was not expected.
Make it explicit so we might change the default in the future.
Change-Id: I1f208ba54e2b9aa1a5d46fb9971572467b69ab56
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
This doesn't actually result in putting any information about the
composite type into the output, though.
Change-Id: I160702578f0acd22eff98e8afa288b3c9fb20076
Reviewed-by: Alan Alpert <aalpert@rim.com>
Make sure that the minimal platform plugin is used by default.
Change-Id: I2362649dafaf823b00ab37519b516aef9ac3166b
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Change copyrights and license headers from Nokia to Digia
Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Qt.labs.particles 4.7 doesn't work since ages. Instead use
Qt.labs.folderlistmodel 2.0.
Change-Id: Ie11133adad88ac6120ab05aef9713f8e768f8bc8
Reviewed-by: Christian Kamm <kamm@incasoftware.de>
QMetaMethod::typeName() does now return "void" instead of an empty string (change 22d621dd).
Change-Id: I70affc450a7dd36b121cbcf580c0ca6fd5944f0b
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
Previously each singleton type was registered as an implicit separate
import. This commit changes the code so that these types are treated
just like any other type in the registration sense.
It also ensures that singleton types are instantiated per-engine.
Change-Id: I5c81c4ca5bf65210f7125d74a62a282a21838068
Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com>
This change renames the previous module api implementation
to singleton types.
When a singleton type is registered, a type name must be provided
that is used when accessing the API from QML. This makes the
implementation more consistent with the rest of QML.
Task-number: QTBUG-26549
Change-Id: Iab0bb1ccf516bd3ae20aee562a64d22976e0aecd
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
This prevents people who do not know about this tool from
accidentally changing these files by hand.
Change-Id: I8ff889b953f7c637f914f8b5b8b07a36f3cdf58f
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This operation should be a no-op anyway, since at this point in time,
the fromAscii and toAscii functions simply call their fromLatin1 and
toLatin1 counterparts.
Task-number: QTBUG-21872
Change-Id: I03084595ddc425a988374b8352fd23e9504ffba6
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
QMetaMethod::signature() has been renamed to methodSignature(), and
it now returns a QByteArray. Also, the new function
QMetaMethod::isValid() should be used to determine whether a method
is valid, instead of relying on signature() returning a 0 pointer.
Where it makes sense, the existing code that was using signature()
and parameterTypes() has been changed to use the new API
QMetaMethod::name(), parameterCount(), and parameterType(int).
Also, in the new meta-object revision (7), the QMetaObject stringdata
member is now of type QByteArrayData*. QFastMetaBuilder will be
ported to generate the new format, but for now it's sufficient to
reinterpret_cast the stringdata assignment to keep it compiling.
Change-Id: Ie340ef17bcebc3afa4aae6450dfe2d06e4d881a4
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
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>
QtQuick1 is now contained in a separate repository.
Task-number: QTBUG-23737
Change-Id: I09eae67af5693a22b896b916f816f73ccc3a89b1
Reviewed-by: Martin Jones <martin.jones@nokia.com>
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.
Change-Id: If39bd256b0fa85eba17ea30f8ab87ea27d758908
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
This change moves the QtQuick 2 types and C++ API (including
SceneGraph) to a new module (AKA library), QtQuick.
99% of this change is moving files from src/declarative to
src/quick, and from tests/auto/declarative to
tests/auto/qtquick2.
The loading of QtQuick 2 ("import QtQuick 2.0") is now delegated to
a plugin, src/imports/qtquick2, just like it's done for QtQuick 1.
All tools, examples, and tests that use QtQuick C++ API have gotten
"QT += quick" or "QT += quick-private" added to their .pro file.
A few additional internal QtDeclarative classes had to be exported
(via Q_DECLARATIVE_PRIVATE_EXPORT) since they're needed by the
QtQuick 2 implementation.
The old header locations (e.g. QtDeclarative/qquickitem.h) will
still be supported for some time, but will produce compile-time
warnings. (To avoid the QtQuick implementation using the
compatibility headers (since QtDeclarative's includepath comes
first), a few include statements were modified, e.g. from
"#include <qsgnode.h>" to "#include <QtQuick/qsgnode.h>".)
There's a change in qtbase that automatically adds QtQuick to the
module list if QtDeclarative is used. Together with the compatibility
headers, this should help reduce the migration pain for existing
projects.
In theory, simply getting an existing QtDeclarative-based project
to compile and link shouldn't require any changes for now -- but
porting to the new scheme is of course recommended, and will
eventually become mandatory.
Task-number: QTBUG-22889
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Change-Id: Ia52be9373172ba2f37e7623231ecb060316c96a7
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
The QSG (SceneGraph) prefix is too generic for
Qt Quick(2)-specific classes.
All the classes and files in the declarative/items
directory have been renamed.
In particular, for classes that are currently public,
the renaming is as follows:
QSGView --> QQuickView
QSGCanvas --> QQuickCanvas
QSGItem --> QQuickItem
QSGPaintedItem --> QQuickPaintedItem
The header files have been renamed accordingly
(e.g. qsgview.h --> qquickview.h).
Change-Id: Iac937fff81db20bb639486a793c3aeb5230b038c
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>