aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types/qqmllistmodel.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [new compiler] Add support for QML list modelsSimon Hausmann2014-01-201-0/+164
| | | | | | | | | | | | | List model definitions make heavy use of custom parsers, which requires AST access as well as a general port to the new QQmlCustomParser API. Additional fixes in the custom parser support were needed to pass all tests: * Fix support for AcceptsSignalHandlers and AcceptsAttachedProperties * Don't call setCustomData unless the compiler generated data earlier Change-Id: Ic42f8a890391267c94f63d35f055b60fdbf3c83d Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Rework array handling for JS objectsLars Knoll2014-01-091-5/+5
| | | | | | | | | Split up ArrayData into two classes, one for regular arrays, one for sparse arrays and cleanly separate the two cases. Only create array data on demand. Change-Id: I9ca8d0b53592174f213ba0f20caf93e77dba690a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Doc: Fixed a few broken links and snippetsVenu2013-12-231-2/+2
| | | | | | | | | | Couple of \snippet references in the ListModel docs were pointing to files outside the exampledirs boundary. Update those references to use the relative path. Change-Id: Ibf9d0fda9e5280345b08cb66a4fe0db9142a42a6 Reviewed-by: Nico Vertriest <nico.vertriest@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Remove usage of String pointers where not requiredLars Knoll2013-10-111-3/+5
| | | | | Change-Id: Ia533308a1641fab263d8faa8316455e8ade1c859 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove more direct usages of Managed pointersLars Knoll2013-10-111-27/+31
| | | | | Change-Id: I32f61b7919797eef51a8705695787175b76244c4 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix ObjectIterator API to be GC safeLars Knoll2013-10-021-25/+25
| | | | | Change-Id: I3a9c48d53d8dbadcb9b32c00fcef1f89447c4b8c Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* remove more uses of QV4::ValueLars Knoll2013-09-301-13/+15
| | | | | Change-Id: I11b0b2b7626297e2c98dc77784574da4b59ba8cf Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Move Value::fromBool, ... to a new Primitive classLars Knoll2013-09-281-1/+1
| | | | | | | | This will simplify finding the remaining direct usages of QV4::Value that need fixing. Change-Id: I223099727436d5748027c84c53d9dfc4028e38ed Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Convert more methods in QV8EngineLars Knoll2013-09-261-26/+32
| | | | | Change-Id: I5b059b41842b4a6d9541525b3955d2b64c0011c3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix QQmlV4Function API to be GC safeLars Knoll2013-09-261-19/+20
| | | | | Change-Id: Id4f79c22fc48ada1c8a9a858e1b7b3d1cf14d120 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix API of QQmlV4HandleLars Knoll2013-09-261-5/+6
| | | | | Change-Id: Iac4a3fefebd33a5990408598486231a5add8e639 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Don't use Value::emptyValue() anymore.Lars Knoll2013-09-221-3/+3
| | | | | | | | | | emptyValue is special and reserved for usage inside the engine to mark missing values. The main to use cases are when converting property descriptors, and to mark holes in array data. Change-Id: I0ed357e65102b1041bf9a878e6e9a4ae0657523b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Convert most remaining return values from Value to ReturnedValueLars Knoll2013-09-181-21/+25
| | | | | Change-Id: If8b0c3b91be50678693868c10fefc3678008834d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Use a ReturnedValue for Managed::getIndexed()Lars Knoll2013-09-181-12/+27
| | | | | Change-Id: I0371ed21c4ef99564d3ffa1082dd109e890a78bf Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Merge branch 'dev' of ssh://codereview.qt-project.org/qt/qtdeclarative into ↵Simon Hausmann2013-07-221-9/+9
|\ | | | | | | | | | | | | | | | | | | wip/v4 Conflicts: src/quick/items/context2d/qquickcontext2d.cpp tests/auto/quick/qquickvisualdatamodel/qquickvisualdatamodel.pro Change-Id: I36a4fd28b3156839aecd70039a3ba566bf19a0bc
| * Docs: restore missing ListModel methodsJ-P Nurmi2013-07-081-9/+9
| | | | | | | | | | Change-Id: Icb491d14d42af769928b1663be0877e23ff43850 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Get rid of the first half of QQmlGuard usageLars Knoll2013-07-051-14/+14
| | | | | | | | | | | | | | | | | | QQmlGuard was being used as a more performant replacement for QPointer. QPointer got now fixed in Qt 5.0, making this class obsolete. Change-Id: I77eef066c4823af4b074ef32d4d78dbd67c36cd0 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Get rid of QHashedV4StringLars Knoll2013-06-281-11/+9
| | | | | | | | | | | | | | | | This was required while we were using V8, but now we can simply pass QV4::String pointers. Change-Id: If6338e4a455d6132fe14e5e603e4fe9e477d1ffb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Merge branch 'dev' of ssh://codereview.qt-project.org/qt/qtdeclarative into ↵Simon Hausmann2013-06-241-27/+7
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | wip/v4 Conflicts: src/imports/qtquick2/plugins.qmltypes src/qml/debugger/qv8debugservice.cpp src/qml/qml/qml.pri src/qml/qml/qqmlcompiler.cpp src/qml/qml/qqmlcomponent.cpp src/qml/qml/qqmlcontext.cpp src/qml/qml/qqmldata_p.h src/qml/qml/qqmlengine_p.h src/qml/qml/qqmljavascriptexpression.cpp src/qml/qml/qqmlxmlhttprequest.cpp src/qml/qml/v4/qv4bindings.cpp src/qml/qml/v4/qv4irbuilder.cpp src/qml/qml/v4/qv4jsonobject_p.h src/qml/qml/v8/qqmlbuiltinfunctions.cpp src/qml/qml/v8/qv8bindings.cpp src/qml/qml/v8/qv8contextwrapper.cpp src/qml/qml/v8/qv8listwrapper.cpp src/qml/qml/v8/qv8qobjectwrapper.cpp src/qml/qml/v8/qv8qobjectwrapper_p.h src/qml/qml/v8/qv8sequencewrapper_p_p.h src/qml/qml/v8/qv8typewrapper.cpp src/qml/qml/v8/qv8valuetypewrapper.cpp src/qml/types/qqmldelegatemodel.cpp src/quick/items/context2d/qquickcanvasitem.cpp src/quick/items/context2d/qquickcontext2d.cpp sync.profile tests/auto/qml/qjsengine/tst_qjsengine.cpp tests/benchmarks/qml/animation/animation.pro tools/qmlprofiler/qmlprofiler.pro Change-Id: I18a76b8a81d87523247fa03a44ca334b1a2360c9
| * Doc: Clarified members of QtQml.Models submodule.Jerome Pasion2013-06-041-30/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | -Took out members of QtQml.Models submodule from Qt QML and Qt Quick. -Set up qdocconf files to include QtQml.Models to be part of Qt QML doc build. -Edited the sentences to make it clearer that list and model types are in QtQml.Models. -Placed the Visual* types back to QtQuick 2 module. -This patch removes several collision pages. Change-Id: I16e7045162af6852e5d6c3162b6f4cf97a42402b Reviewed-by: Alan Alpert <aalpert@blackberry.com>
| * Doc: Fix links for ListModel and ListElement typesTopi Reinio2013-05-291-2/+6
| | | | | | | | | | | | | | Link to documentation under QtQml module. Change-Id: Id65d237558c235dcdda8ab206eddef23c2886a29 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| * Doc: Qt Quick: Fix module name format (Pt 1/2)Sze Howe Koh2013-04-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Follow the conventions at http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation Attempt to differentiate between the whole module ("Qt Quick") and the QML import ("QtQuick") by encoding the latter with monospace font. There are places in the text where both representations are valid. Change-Id: Id6e157a4191aaa4e23a9cd5c76abfe902fe43d33 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| * Doc: Qt QML: Fix module name formatSze Howe Koh2013-04-191-1/+1
| | | | | | | | | | | | | | | | | | | | Follow the conventions at http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation QtQml -> Qt QML Change-Id: I45ca4496a02214feab48707b026c6bec085df138 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| * Doc: Reassigned types and pages to their correct modules.Jerome Pasion2013-04-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 1)Moved classes and basic types to \module QtQml 2. -QQml* classes are in QtQml 2 for 5.1 2)Removed \inqmlmodule commands in overviews and tutorials. -Only QML API should have \inqmlmodule commands because they are added to the auto generated list of types. Change-Id: I9aa3ca8062fa9fed76734885829879122841b119 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* | Move QV8QObjectWrapper::newQObject into QV4::QObjectWrapperSimon Hausmann2013-06-051-3/+3
| | | | | | | | | | | | | | | | ...where it is just called wrap(), because it doesn't always create a new JS wrapper for the QObject. Change-Id: Ieed0fc97174eb51cd04df0149e715c234a5822bd Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Simplify the object iterator APILars Knoll2013-06-041-16/+6
| | | | | | | | | | | | | | | | We were really missing methods to get both the key and the value in one go. Change-Id: I996bde79265f45312e68fcc6bdce76704385ea5b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Convert QQmlListModel to v4Lars Knoll2013-06-031-110/+107
| | | | | | | | | | | | | | Remove all usages of v8 API in the list model. Change-Id: I9dc8acecbbc77a97cf3c2a318e222bdb4b05c7c5 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Get rid of QV8Engine::toQObject and QV8QObjectWrapper::toQObjectSimon Hausmann2013-06-031-3/+3
| | | | | | | | | | Change-Id: I8726148093079b3385c6b0f16284af0b5ba92066 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Port QObject bindings to use new castSimon Hausmann2013-06-021-3/+3
| | | | | | | | | | Change-Id: Ib0a8ba76df51276d53cf251b0ed979176e1fba01 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Replace QV8QObjectResource with QV4::QObjectWrapperSimon Hausmann2013-05-231-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a proper sub-class instead of external object resources, as a first step towards porting the QObject bindings away from V8. This also replaces the function template / constructor approach and the faster getter optimization with a plain virtual get in the V4::Object. Property lookup in QObject bindings will be subject to future optimizations that will work very differently once we enable the faster V4 lookup mechanism in QML. Change-Id: Ib7c2eead5323c22290c2924de786d9cfcf308c03 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Remove v8 dependencies in qhashedstringLars Knoll2013-05-221-14/+6
| | | | | | | | | | | | | | Also remove now unused API in v8::String Change-Id: I2570aedf407c89ad85da01cf0e2153a52b4e562d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Cleanup v8 dependencies from QQmlV8FunctionLars Knoll2013-05-081-8/+8
| | | | | | | | | | | | | | ... and rename it to QQmlV4Function Change-Id: Iad72347babf62691e26306877d4f229fda127eb7 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Remove v8 dependencies from QQmlV4HandleLars Knoll2013-05-081-2/+2
| | | | | | | | | | Change-Id: I87d2183738ec7cfeea846a28f2b9aed79a233f68 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Get rid of QV8Engine::qtDateTimeFromJsDateSimon Hausmann2013-05-071-3/+4
| | | | | | | | | | | | Change-Id: I6a748ace761661ffe40e8fa73839f974e8a0afac QV4::DateObject has a very convenient toQDateTime() function :) Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Replace v8::Undefined() with QV4::Value::undefinedValue()Simon Hausmann2013-05-071-1/+1
| | | | | | | | | | Change-Id: I4c7bb5bcc1bc15a982bb83d2597e6ae4bc5710cd Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Get rid of v8::LocalLars Knoll2013-05-061-6/+6
| | | | | | | | | | | | | | | | | | The class was doing exactly the same thing as v8::Handle in our implementation. Removing it cleans up quite a bit of code. Change-Id: I37a3dcdef062fc388751e9ef0a158b5926ba2efb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Remove v8::HandleScopeLars Knoll2013-05-031-2/+0
| | | | | | | | | | | | | | This class never made sense with v4... :) Change-Id: Id597d791d1adf52cc821d6d46f57cb24d1acd343 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Cleanup v8 Context handlingLars Knoll2013-05-031-1/+0
| | | | | | | | | | | | | | | | | | We don't need or use v8 Context objects, so it's sufficient to have one global context for now. Remove all code related to entering or leaving Context's. Change-Id: I4f7ddaa4907e59de5713368fa13bbc40e5830542 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Change variant conversion methods to use V4 APILars Knoll2013-04-221-8/+11
| | | | | | | | | | Change-Id: Ic1a18e71592baf5e5babde250f77c4a60e613041 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Rename QQmlV8Handle to QQmlV4HandleLars Knoll2013-04-191-4/+4
| | | | | | | | | | | | | | | | | | The handle wraps a V4 Value, so this is the better name for it. Also added some accessor methods to convert to and from V4 Values. Change-Id: I327c83feb5bd3be59909001489979e5a3a9d9e67 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Cleanup lots of V8 dependencies in QJS* classesLars Knoll2013-04-181-0/+1
|/ | | | | | | | | | | Implement a good part of QJSValue using V4. Keep the QV8Engine for now (as it is used everywhere), but add an ExecutionEngine pointer to it so other parts can more easily be ported to V4. Remove a lot of other stuff that's not required anymore. Change-Id: Ibe2c9ab10f0ee977e0e3d05a42f526206d7b22b5 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Move QML types to types folderAlan Alpert2013-03-141-0/+2588
The QtQml module has gain a bunch of QML types cluttering up the qml folder. Moving them to types organizes them a bit better. Change-Id: I570884c00f4abc48f4f1aea048bf002bc70223f3 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>