aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlmoduleplugin
Commit message (Collapse)AuthorAgeFilesLines
* Remove the qmake project filesFabian Kosmale2021-01-1524-320/+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>
* CMake: Regenerate projects to use new qt_internal_ APIAlexandru Croitor2020-10-0646-56/+56
| | | | | | | | Modify special case locations to use the new API as well. Task-number: QTBUG-86815 Change-Id: I3b964e3baf0cc7040830156dac30358ea1152801 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Fix tst_qqmlmoduleplugin on macFawzi Mohamed2020-08-111-1/+8
| | | | | | | | | * warn and assume case unsensitivity if pathconf fails (on FAT32 for example) * adjust library name for debug compilation Change-Id: I2ec45d5da35974b61c6e316738a59f2962532aed Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix string-bytearray mistake in tst_qqmlmodulepluginLaszlo Agocs2020-06-291-1/+1
| | | | | | | | Was causing an error with the latest qtbase. Switch to QByteArrayLiteral. Change-Id: I2370ccca5ac245a7d6678cc6888217d4757f562d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Fix tst_qqmlmoduleplugin for MinGWCristian Adam2020-06-245-0/+6
| | | | | | | | | | | | | Some of the pro files didn't have the CONFIG += plugin line, which resulted in pro2cmake generating shared libraries for the respective plugins. The shared libraries had the "lib" prefix on MinGW, which caused the plugin loading mechanism to fail. Task-number: QTBUG-84886 Change-Id: I240967d918db13be45cf9b79bfcc989e9b826937 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Drop the "plugin cannot be loaded" extension to error messagesUlf Hermann2020-06-171-4/+4
| | | | | | | | This message adds very little extra value, and it complicates the tests that check for specific errors. Change-Id: I58553a8cbc56c3333c8e9815518cca5fa01fdde1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Allow QML plugins to be optionalUlf Hermann2020-06-099-5/+127
| | | | | | | | | | | If a plugin does nothing but load the library that provides the types, we can skip the plugin loading by linking the library directly. State that in the qmldir file, and evaluate it when loading the module. Task-number: QTBUG-84639 Change-Id: I2097237866a50f66c55e4653ad119fe10e18a893 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Regenerate qtdeclarative/testsAlexandru Croitor2020-05-292-10/+10
| | | | | | | | | | | | | Includes: - new api calls - some new dependencies - some TARGET_DESCRIPTION - some additional tool directory exclusion when cross-compiling (qmlplugindump) - some missing add_subdirectory calls Change-Id: Iea43e45b94f37367ffc1d8dd6ce0ff1021a31b1a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Update Apple platform defines after rename in qtbaseTor Arne Vestbø2020-03-172-4/+4
| | | | | Change-Id: Ia0a075e3199eab735f9b289873beeb8730ebc47e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: Regenerate and adapt to merge from devwip/cmakeAlexandru Croitor2020-03-122-10/+4
| | | | | | Change-Id: If8daa6152a563d4309d7342414780ef75b9f5589 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
* Regenerate qtdeclarativeAlexandru Croitor2020-02-1242-205/+150
| | | | | | | Change-Id: I48d7fd306f3d1b161a8e73029282ee591b1ef612 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* Fix qqmlmoduleplugin testLeander Beernaert2020-01-313-33/+69
| | | | | Change-Id: I87354d4b8f8fc1acfe933640f5b48a4673a0dbd9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Regenerate all projects with new CMake API versionAlexandru Croitor2019-11-1540-40/+40
| | | | | | Change-Id: Ie0db35f674137c229eaf049616f38f8e818f7092 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Regenerate remaining tests to be in syncAlexandru Croitor2019-11-1540-180/+164
| | | | | | Change-Id: I200c8f58ad13bc1bc78409a3ce49348584ba5b51 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2019-10-1410-4/+125
|\ | | | | | | | | | | | | Removed dependencies.yaml because we don't use it yet in wip/cmake. Fixed conflict in qmlcachegen.cpp. Change-Id: Ie1060c737bee1daa85779903598e5b6d5020d922
| * Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-10-092-3/+3
| |\ | | | | | | | | | Change-Id: I68014bc552793b6dea930744325876a8863aaef3
| | * Use qmlProtectModule to protect a module from further modificationUlf Hermann2019-10-082-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't need two mechanisms to do essentially the same thing. QQmlTypeLoader::Blob::addImport() had an "optimization" to never check for qmldir files of locked imports. This meant the first time you imported a module with a plugin that locked the module you could use the qmldir file to load additional .qml files afterwards. The second time you imported the same thing, you couldn't. As this is not a great example of consistent behavior, we drop this optimization and always allow the qmldir files of plugins that lock the module to specify additional QML files. As a side effect of this, additional plugins listed in a qmldir file can also now be loaded after the module has been locked by some other means. However, any qmlRegisterFooBar() called from the module will be prevented. Change-Id: Idabb2bd5f75fc85b62f42625173672b4ae84382e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | Merge remote-tracking branch 'origin/5.15' into devLiang Qi2019-10-072-4/+5
| |\| | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp Change-Id: Id2e81000bcbd4de18fe22b085fdf5eed42c02516
| | * tst_qqmlmoduleplugin: avoid setContextPropertyFabian Kosmale2019-10-072-4/+5
| | | | | | | | | | | | | | | Change-Id: I5bebe3b50afc1dba39b73bd54679ef91b2a9ba8d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | Merge remote-tracking branch 'origin/wip/qt6' into devSimon Hausmann2019-09-193-2/+23
| |\ \ | | |/ | |/| | | | Change-Id: I10c4b7fcfa0397d999d45e310c2f8f051d57d4d2
| * | Also check the non-file-imported type on QQmlMetaType::typeForUrlMichael Brasser2019-09-099-1/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no reason why we wouldn't want to find those. Failure to do so leads to duplicate creation of singleton objects. Fixes: QTBUG-76514 Change-Id: If2fdfbd933229518136ae0d19474bbaebfbb8cff Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | | Add QtDeclarative Test CoverageLeander Beernaert2019-08-1442-0/+1353
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All tests compile and run on a developer build. These tests are failing: tst_qqmlsqldatabase Fails due to missing sql driver tst_qqmlsqldatabase Fails in wip/qt6 tst_ququicklayouts Fails in wip/qt6 tst_flickableinterop Fails in wip/qt6 tst_qquickpinchandler Fails in wip/qt6 tst_qquickflickable Fails in wip/qt6 tst_qquickgridview Fails in wip/qt6 tst_qquickimage Fails due to missing jpeg plugin tst_qquicklistview Fails in wip/qt6 tst_qquicktext Fails in wip/qt6 tst_qquickcanvasitem Fails in wip/qt6 tst_scenegraph Fails due to missing jpeg plugin tst_TestFiltering Fails in wip/qt6 Change-Id: I4b9d69c118e23c095cb72ad5a67653fc30943bb1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge remote-tracking branch 'origin/dev' into wip/qt6Simon Hausmann2019-07-121-1/+1
|\| | | | | | | Change-Id: I4476733af61fcf3a2af1d121a4585c3fae1c240e
| * Fix some compiler warnings in testsFriedemann Kleint2019-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | - Signedness of integer comparison - Unused parameters and variables - Ignored return values of QTest::qWaitForWindowExposed() (nodiscard) - float to int conversions Change-Id: Ibece620d3c980a5af3b7717486c841d8072ed8af Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix QStaticPlugin Qt6 usage in testAlexandru Croitor2019-07-083-2/+23
|/ | | | | | | Also added QtQml import for Component.onCompleted. Change-Id: Ic54a7827c82b8dfd7a1b2f36af4d944bae54bdec Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make the shared test code independent of QtQmlUlf Hermann2018-04-241-2/+26
| | | | | | | | | This enables us to drop the QML dependency from a number of tests. This is desirable because we want to test that we didn't do any incompatible changes to the debug framework. Change-Id: I937dd45d3079eac15c200c9d68bb4c911f61afc0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* use nullptr consistently (clang-tidy)Shawn Rutledge2018-02-2618-30/+30
| | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/5.10' into 5.11Liang Qi2018-02-124-0/+131
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/imports/shapes/qquickshape.cpp src/imports/shapes/qquickshape_p_p.h src/qml/compiler/qqmlpropertycachecreator_p.h src/qml/jsruntime/qv4value_p.h src/quick/items/qquickloader_p.h tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp tools/qmlprofiler/qmlprofilerapplication.cpp Change-Id: Iafc66ae84bf78630ed72a986acb678e9d19e3a69
| * Fix dead lock / race in QML type loader when importing pluginsSimon Hausmann2018-02-024-0/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When importing modules - in the QML loader thread - with plugins we keep globally track of the Qt plugins that we have loaded that contain QML modules, to ensure that we don't call the engine-independent registerTypes() function on the plugin multiple times. After registerTypes() we may also call initializeEngine() on the plugin for the engine-specific initialization, which - as a QQmlEngine is provided as parameter - must happen in the gui thread. For that we issue a thread-blocking call that waits until the gui thread has woken up and processed the event/call. During that time the global plugin lock is held by that QML loader thread. If meanwhile the gui thread instantiates a second QQmlEngine and attempts to issue a synchronous type compilation (using QQmlComponent::CompilationMode::PreferSynchronous), then gui thread is blocking and waiting for its own QML loader thread to complete the type compilation, which may involve processing an import that requires loading a plugin. Now this second QML loader thread is blocked by trying to acquire the global plugin registry lock (qmlEnginePluginsWithRegisteredTypes()->mutex) in qqmlimports.cpp. Now the first QML loader thread is blocked because the gui thread is not processing the call events for the first engine. The gui thread is blocked waiting for the second QML loader thread, which in turn is stuck trying to acquire the lock held by the first QML loader thread. The provided test case triggers this scenario, although through a slightly different way. It's not possible to wait in the gui thread for the plugin lock to be held in a loader thread via the registerTypes callback, as that also acquires the QQmlMetaType lock that will interfere with the test-case. However the same plugin lock issue appears when the first QML engine is located in a different thread altogether. In that case the dispatch to the engine thread /works/, but it won't be the gui thread but instead the secondary helper thread of the test case that will sit in our initializeEngine() callback. This bug was spotted in production customer code with backtraces pointing into the three locations described above: One QML loader thread blocking on a call to the gui thread, the gui thread blocking on a second QML loader thread and that one blocking on acquisition of the plugin lock held by the first. Fortunately it is not necessary to hold on to the global plugin lock when doing the engine specific initialization. That allows the second QML loader thread to complete its work and finally resume the GUI thread's event loop. Change-Id: If757b3fc9b473f42b266427e55d7a1572b937515 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Lift restriction for type registrations in QML module pluginsSimon Hausmann2018-02-025-77/+0
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the registerTypes() callback in a QML module plugin we only allow types to be registered that match the module URI specified in the qmldir. We can observe in QtQuickControls 2 that sometimes we need to register types outside of the namespace of the module itself. QQC2 is in QtQuick.Controls but the module has internal types that are in QtQuick.Controls.impl. Types are intended to be registered once in the virtual registerTypes() function. However as we don't allow for the registration of .impl to happen in registerTypes(), QQC2 works around this by registering the types in initializeEngine(), during which the namespace restriction is not in place. This workaround means that every time an application creates a QQuickView (and thus new QML engine) and loads a QML file that imports QQC2, we end up calling initializeEngine(), as opposed to registerTypes() that is called only one single time in the application process. As a consequence each time this happens we and up calling qmlRegisterTypes() with the same times and leak memory this way, as qmlRegisterType*() is supposed to register a new type and return a new type id that can be passed to qmlUnregisterType. To solve this this patch lifts the restriction on namespaces for registered types during registerTypes(). The real world case of QQC2 shows that the restriction is limiting and also easy to work around. With the restriction lifted QQC2 can now register all types once in registerTypes() instead. [ChangeLog][QtQml][Important Behavior Changes] QML module plugins used to be limited to type registrations in the primary module namespace in the virtual registerTypes() function. Module authors worked around this limitation by placing necessary internal type registrations into initializeEngine() that may cause memory leaks. Therefore this restriction has been moved and types in any (non-protected) namespaces can be registered in the registerTypes() function. Change-Id: I5baf9718a0b0a591f6eb6d7e2dc83e13b204800d Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Introduce qmlRegisterModule()J-P Nurmi2016-11-186-36/+131
| | | | | | | | | | | | | | | | This is particularly useful for keeping the versions of related modules in sync. For example, when QtQuick.Controls introduces new types or revisions and bumps up the minor version, qmlRegisterModule() can be used to make the same version available for QtQuick.Controls.Styles in case it doesn't have new types or revisions to register. [ChangeLog][QtQml] Introduced qmlRegisterModule() that can be used to make a certain module version available, even if no types or revisions are registered for that version. Change-Id: I5ec457465cd778bb0adda55771d195f69cd4b31a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/devSimon Hausmann2016-05-241-1/+0
|\
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-191-1/+0
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4engine_p.h Change-Id: I89ffccd699bee675732758d039e22224b275d60d
| | * prune unused assignmentOswald Buddenhagen2016-05-121-1/+0
| | | | | | | | | | | | | | | Change-Id: Iecb1e9cd4d068660a96ba98480e92d9aa3981671 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | Use the pre-defined QQmlExtensionInterface_iid macroJ-P Nurmi2016-05-233-3/+3
|/ / | | | | | | | | | | | | | | The others were changed in 5.6 commit 392c7b9. These are the last remaining occurrences in 5.7. Change-Id: I1b17e35b0d1dda6ad598c6c30727c1728b688074 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-2717-17/+17
|\| | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickimagebase.cpp src/imports/layouts/plugin.cpp Change-Id: I5f48474df4034a1347ec74795c85d369a55b6b21
| * Instantiate static Qml plugins declaring QQmlExtensionInterface onlySebastian Lösch2016-04-1117-17/+17
| | | | | | | | | | | | | | | | | | | | When instantiating static plugins no check is done whether the QQmlExtensionInterface is declared. Therefore all user plugins are instantiated in the Qml thread, which may cause problems. Task-number: QTBUG-52012 Change-Id: Ia91ec5ec7b2a9721bd11e3648cdc161855b4454e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Allow target path version in a parent moduleJ-P Nurmi2016-04-2114-1/+319
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For example, the QML Engine is now able to locate QtQml.Models 2.x in both of the following target/installation paths: - QT_INSTALL_QML/QtQml/Models.2 - QT_INSTALL_QML/QtQml.2/Models This is required for QtQuick Controls 2. The target path of the module is QT_INSTALL_QML/QtQuick/Controls.2. The built-in styles are installed as sub-directories to be able to locate them from the controls module. Some of the built-in styles provide their own C++ extensions via style- specific imports (eg. the Material attached property is imported from QtQuick.Controls.Material 2.0). The problem is that the QML Engine does not find the module from QT_INSTALL_QML/QtQuick/Controls.2/Material, but requires it to be installed outside the main controls module ie. QT_INSTALL_QML/QtQuick/Controls/Material(.2). This makes it a) hard to locate the styles from the main controls module, and b) conflicts with the target path of QtQuick Controls 1. [ChangeLog][QtQml] Made the QML Engine capable of locating QML sub- modules from within a versioned parent module path. For example, QtQml.Models 2.x can be either in QT_INSTALL_QML/QtQml/Models.2 or in QT_INSTALL_QML/QtQml.2/Models. Change-Id: I2fe4bbdd6d04dd1e80cbe9b3e7e02617658a0756 Task-number: QTBUG-52556 Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-2018-306/+216
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-10-141-7/+8
|\| | | | | | | Change-Id: I11ea57222ba5aa683b7bfd7735fbc1d2cf86e875
| * Provide a threaded TestHTTPServerUlf Hermann2015-10-141-3/+1
| | | | | | | | | | | | | | | | | | This allows us to do blocking operations that interact with the test server in the main thread. The threaded server is used in tests that don't explicitly require asynchronous operation. Change-Id: Ibcb28e79a1114cb9cfb812e86aae0a1af71c569e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Tests: Fix single-character string literals.Friedemann Kleint2015-10-131-4/+7
| | | | | | | | | | | | | | | | Use character literals where applicable. Change-Id: Ib0e618752fbc762a73a0a91c43efab61ef2c9687 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Remove CONFIG += parallel_test.Friedemann Kleint2015-09-051-2/+0
| | | | | | | | | | | | | | The keyword no longer has a meaning for the new CI. Change-Id: I699f2881e291cce02a6a608a8710638886e38daa Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Remove QT_DISABLE_DEPRECATED_BEFORE=0 from tests not using deprecated API.Friedemann Kleint2015-09-0318-18/+0
|/ | | | | Change-Id: I691b8ddff60b5f16f06d32b379c76e87f44f84a9 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Simon Hausmann2015-04-271-6/+4
|\ | | | | | | | | | | | | | | Conflicts: .qmake.conf tests/auto/qml/qqmlxmlhttprequest/tst_qqmlxmlhttprequest.cpp Change-Id: I715b8a78b74cbe0dcaf599367fd6e08af4858e11
| * Prospective fix for flakey "network" related QML testsv5.4.2Simon Hausmann2015-04-251-6/+4
| | | | | | | | | | | | | | Replace hard-coded server ports with dynamically allocated ports. Change-Id: Iab8f9a88343a9f2c49af3cd700c954c13c3bf121 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* | Update copyright headersJani Heikkinen2015-02-1218-126/+126
| | | | | | | | | | | | | | | | | | 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>
* | Allow importing protected modules with different major versionsJ-P Nurmi2015-01-085-0/+98
|/ | | | | | | | This allows QtQuick.Controls 1.x and 2.x imports to co-exist even if they are two different plugins with the same module directive. Change-Id: Idee302439e3c2fd6813ba2f41b69144fbae7902c Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Update license headers and add new licensesJani Heikkinen2014-08-2517-323/+187
| | | | | | | | | - 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>
* TestHTTPServer: Make listening an explicit operation that reports failure.Robin Burchell2014-03-211-4/+4
| | | | | | | | | | Use this to print the error message when listening fails, and switch to always stack allocating TestHTTPServer instances for easier cleanup. Change-Id: I63b2bd38963b66611dc08a5c322615d91a91e675 Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>