aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of !this and similar constructsLars Knoll2014-10-311-8/+5
| | | | | | | | | The C++ standard doesn't allow calling member functions on a mull object. Fix all such places, by moving the checks to the caller where required. Change-Id: I10fb22acaf0324d8ffd3a6d8e19152e5d32f56bb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Doc: apply title case to all section1 titlesNico Vertriest2014-09-241-1/+1
| | | | | | Task-number: QTBUG-41250 Change-Id: I303d989992c9685f73baae50c64accf71b43549f Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Add missing import to documentation code snippetSérgio Martins2014-09-231-0/+1
| | | | | Change-Id: I358b306fb286ffb00d2edd51bc3d97f1884fe34e Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
* Fix mapping of JS objects/arrays to C++Simon Hausmann2014-09-171-0/+11
| | | | | | | | | | | | | | | [ChangeLog][QtQml][Important Behavior Changes] When a JavaScript object/array is passed to C++ through a QVariant, the engine no longer immediately converts the object recursively into a QVariantMap or QVariantList but instead stores a QJSValue in the QVariant. This prevents a loss of data when the JS object contains non-primitive types such as function objects for example. Code that expects the variant type to be exactly QVariant::Map or QVariant::List may need to be adapted. Registered conversion functions however ensure that code that merely calls toMap() or toList() continues to work. Task-number: QTBUG-40431 Change-Id: I1dbc1d5f8e78ad28bb62db3681b9a0b34557e7f5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Merge remote-tracking branch 'origin/5.3' into 5.4Simon Hausmann2014-08-263-5/+6
|\ | | | | | | | | | | Conflicts: src/qml/qml/qqmlobjectcreator_p.h Change-Id: I60858ddb46866a8fa1a8576bb05b412afeeb4e41
| * Don't use d->instanceModel after free'ing itLars Knoll2014-08-261-0/+1
| | | | | | | | | | | | | | | | | | prevModel points to d->instanceModel and is being used further down in the code. So reset the pointer to 0 after freeing the old instanceModel. Change-Id: I8854ae3e09c8b2fe50ad311f3dbc7b8ed26805e1 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * Fix typo in DelegateModelGroup documentationAlbert Astals Cid2014-08-251-1/+1
| | | | | | | | | | Change-Id: Ic01f0935c469f85f32699aebaeb1fc6f8b2279fb Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
| * Don't abuse new to do a reinterpret_castLars Knoll2014-08-241-4/+4
| | | | | | | | | | | | | | | | | | Using new to do a reinterpret_cast is rather confusing. Also protect the list model case against self-assignment which could lead to memory corruption. Change-Id: I10b81644d0004d4a50a5a74e5b8c58e27cbe6934 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * The cached objects can be deleted, so keep them in a QPointer.Gunnar Sletta2014-08-141-1/+1
| | | | | | | | | | | | Change-Id: Ieaebd2e7b9823cbe22efc331e42ceab8fbbda0e8 Task-number: QTBUG-40201 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Update license headers and add new licensesJani Heikkinen2014-08-2525-467/+267
| | | | | | | | | | | | | | | | | | - 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>
* | CleanupSimon Hausmann2014-08-154-21/+21
| | | | | | | | | | | | | | | | | | Merge QV4::CompiledData::QmlUnit into QV4::CompiledData::Unit. For pure JS units it means a slight increase of memory usage by a few bytes, but overall it makes the code a lot simpler. Change-Id: Ib48927749720b056f004aac0fe22cb8ec729e3f6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Doc: Remove duplicated wordsTopi Reinio2014-08-121-1/+1
| | | | | | | | | | | | | | | | Removes duplicated (repeated) words and fixes other minor documentation issues. Change-Id: I891f2b3e60194b207737425c1dcc1d35a5bd921a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* | Do not emit Timer.onTriggered while executing arbitrary JS codeGunnar Sletta2014-08-082-8/+37
| | | | | | | | | | | | | | Task-number: QTBUG-39371 Change-Id: Ibf232560918d30961bd979e14aac3ae7d2f264eb Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
* | Merge branch '5.3' into devGunnar Sletta2014-08-072-8/+19
|\| | | | | | | | | | | | | | | Conflicts: src/quick/items/context2d/qquickcontext2d.cpp src/quick/items/context2d/qquickcontext2dtexture.cpp Change-Id: I1a9b911b3a92333a5dddbaf43275f71bad2006f0
| * Merge remote-tracking branch 'origin/stable' into 5.3J-P Nurmi2014-07-302-2/+18
| |\ | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/quick/qquicklistview/tst_qquicklistview.cpp Change-Id: I80584b4f7d62cd86d3449e19176118e3bed886c1
| | * Fix QQmlDelegateModel ignoring layoutChange in certain situationsDan Vrátil2014-06-292-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a regression introduced by commit a0aefe1 which caused the model to ignore layout changes if d->m_adaptorModel.rootIndex was just a descendant of any of the parent indexes, or when no parent indexes at all were provided in the notification. Task-number: QTBUG-39492 Change-Id: I4c97929d25ef75947ccfcbbe5bc234096689c58d Reviewed-by: Alan Alpert <aalpert@blackberry.com>
| * | Fix QQmlDelegateModel getting out of syncDan Vrátil2014-07-301-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a regression introduced by a0aefe1, which caused that the source data model and adaptorModel could sometimes get out of sync. Change-Id: Ia6b5fc380cc6cf6549ae857e6da54e088a5dadb5 Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
* | | Cleanup: Get rid of __data membersSimon Hausmann2014-07-222-16/+0
| | | | | | | | | | | | | | | | | | | | | These are not needed anymore Change-Id: Ib834aa294e84ca9fbdd5b6850d5bc172e8b54ba1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Fix Managed::as<>() methodLars Knoll2014-07-222-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The as<> casting method was not doing the right thing in 100% of the cases. It only checked if the object in question was exactly of the type being asked for. It however didn't check if the object was derived from the type. This commit fixes this by adding a parent chain to the vtables, that is then being used to check this safely at runtime. Change-Id: I9e0b13adbda668aee8c7451e2bb71cd6d4e316d9 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Change the object allocation schemeSimon Hausmann2014-07-221-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of allocating the data directly, centralize the object and its ::Data allocation in one place in the memory manager. This is in preparation for additional pointer indirection later. Change-Id: I7880e1e7354b3258b6a8965be378cd09c9467d25 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Convert FunctionObject derived classes to new construction schemeLars Knoll2014-07-221-1/+1
| | | | | | | | | | | | | | | Change-Id: I0d43a79ed531a9d651bd00866d73113c05d95a09 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Fix constructors for the delegate modelLars Knoll2014-07-221-35/+47
| | | | | | | | | | | | | | | Change-Id: I6c4d70666fdc331e216511ed089fb4412ed3c608 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Convert delegate model and indexed builtin functionLars Knoll2014-07-222-12/+11
| | | | | | | | | | | | | | | Change-Id: Ic7d50aa472d6a1bafadb6641f88b5f89a9b893ad Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Get rid of all uses of ObjectRefLars Knoll2014-07-222-12/+12
| | | | | | | | | | | | | | | Change-Id: I705e2362dcda542f56826dadec6b0a6f15848788 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Get rid of StringRefLars Knoll2014-07-224-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | Remove the Ref classes, as they won't be required anymore once Managed and Managed::Data are separated. Change-Id: Ic6bec2d5b4ecf2595ce129dbb45bbf6a385138a5 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Convert ExecutionContext to new storage schemeLars Knoll2014-07-222-12/+12
| | | | | | | | | | | | | | | Change-Id: I9fcc13da5360f37cef3149b114ed9263b9b74281 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Rename V4_OBJECT_NEW back to V4_OBJECTLars Knoll2014-07-222-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | The _NEW variant was there only temporarily to aid converting to the new data layout. Change-Id: I1d126ee0999c8f0a49f5a08c2e8c090497dd6dd5 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Fix QQmlDelegateModelChangeArrayLars Knoll2014-07-223-92/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The class had a vtable, clashing with assumptions about Managed objects. The derived classes where actually only cosmetic sugar on top of the basic change class. Clean this up and unify the functionality in the base class. In addition adjust the class to the new data layout. Change-Id: I8677f6c71465381f7ebdf82eb6025fda6d137ec3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Get rid of different macros for vtable specializationsLars Knoll2014-07-221-2/+2
| | | | | | | | | | | | | | | | | | | | | Detect existence of a a vtable entry at compile time. Change-Id: Ieed5d34b063184bc4435b22c6685ac0e3fabf493 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Avoid calling destroy() on most objectsLars Knoll2014-07-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The method is now optional, and we can simply avoid calling it if all members an object has are themselves garbage collected. Change-Id: If560fce051908bcc10409ead1a7d8a5bd5fa71d2 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-103-7/+7
|\| | | | | | | | | | | Change-Id: Iba61035910c46627e5e1c3824757da7b3d573657
| * | Doc: correct link/compilation errors in Qt DeclarativeNico Vertriest2014-07-023-7/+7
| |/ | | | | | | | | | | | | Task-number: QTBUG-34749 Change-Id: I507d54b0568d77c6099a0bd99f5c369b8667032a Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* | Fix crash in QQmlDelegateModel during destruction phaseSimon Hausmann2014-06-242-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | It has been reported multiple times (with different back traces) that the QQmlDelegateModel tries to access a dangling QQmlContext pointer. The scenarios for reaching this point differ slightly, one such scenario is very late model activity during the scene destruction. The provided test-case simulates that and the provided patch guards the QQmlContext in a QPointer. Task-number: QTBUG-39780 Change-Id: I594ee4918cd1b78c5db5c164314e85e9eea99fbd Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
* | Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-06-043-27/+74
|\| | | | | | | | | | | | | | | | | | | | | | | | | The merge conflict is about the removal of "d1" from the register set on ARM, but that was already done in dev in commit ddb33ee9ba9e1344caa9be5dbf4b534c3ede692e The change in src/quick/scenegraph/coreapi/qsgrenderer.cpp with commit 2414f1675eab163b22dcc4e8ded80ed04d06369b was reverted to what it was before, per Laszlo's advice. Conflicts: src/qml/jit/qv4isel_masm.cpp Change-Id: I7bce546c5cdee01e37853a476d82279d4e72948b
| * Fix worker scripts with cached compilation unitsSimon Hausmann2014-06-041-23/+31
| | | | | | | | | | | | | | | | | | | | | | | | Try to retrieve them from the compilation unit cache instead of from the file system if possible. The evaluation code can be shared. In the long run it would be nice to use the type loader here and allow for worker scripts to have dependencies/imports. But that is a more intrusive change given the typeloader's dependency on the engine. Change-Id: I7f9d6be1ff31433d4b14607cf0c25acdf466ac67 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Fix emission of QQmlListModel::rowsAboutToBeXxx() signalsJ-P Nurmi2014-05-292-4/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Call beginInsertRows(), beginMoveRows() and beginRemoveRows() before the change to ensure that rowsAboutToBeInserted(), rowsAboutToBeMoved() and rowsAboutToBeRemoved() get emitted before the change as appropriate. NOTE: This patch solves the problem for the most common use case, when ListModel is used without WorkerScript. QQmlListModelWorkerAgent needs similar changes in order to fix the signals when ListModel is used with WorkerScript (QTBUG-39321). Task-number: QTBUG-39279 Change-Id: Idec5167d70b242f6f7d8b7cff008e130afc62505 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* | Rework custom parser integrationSimon Hausmann2014-06-044-233/+97
|/ | | | | | | | | | | | | | | | | | | | | | | The custom parser design used to be so that the custom parser operates on the "AST", creates its own binary representation of the data it needs, stores it in a QByteArray and gets that at object instantiation time. That meant serializing everything necessary. With the introduction of the "binary" QML data structure, that process of serialization becomes obsolete and would require extra work in the custom parsers for example for QQuickStates to store the translation parameters. The clean solution is to eliminate this unnecessary serialization process and instead let the custom parsers do a verification pass at type compile time and then simply operate directly on the QV4::CompiledData::Bindings at object instantiation time. That simplifies the code, and allows for support of translations throughout all list model properties. Additionally this speeds up the creation of state objects and reduces memory consumption. Previously a text: qsTr("foo") binding in states would result in an actual java script binding. After this patch it is merely stored as a string and translated at object instantiation time. Change-Id: I7550274513f54abb09a0ab4de51c4c0bcdb23cae Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Implement proper support for layoutChange in QQmlDelegateModelDaniel Vrátil2014-05-123-3/+61
| | | | | | | | | | | | | | | | | | | | | Current implementation is treating model layoutChange the same way as modelReset, which causes problems when using ListView on top of a QSortFilterProxyModel. The model emits layoutChanged whenever a data within sorting column change. Treating it as modelReset leads to poor performance on large models and caused UI issues, because the scrolling position is reset every time. This patch implements proper handling for layoutChanged signals by first handling all items moves and then simulating dataChange for all items. This fixes regression from Qt 5.1 introduced by Change I16b859d9 Task-number: QTBUG-37983 Task-number: QTBUG-34391 Change-Id: I6d3873b7b87e7f0e8fc0c1ed5dc80c6f8fdf6c22 Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Michael Zanetti <michael.zanetti@canonical.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Fix translations in states causing failing assertionsSimon Hausmann2014-04-281-0/+4
| | | | | | | | | | | | | This is a smaller fix suitable for the release branch, merely adding support for translations to the bytearray compilation step for states and ensuring a consistent error message when qsTr is used in list models. The proper fix will be done in dev that eliminates the entire intermediate QByteArray storage for custom compilers. Task-number: QTBUG-38492 Change-Id: If5171f16eb742c718e48b8bbcb265b0c241cd5e7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Prevent a crash when the item is deleted but not removed from cacheAndy Shaw2014-04-181-1/+1
| | | | | | | | | | | | | | If the item is not removed from the cache when it is deleted then the cache can end up pointing to an invalid item which when accessed will cause a crash. Task-number: QTBUG-38430 [ChangeLog][QtQml] Prevent a crash when the item is deleted but is not removed from the QQmlDelegateModel's cache. Change-Id: I8cf76b014be62a432d909a3573231cec84a6d678 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Doc: Fix some code snippet warningsSergio Ahumada2014-04-031-2/+2
| | | | | | | | | | | Seems like \qml \endqml is not able to parse some snippets, so using \code \endcode instead to fix warnings like: Unable to parse QML snippet: "Expected token `{'" at line 1, column 13 Change-Id: Iecf033ff5610405d946390e69c3aa7ec54a21998 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* Work around warning by GCC 4.8 with -O3 about array out of boundsThiago Macieira2014-04-021-2/+2
| | | | | | | | | | | | | | | | | | | qqmldelegatemodel.cpp:1140:53: error: array subscript is above array bounds [-Werror=array-bounds] attached->m_currentIndex[i] += deltas[i]; ^ qqmldelegatemodel.cpp:2009:29: error: array subscript is above array bounds [-Werror=array-bounds] m_currentIndex[i] = m_previousIndex[i] = incubationTask->index[i]; ^ I can't tell how the count can be higher than MaximumGroupCount. Either GCC is seeing something I'm not while inlining multiple functions, or it's just getting lost. If it's the former case, this is change could be a fix, but it's probably the wrong type of fix. If it's the latter, we're just throwing the inliner a curve ball and it just stops complaining. Change-Id: I7907074005f5327a8592f47d72a4e79f9c6cd5ff Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Avoid recompiling of signal handlers defined in QtQuick state changes and ↵Simon Hausmann2014-04-024-21/+11
| | | | | | | | | | Connection objects We can re-use the expression we've compiled at QML type compilation time, as long as we "inject" the signal parameters in the dynamic qml lookup chain. Change-Id: Icc417531c41dea06ff5d033011179af49b03f542 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove object index parameter from QQmlCustomParser::compileSimon Hausmann2014-03-294-5/+4
| | | | | | | | There is no need anymore to pass through the object index of the object being "custom compiled". Change-Id: I8ef8e578b27523d9e7190503fbf95d1eb863a149 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Eliminate noop translation bindingsSimon Hausmann2014-03-292-37/+7
| | | | | | | | | | | We can store them as regular strings. This has the advantage that the entire special handling from the custom parser of the list model goes away, we don't need astForBinding in QQmlCustomParser anymore neither and types with a custom parser can now generally benefit from the expression simplification pass. Change-Id: I39d1b76edd1273d8c73b847aed71f7bcce37d877 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Cleanup: Remove last traces of QQmlScriptSimon Hausmann2014-03-192-2/+1
| | | | | | | | | | What remains is the code for removing .pragma from script source code (and replacing it with white-space to preserve line/column numbers). The previous code even returned the value of the pragmas, but for the remaining caller sites that value isn't used, so we can just return void. Change-Id: I16db15da236970660b817d6c4493005365a7a1af Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Doc: Fix broken \qmlsignal linksSze Howe Koh2014-03-182-4/+4
| | | | | | | | Fix the breaks caused by the re-categorizing of \qmlsignal pages Task-number: QTBUG-35846 Change-Id: I528ae16ec522fc902133e22d8f53c87a7f0d56ad Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Document signals (not handlers) under \qmlsignalSze Howe Koh2014-03-181-2/+4
| | | | | | | | Append the handler names to the end of the corresponding signal doc. Task-number: QTBUG-35846 Change-Id: I3d627ba7ed5be94e5c402ab092b4d582536499e8 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Fix crash when appending arrays to sub models in list modelsSimon Hausmann2014-03-141-0/+3
| | | | | | | | | | | | | | The elements are still inaccessible, but at least it doesn't crash. This is consistent with the behavior in Qt 5.0, where it didn't crash because the v8 object handle returned an empty array for the property names because the individual array element wasn't an object. Bug QTBUG-12117 tracks support for arrays in list models. Task-number: QTBUG-35891 Change-Id: Ief446341344977a1473bca474ca5ba934e950468 Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix WorkerScript object leakLiang Jian2014-03-141-1/+5
| | | | | | | Delete WorkerScrip object in WorkerRemoveEvent::WorkerRemove event Change-Id: I1a304838e4a43577a5781216e32610ea36c5a7fd Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>