aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
Commit message (Collapse)AuthorAgeFilesLines
* V4: Move BitVector to the util header, so it can be re-used.v5.7.0-alpha1Erik Verbruggen2016-03-072-115/+117
| | | | | Change-Id: I994ff9277fbbcebf2e45b3146859eb75264b83f4 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* V4: tweak Phi node data destruction.Erik Verbruggen2016-03-062-15/+22
| | | | | | | | | | | | Phi nodes can only occur at the start of a basic block. If there are any, they need to be subsequent to eachother, and the first phi node should be the first statement in the basic-block. A number of loops rely on this behavior, so they don't need to walk through the whole list of instructions in a basic-block (e.g. the calls to destroyData in BasicBlock::~BasicBlock). Change-Id: I57763bc6abae271337b0b169cccd26e10ecd9b2d Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* V4 IR: Store the phi-node parameters directly in the class.Erik Verbruggen2016-03-065-47/+39
| | | | | | | | | | | | Every time one of the paramets was accessed, the chain of loads was: phi->d->incoming->heapdata[i] Now it is: phi[i + offsetof(incoming)] This also removes at least one malloc (for the Data), and usually two (when the number of parameters is <= 4, which is most of the cases). Change-Id: I953e784647148266ae5a49a93a203d0d22cdcb63 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* V4: Replace foreach with range based for loops for statements.Erik Verbruggen2016-03-054-28/+29
| | | | | | | | Function::basicBlocks() returns a const reference to a QVector, so it can safely be iterated over without qAsConst. Change-Id: Ie9a17edfff7c1fbdc3601121935aef4b41338a35 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* V4: Replace foreach with range based for loops for statements.Erik Verbruggen2016-03-054-20/+20
| | | | | | | | BasicBlock::statements() returns a const reference to a QVector, so it can safely be iterated over without qAsConst. Change-Id: If4e47e0e113adbc87253bb3478208a3a38fed9e2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* V4: Replace foreach with range-based for loops on QVarLengthArrays.Erik Verbruggen2016-03-041-23/+23
| | | | | | | | QVarLengthArray is not shared, so it will not detach and make a copy of the data when begin() is called. Change-Id: I9114d99fc0cabb17d68993408bea01695754437a Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* V4: Replace foreach loops with range-based for loops.Erik Verbruggen2016-03-031-21/+21
| | | | | | | | Also replaced some QVectors with std::vectors so calls to clear() will re-use the storage instead of re-allocating it. Change-Id: Ibe7d8509af8d264ea93376288cec15fec7c38f70 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6' into 5.7J-P Nurmi2016-03-016-34/+80
|\ | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_native/qmldbg_native.pro Change-Id: I3ca8f0422828191b7e19539c25f31f2d048e9f18
| * consistently put {qt,qml}_{module,plugin} at the end of project filesOswald Buddenhagen2016-02-251-5/+4
| | | | | | | | | | | | | | | | this fixes static builds by ensuring that all dependencies are exported. Task-number: QTBUG-51071 Change-Id: I5928f853a1d13b6a73533f9c6f6eae9da0e52a26 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Properly signal errors when accessing lowercase enum valuesThomas McGuire2016-02-243-26/+73
| | | | | | | | | | | | Task-number: QTBUG-46758 Change-Id: I14e394021c231bda5552c8d1c98f20c903a62f12 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Validate Binding only when it is enabledNikita Krupenko2016-02-241-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Not validate binding if it is disabled and validate when it became enabled. This helps to get read of warnings about not existing property that started to appear since 61ce37de40711ef2d4a6b4989d8183e1711fc47d. Task-number: QTBUG-48623 Change-Id: I4aa92896c04b146a79e606842c1d33661b3f5a70 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Tobias Koenig <tobias.koenig@kdab.com> Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
| * Remove unused static const non-constexpr variableThiago Macieira2016-02-221-2/+0
| | | | | | | | | | Change-Id: I0c94a5c2846b48c8aea7ffff14352f8a247c8cec Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-02-193-4/+5
|\| | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickitem.cpp tests/auto/quick/qquickgridview/tst_qquickgridview.cpp tests/auto/quick/qquicklistview/tst_qquicklistview.cpp Change-Id: I3cf47faa2fe567d62fffd985aeecbefe5811cc42
| * Revert "Fix crash on QQmlEngine destruction."Robin Burchell2016-02-172-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2e75be5f64fb21cbbdff3353dbd507c2ca26946a. This patch was originally written by Andrew den Exter in 222e06bf4ed509e72c1533cbe1d4859ca96933f3, externally from the main Qt tree. I upstreamed this as part of our porting efforts. Some time later, this was accidentally reverted in 2e75be5f64fb21cbbdff3353dbd507c2ca26946a: we can't go back in time to examine exactly what happened, but presumably Andrew didn't notice that I had upstreamed this, attempted to apply the patch and ignored the "already applied" warning by accident - and continued on dutifully with the patch accidentally reverted. This change is correct, though, and is thus reinstated. Change-Id: Idfe6ab39ad011f0401de25fe056aa3eb3fb8b424 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Merge remote-tracking branch 'origin/5.6.0' into 5.6Liang Qi2016-02-151-0/+2
| |\ | | | | | | | | | Change-Id: Ib4eb5c3572cb5ec11eb744572ec796dc7e70456d
| | * Fix crash in Installer Framework when used with Qt 5.6Simon Hausmann2016-02-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | IFW uses QQmlV4Function in a QJSEngine environment, so there is no QML context. Up to commit cc98678f404cd49750076795f39b31bfa36c80c3 that would work. Let's fall back to the root context as scope if we don't have a qml context. Change-Id: Ib240746a95a0d16d61620f97abc31e4c74f36723 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-122-2/+9
|\| | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I356ec83cf687bd2833f9a7c5e820d56b1efa8979
| * | Fix grammar in QML property aliases documentationMitch Curtis2016-02-111-2/+2
| | | | | | | | | | | | | | | Change-Id: Ifa5c046d389f8f4b538b5b7727b99a0dd26a6121 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
| * | QQmlComponent: mention errors when component is prematurely destructedMitch Curtis2016-02-101-0/+7
| |/ | | | | | | | | | | Change-Id: Idb5dc9e68b92cb6b20b4e8df44ed6ac55aaa9568 Task-number: QTBUG-45745 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Qml: replace QStringLiteral with QLatin1StringAnton Kudryavtsev2016-02-109-29/+29
| | | | | | | | | | | | | | ... in string comparisons. It's more efficient. Change-Id: I3be5a2be9ba5d55546472eac28f5f639a496bf3b Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Don't deep copy std::vector [-Wclazy-foreach]Sérgio Martins2016-02-082-6/+6
| | | | | | | | | | Change-Id: Ic326786a64c9b6dcd8cee1b45dec45de9cd90414 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Include qqml.h in qqmlengine.h for convenienceMitch Curtis2016-02-052-37/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a user creates a Qt Quick Application Project in Creator, they get this main.cpp: int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); } According to the current documentation, if they then want to register a C++ type for use in QML, they need to add a separate "#include <QtQml>" (which is actually a module-wide include and brings a lot of unnecessary files with it). If the most common (or perhaps only) use case for that function (and all of the others declared in qqml.h but documented as requiring QtQml) is related to QQmlEngine, then it makes sense for qqmlengine.h to include qqml.h. This change makes it so that users can use these functions with no changes to the code that Creator provides, as QQmlApplicationEngine includes QQmlEngine. Change-Id: I9d6be2e1abfd4cc831ca04dab4c2a9e50021f748 Task-number: QTBUG-50343 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Enable V4 JIT for aarch64Laszlo Agocs2016-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | 64-bit ARM boards (f.ex. with Tegra X1) are becoming common and therefore enabling the JIT would be highly beneficial. Change-Id: I5ee46258151885194f93d2528edddd5f51dff964 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-2911-20/+71
|\| | | | | | | Change-Id: Iec1b2de53c275996364c4bab0123ccb3e6e9895e
| * QML: do not wrap property values of type QVariant.Erik Verbruggen2016-01-271-2/+8
| | | | | | | | | | | | | | | | | | | | When reading a propety from a QGadget or a QObject, the values are stored in a QVariant and later unwrapped/converted to the correct JavaScript type. However, if the property value is a QVariant, it does not need to wrap it (again) in a QVariant. Change-Id: I633d3194f82b6032fc15d9994c4dee5e5609fd21 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Don't check for revisions when assigning to grouped propertiesLars Knoll2016-01-273-10/+16
| | | | | | | | | | | | | | | | | | | | This leads to wrong behavior in some cases, where we reject valid revisions, and there is probably no case, where this could lead to a conflict for the user of the API. Change-Id: I1614332cf4c07c6a227551612331dd69b2ae71f3 Task-number: QTBUG-40043 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Fix don't delete singletons objects owned by C++BogDan Vatra2016-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | Don't delete singletons objects that are created only from C++ and have explicitSetObjectOwnership flag set, explicitSetObjectOwnership flag is set only by QQmlEngine::setObjectOwnership. Task-number: QTBUG-49865 Change-Id: I0ef658c2094e67b5cd9a1585e273144dfcee736a Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Pass Qt.include() URLs through the URL interceptor if presentKevin Krammer2016-01-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | JavaScript files loaded by the Qt.include() function did not get passed through the QQmlEngine's URL interceptor, while those loaded by import statements did. Now both include variants have the resolved URL passed through the interceptor, e.g. an installed QQmlFileSelector Task-number: QTBUG-50483 Change-Id: Ife75e6b644687f3fb04048a311e570cdcbab8c6d Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Make sure we destroy all QV4::QObjectWrapper objectsJian Liang2016-01-225-7/+44
| | | | | | | | | | | | | | | | | | | | Delay freeing QObjectWrapper Value to MemoryManager::sweep() to make sure we can destroy all QObjectWrapper objects. We also keep track of QObjectWrapper in QV4::Heap::ModelObject to make sure we destory them in QV4::MemoryManager::sweep() Change-Id: I3a8a3b07faab1f88c2eb746f68aa8d9584b40026 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devSimon Hausmann2016-01-225-4/+44
|\| | | | | | | Change-Id: I4af0bf8ec1569097d97f8ce0bb8bf1a0e4a989ec
| * Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6Simon Hausmann2016-01-211-2/+2
| |\
| | * Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2016-01-191-2/+2
| | |\ | | | | | | | | | | | | Change-Id: Ieb48911638b5c1acdfd4dee8aa19dca9be99a1f6
| | | * Fix QQmlComponent::errors() documentationMitch Curtis2015-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I3b65a6aea614a01e36f0fb9e93bb8a9c929ad919 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
| | | * Fix link to QQmlError in QQmlComponent documentationMitch Curtis2015-12-101-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I4549acabec366bb17512aad20a943b6b2f813801 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
| * | | Provide access to signal parameters in SignalTransition::onTriggered.Michael Brasser2016-01-192-0/+23
| |/ / | | | | | | | | | | | | | | | | | | Change-Id: Ib74d3f5e9a357a86b818e27dd7249e2ecdf1e513 Task-number: QTBUG-46897 Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * | Fix up commit 9d7b27f5bf44a46707e6d50ebf51ecf73f91dd1bSimon Hausmann2016-01-161-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | That commit changed qqmljsgrammar.cpp, which turns out to be a generated file. Therefore it's important to also make the modification to the original grammar file, to ensure that future re-generations of the file contain the new code. Change-Id: Id913b29e4a70bfa0c2786073c46dcc206c28b6ee Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
| * | Doc: typo fixJoerg Bornemann2016-01-121-1/+1
| | | | | | | | | | | | | | | Change-Id: Ida2e39f2eb1744173cd40b4a29f3304c2a2bfd6c Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | Add selector() to get underlying FileSelectorAndré Klitzing2016-01-212-0/+11
| | | | | | | | | | | | | | | | | | Change-Id: If33a23e7ba06523e964d8299365f43e8125c1619 Task-number: QTBUG-45983 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | Remove a case of type-punning.Erik Verbruggen2016-01-201-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | This is officially undefined behavior. Change-Id: I74d7d7d6cf6a774bc6f90c5a0362ce5ba07768f8 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | V4: Tweak "enable JIT" ifdefs.Erik Verbruggen2016-01-202-13/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - indentation, to make it readable - on arm64: only enable for Linux (but only after future testing!) - add CONFIG+=force-compile-jit handling so the JIT can be compiled/used even on platforms that don't officially support it (like iOS, where it works if you run from Xcode). This is done for debugging purposes. Change-Id: I8611ba409e10305f480463a16d88bc854b1c218a Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | V4: Rename StackFrameRegister to FramePointerRegister.Erik Verbruggen2016-01-194-27/+27
| | | | | | | | | | | | | | | | | | | | | Because that's what CPU documentation calls it. Change-Id: I36efd9f424f9b4f4a8b7cbc65a2e63c67be80b95 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | Updated license headersJani Heikkinen2016-01-19373-5270/+7463
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | V4: add Aarch64/ARM64 support.Erik Verbruggen2016-01-192-1/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This uses the JavaScriptCore assembler rev. 195098. It is tested on iOS (for which it is disabled, as it only allows marking pages as executable when running from Xcode). Testing on Linux will be done when hardware arrives. Change-Id: I650e15fec03c27d4b326a2d70863a89b85cfc5c3 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | Qml: fix expensive iteration over QHash::keys() and QMap::keys()Anton Kudryavtsev2016-01-183-14/+10
| | | | | | | | | | | | | | | Change-Id: I7bb5dd3b49b9f3a638f81156a02d999dbbd932f3 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | WinRT: Enable JIT for x86/x64 target platformsMaurice Kalinowski2016-01-162-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This only works for Windows 10 and later. Setting the "Code Generation" capability in the manifest, WinRT applications can use JIT for Windows 10 Desktop. Update the Allocator in regards to this and also update the VirtualProtectFromApp section. When the engine gets initialized, check for marking an area as executable. If it fails, fallback to interpreter mode. This does not affect ARM platforms, as we do not have calling conventions yet. It is implicitly disabled as V4_ENABLE_JIT is not defined. [ChangeLog][WinRT] Enable JIT for x86/x64 targets on Windows 10 and later. Change-Id: Ie05add5263f71387c5ce98456b9bec86c6c07ceb Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | V4 JIT: Switch all platforms to W^X for the ExecutableAllocator.Erik Verbruggen2016-01-151-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | This also fixes makeWritable, which needs to work in order to add more c0d3 to used pages. Also finish the WinRT parts. Change-Id: Idaa4187b1ec256e65c881285a608f3a51fdbeebd Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | JIT: move FP save/restore to platform pro-/epilogue.Erik Verbruggen2016-01-152-12/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is in preparation for Aarch64, which saves/restores it as part of the fp+lr pair. Change-Id: Ia924017948aa2b257bd6bb61e488454e3944abeb Reviewed-by: Julien Brianceau <jbriance@cisco.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | Print warning if JIT is disabledMathias Hasselmann2016-01-141-2/+11
| | | | | | | | | | | | | | | | | | | | | The wiki will provide information on how to work around the issue. Change-Id: I4409f5b4af0668ab28197adb8766898124e8cec8 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | Remove debugChangesHash from QQmlEngineUlf Hermann2016-01-122-31/+0
| | | | | | | | | | | | | | | | | | | | | Since the inspector doesn't use it anymore we can drop it. Change-Id: I9c4ffc3988bcd9937a4a473d5de287c7a5eda13e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | Rewrite inspector serviceUlf Hermann2016-01-121-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The inspector service had bitrotted to a point where there was little code to be rescued. Apparently it was never really finished and quite some code didn't make any sense. This change removes some features that were unused or didn't work correctly: 1. Panning and Zooming with mouse wheel and touch interaction. This might be useful in some contexts, but the implementation was so broken that it wasn't worth trying to fix it. The whole idea of doing this on the layer of QQuickItems is not so great because there is no distinction between spontaneous changes triggered by the application and debugging interaction triggered from outside. It might be better to implement such functionality on a lower level, e.g. in the renderer. 2. Reloading the scene with debug changes. Use one of the other debug services to change properties. Clearing the component cache is a rather drastic measure and not necessary here. In turn, we get support for inspecting multiple windows, and all subclasses of QQuickWindow are supported now. Also, show-on-top works now. Task-number: QTBUG-33376 Change-Id: I65497f49c6b46128a600b0e3a31483eeef40313c Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>