| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I778cfe842ddf1c600a837d8f2061a338887eed95
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The model types are not part of the core QML runtime and should only be
loaded if you explicitly import them. We cannot enforce that in Qt5 as
some of them are available from the QtQml import, but we can change it
in Qt6.
Change-Id: I1e49e84d748e352537ec2d4af901c034c91d038f
Reviewed-by: Erik Verbruggen <erik.verbruggen@me.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to support simple object rows by default,
which we expect to be the most common use case for TableModel.
Complex rows are supported, but with a limited subset of functionality.
Things that could be improved:
- Would be nice if we could get arbitrary/dynamic properties
like ListModel has, without the complex code that comes
with it. That way we could get rid of all of the role properties
and users could have their own custom roles. The limitation
of only having built-in roles becomes too restrictive very
quickly.
Change-Id: Icbdb6b39665851c55c69c0b79e0aa523c5d46dfe
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a QML type that can be used as a model for the new TableView.
The model data is set by assigning a JavaScript array to the rows property
(or by calling appendRow()). After data has been assigned for the first time,
the available columns and roles are fixed for the lifetime of the model,
as opposed to ListModel where the dynamicRoles property could be used.
This is done intentionally to simplify the code.
The API is designed to be familiar to users of ListModel:
- To add new rows, use appendRow() and insertRow().
- To modify existing rows, use setRow(), moveRow(), removeRow(), and clear().
[ChangeLog][Qt Labs QML Models] Added the TableModel QML type, a
JavaScript-based model for the new TableView.
Fixes: QTBUG-70334
Change-Id: I55387a08b122227c5624f78af3d450b7695d974a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
Depends on features.thread.
Change-Id: I65db68ac90c15af0ac0571ee021122f7ca2ca051
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Force use of the basic render loop, adapt qqmlthread
and qqmltypeloader to work on a single thread.
Disable components and features that require worker
threads: qmldb_server, worker script, shapes, folderlistmodel,
threaded render loop, software renderer.
Done-with: Lorn Potter <lorn.potter@gmail.com>
Change-Id: I77d965947f684f8b7d19284b5decd893395316cb
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a specific abstract QQmlComponent subclass,
QQmlAbstractDelegateComponent, and a default implementation,
DelegateChooser, that, together with the type DelegateChoice
allows determining the delegate type by role and/or index.
The patch also adds QQmlAbstractDelegateComponent support
to QQmlTableInstanceModel, that is a simplified version of
the delegate model, currently only used in the new table view.
DelegateChoosers are intended to behave just like Components
in the context of the view. This means that they can be declared
outside of the view, and also in separate files, and the same
delegate component can be used at the same time in multiple views.
[ChangeLog][QtQuick][Item Views] Added a DelegateChooser Component
to host DelegateChoice instances to choose different delegates in
an Item View (e.g. TableView) depending on model roles.
Done-with: Michael Brasser <michael.brasser@live.com>
Task-number: QTBUG-26681
Change-Id: Ibe24a31daf9142c8a9ff45ef6c65da0aec8a14dc
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will add a new model class: QQmlTableInstanceModel.
It will be used by QQuickTableView to communicate with the data
model, instead of using QQmlDelegateModel.
The reason we abandon QQmlDelegateModel for QQuickTableView, is because
QQmlDelegateModel was written from the start to only support list models,
not table models. And to work around this, we proxy table models as a list
models, and combine all columns to form one big list.
This as some disadvantages. First and foremost because QQmlDelegateModel
is using QQmlListCompositor internally. QQmlListCompositor can combine
many different list models into one big list model, and divide them into
groups. Any change done to a list model will also be mirrored in the list
compositor. The compositor will further create QQmlChangeSets describing
such model changes, which will then be emitted by QQmlDelegateModel so that
the view can transition in the same changes.
This flow is especially bad when adding/removing a new row in a table.
In that case, since the table looks like as a list, the list compositor will
need to update its own internal structures for each item in the new row. So
if you have 1000 columns, 1000 updates will be processed.
Even worse, since the list compositor create QQmlChangeSets for each item in
the row, the view will end up receiving 1000 signals about the change.
Combine this with the fact that QQmlDelegateModel contains a lot of
undocumented complex code for dealing with groups, which is not needed or
used by TableView (or ListView for that sake *), adding a new
QQmlTableInstanceModel that understands table models, is the right solution.
Auto testing the new class will be done from QQuickTableView, once it takes
it into use.
* Note: The fact that TableView/ListView is using QQmlDelegateModel internally
to communicate with the data model is a private implementation detail. The
application will never have access to this model (and can therefore not
create any groups on it etc). The application can, however, create its own
DelegateModel and assigns it to TableView/ListView. But this is a different
issue, and will continue to work as before.
Change-Id: If1c35c27e75f236161df84ecb1d919aa3050f5a0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/configure.json
src/qml/qml/qqmlengine.cpp
src/qml/types/qqmlmodelsmodule.cpp
src/qml/types/types.pri
Change-Id: I390112f8178c99b36741d3c40901e544c6daafaa
|
| |
| |
| |
| |
| | |
Change-Id: Ia24767b33a20bd70096bbb8b4f27729c788eb331
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It should be possible to switch it off without globally switching
animations off in Qt.
Change-Id: I3cae6b72b2c6b5c420f21625208de5e273839438
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|/
|
|
|
| |
Change-Id: Ic7ae1f601084ec07fe9e500516eb7092818451aa
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ie45a2f01def64941a323973ea27446e3fc85a72b
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The complete list of types is,
* QModelIndex
* QModelIndexList
* QPersistentModelIndex
* QItemSelection
* QItemSelectionRange
These wrapper types follow the QQmlValueType conventions and
allow us to expose the wrapped types without introducing
meta-type changes. They also allow to customize the string
type representation.
We also extend QQmlValueTypeFactory to return the meta-object
for those types.
Finally, we add two-way meta-type conversion between QModelIndex
and QPersistentModelIndex to get the same interoperability as
in C++ when passing an object of one type to a function requir-
ing an object of the other type.
Change-Id: Iaa7089ea576c901f12715ffa21e4d94603d53755
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
Provides a dynamic instantiation type which is not tied to visual items.
Change-Id: I42f7332b29b752dcc94979b6e0ec191fc76b96ef
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
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>
|