Commit Graph

29 Commits

Author SHA1 Message Date
Anton Kudryavtsev a61dafa2f5 qmlimportscanner: use QStringLiteral more judiciously
Replace it with QL1S or with QL1C in QStringBuilder expressions

Change-Id: I894c546d2d010a713cc476d60b7966e77df996af
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-08-18 08:05:33 +00:00
Anton Kudryavtsev 829c8faee2 tools: use QStringRef more
Change-Id: I4fccbfb2b965daf3a31846d1d51d39eb74ad944d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-08-12 12:09:35 +00:00
J-P Nurmi 42fd8ec249 Fix qmlimportscanner to find Qt Quick Controls 2 styles
The styles are installed to eg. qml/QtQuick/Controls.2/Material.
That is, the version is in the parent module. See 3c5e438 for more
details.

Change-Id: Id5083c7934071666dd5e11511f16dea07d3104bf
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-05-02 16:05:27 +00:00
Liang Qi 20a51e87fd Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	.qmake.conf

Change-Id: I356ec83cf687bd2833f9a7c5e820d56b1efa8979
2016-02-12 10:53:43 +01:00
Anton Kudryavtsev 151fd89616 QuickTest, QmlImportScanner: replace QStringLiteral with QLatin1String
... in string comparisons. It's more efficient.

Change-Id: Ia157618cf870870f24c4a2962a385962da819275
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-02-10 11:17:14 +00:00
Liang Qi 1e421097f0 Merge remote-tracking branch 'origin/5.6' into dev
Change-Id: Iec1b2de53c275996364c4bab0123ccb3e6e9895e
2016-01-29 13:01:22 +01:00
Marco Benelli 187a5b0c6e qmlimportscanner: do not use local predicates.
Some (?) pre C++11 compilers are not able to resolve template arguments
for std::find_if when the predicates are local to the function.

Change-Id: I1e5c4adc3409bd32081ddedff158ab9dcc2eaa9a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-28 10:19:23 +00:00
Jani Heikkinen 38ec3bd755 Updated license headers
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>
2016-01-20 11:46:25 +00:00
Friedemann Kleint b35301f0b1 qmlimportscanner: Improve command line help.
Output example line containing the Qt import path ready for
copy & paste.

Task-number: QTBUG-48424
Change-Id: I44d0793ade4322d376ed2b72e5c3935b19ba2c7d
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2015-11-16 08:42:27 +00:00
Marco Benelli bb28b13d51 Skip designer-related directories while scanning imports.
The qtcreator's qmldesigner plugin contains some directories that are
not reacheable during the import scan, resulting in qmlplugindump
complaing for missing dependencies.
Since these components are not needed, let the scanner just ignore
them.

Change-Id: Icdf7c9e841cf5bcc1e737a0fc75a63b1e02f87f9
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-10-19 06:46:05 +00:00
Friedemann Kleint 16154fba86 Tools: Fix single-character string literals.
Use character literals where applicable.

Change-Id: I55679dcc13c4c79567712c0dfaaabc2b84fee010
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-10-13 13:40:44 +00:00
Frank Meerkoetter a450f2807d Remove unused QQmlPool
This code is no longer in use.

Change-Id: If0cb009ac6622ed36cba5886d6685d3f242c3c87
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-07-31 07:14:28 +00:00
Sérgio Martins 73b77bc512 Use by-ref in foreach when T is large or non-trivial
Change-Id: I79271fdc3fa064e362dfaa64ff11d8a4c6b7e8c3
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-07-18 19:41:11 +00:00
Lars Knoll 0a499043fb Get rid of qv4value_inl_p.h and replace it by qv4typedvalue_p.h
This is a cleaner separation and further reduces include dependencies
in the definitions of our basic data structured.

Change-Id: I18aa86cdea0c0dfbc16075d4d617af97e638811e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-04-24 15:20:43 +00:00
Jani Heikkinen c5796292ad Update copyright headers
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>
2015-02-12 10:28:11 +00:00
Simon Hausmann 9d7b27f5bf Clean up JS .import/.pragma directive scanning
There's a scanner in QQmlJS::Lexer::scanDirectives that can parse those, so
let's get rid of extra parser that operates on a string. Instead this way we
can do the scanning all in one shot, avoid detaching a copy of the source code
string and (most importantly) bring the parser closer to the copy in Qt
Creator, which uses the directives approach to extract imports and pragma.

Change-Id: Iff6eb8d91a45d8a70f383f953115692be48259de
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
2015-01-08 22:08:19 +01:00
Shawn Rutledge 3ec6520117 qmlimportscanner: parse "depends" lines in qmldir files
These lines specify additional hidden dependencies.  The first use case
is in QtQuick.Dialogs: DefaultFileDialog.qml uses FolderListModel, but
this file is not listed in the qmldir because the decision whether to
use it is made at runtime.  So QtQuick.Dialogs qmldir contains this:
depends Qt.labs.folderlistmodel 1.0

Task-number: QTBUG-41489
Change-Id: Ide4bca2ce2e342b95e9a87cc418d26f331372d12
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-10-01 14:40:52 +02:00
Fawzi Mohamed 26387cf498 qmlimportscanner: allow a qmlFile to come from stdin
Change-Id: I22b0e45a8aa25d232791cdbeca15b5bc7400ae7d
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-09-25 16:13:34 +02:00
Jani Heikkinen e7ceacda70 Update license headers and add new licenses
- 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>
2014-08-25 11:28:46 +02:00
Simon Hausmann 41f0925dc8 Fix parsing of JS imports from JS files
If a .js file had an import of another .js file itself, like so:

    .import "otherFile.js" as Blah

then the import scanner would keep the quotes and store

    "\"otherFile.js\""

in the JSON as opposed to

    "otherFile.js"

This is fixed by making use of the same code for extracting the .import
statements from JS files that is also used by the engine itself.

Additionally this fixes the use of comments in .import lines (and other
whitespace characters not producing tokens).

Change-Id: I4dd4a5217308f6fc93b6b148cd8e13392f97d2a6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-24 15:36:42 +02:00
Morten Johan Sørvig f7a8a41e48 Add support for scanning javascript files.
Javascript may contain ".import" pragmas/statements,
which should be treated in a similar way as qml file
imports.

Add findQmlImportsInJavascriptFile() which extracts and
parses the .import lines. Refactor findQmlImportsInFile()
to handle both .qml and .js and call out to the correct
parsing function.

Add "-jsFiles" for specifying javascript
files on the command line similar to "-qmlFiles".

Task-number: QTBUG-35349

Change-Id: I6b8e0cc254c1edcf16940bec5cfda7c2637f115e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-02-25 17:08:02 +01:00
Morten Johan Sørvig 2dc69a99f0 Improve qmlimportscanner.
Fix several qmlimportscanner defects:

- Expand qml file search to include subdirectories.
This applies to search paths specified with "-rootPath"

- Add "-qmlFiles" for specifying the file list directly

- Parse files with UTF8 BOMs correctly

- Don't set properties where the value is the empty string

Change-Id: I81a538d73487b49fb635c18ef4fe479748ba0bfc
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-11-12 13:12:54 +01:00
Morten Johan Sørvig de3c837dfa Fix the QML import search.
Match the algorithm used by QML, look for the most
specific version of an import first.

Change-Id: Ibf1370af227c8154f657cc2d8a1c1d1ae28d2f39
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-14 12:30:35 +02:00
Morten Johan Sørvig 9ca4c75da3 Make qmlimportscanner report plugin classnames.
Change-Id: Ifbe72e6dcc569c8cb311d46e4f265da348b353ea
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-14 12:30:28 +02:00
Friedemann Kleint c0b4884301 qmlimportscanner: Fix braces.
Change-Id: I1361bc1f10b04d0001a1d02b45033ca2c82f8105
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-28 18:50:11 +02:00
Friedemann Kleint f52b793fc2 qmlimportscanner: Use iostream for output consistently.
host-built tools should not use <QDebug>.

Change-Id: I2c69c79c138689d22f4979e268313fb461a8053a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-28 18:50:07 +02:00
Friedemann Kleint 9ecedb8766 qmlimportcanner: Compile with QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII.
Clean up single character string constants and string usage.

Change-Id: I242110d57beeb100155757bda170ade479fcb242
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-28 18:49:56 +02:00
Friedemann Kleint 36ab6e0160 qmlimportscanner: Print usage when no arguments are passed.
Change-Id: I2ba5e18fff635705b1f5e8e19c104ba078c8e3a1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-25 22:55:37 +02:00
Morten Johan Sørvig 68c75745f8 Add qmlimportscanner.
qmlimportscanner scans for import statements in qml
files and returns a JSON-formatted list of imports.
This is done recursively in order to get all dependencies.

Usage: "qmlimportscanner path/to/app/qml/"
		-importPath path/to/qtbase/qml

Change-Id: I0e99caaf4216058c52a4706f7fdbeaf1eba0bbc1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-23 06:49:44 +02:00