Commit Graph

32 Commits

Author SHA1 Message Date
Marco Martin
86908c9c31 avoid a model reset in certain conditions
should be slightly faster and avoid some of the flickering (items deletion and recreation) in ListView
2012-02-29 14:38:14 +01:00
Marco Martin
215306ee13 give the default models the get(row) function
some default components expect models to provide it
2011-11-25 18:48:42 +01:00
Marco Martin
7a325f4658 i_p suffix only for stuff not exported from qml
general rule:
if the header if from a class that will be made available as qml type, foo.h, otherwise foo_p.h
2011-11-01 19:27:55 +01:00
Sebastian Kügler
5a4bef41ef Use Qt::DisplayRole when the lookup fails
This makes it do the right thing by default, and fixes filtering for
QStringListModels (and probably a few other ones as well).
2011-10-30 00:53:48 +02:00
Aaron Seigo
b0783ce5f7 a slew of clean ups and improvements to the code
DataSource still needs to be made to not keep a private copy of all the data
2011-09-22 22:45:26 +02:00
Marco Martin
27c857db82 pre-populate the model if needed
since DataModel is a consumer of a consumer, in the case DataSource as already data, populate the model with it without waiting for the signal
2011-09-15 23:05:44 +02:00
Marco Martin
b68fb0a060 be sure to include ALL role names
some dataengines can have a different set of keys for each item (ie metadata dataengine) the whole mapped roles must be the complete superset
this is not very efficient, but unfortunately is necessary.
(another reason  why DataContainers should become models)
2011-09-12 21:34:55 +02:00
Marco Martin
e8432fe351 don't reset the model if the source isn't ours 2011-07-25 19:11:36 +02:00
Marco Martin
7c947d8e96 reset models in the proper way 2011-06-24 23:54:07 +02:00
Marco Martin
f257efe7f0 fix item removal with one source per item 2011-06-16 19:29:58 +02:00
Marco Martin
2abb295695 revert old deferred role update hack 2011-04-17 20:46:36 +02:00
Marco Martin
98396208dc FEATURE: sourceFilter to exclude certain sources
sourceFilter to exclude certain from the model with a regexp
2011-04-09 20:16:36 +02:00
Marco Martin
2a54c9c416 use the engine access in DeclarativeWidget
now DeclarativeWidget itself steals the scriptengine, so use it instead of having the hack there
2011-04-07 22:39:18 +02:00
Montel Laurent
9a07bb2f93 Use const ref 2011-04-03 15:29:54 +02:00
Marco Martin
145bcf4045 always set a DataEngineSource role in the model
FEATURE: each item will have a DataEngineSource role that makes possible to identify for delegates to what source that data belongs
2011-02-19 14:12:58 +01:00
Marco Martin
45c6ac7dfb don't remapp all roles each time, keep the old ones, with the same role number/name mapping: avoids role shuffle after an update
svn path=/trunk/KDE/kdebase/runtime/; revision=1216034
2011-01-20 22:03:52 +00:00
Marco Martin
1dcc19c800 delay the reset signal after a setFilterRegExp: seems to make views behave a bit better:
avoids "holes" and some crash

svn path=/trunk/KDE/kdebase/runtime/; revision=1204228
2010-12-06 13:28:45 +00:00
Marco Martin
933b88e340 a new property for models: count (another thing badly missing from QML, where is necessary to hook it up to a view to figure out how many items there are)
svn path=/trunk/KDE/kdebase/runtime/; revision=1204004
2010-12-05 22:23:13 +00:00
Marco Martin
681000ff05 another fixme :/
svn path=/trunk/KDE/kdebase/runtime/; revision=1194426
2010-11-08 23:10:16 +00:00
Marco Martin
29f4ac0d99 propagate with signal sources removal, connection and disconnection
svn path=/trunk/KDE/kdebase/runtime/; revision=1194425
2010-11-08 23:07:25 +00:00
Marco Martin
6165b3cf6e build
svn path=/trunk/KDE/kdebase/runtime/; revision=1194410
2010-11-08 22:44:37 +00:00
Marco Martin
befceb8dee massive change in DataSource:
* possible to connect multiple sources
* use a normal QMap instead of the quirky qdeclarativepropertymap
* DataModel can be connected to multiple sources as well
* possible to use them with dataengines such as activities and tasks where the first level keys are the "roles" themselves

(all examples in playground have to be adapted)

svn path=/trunk/KDE/kdebase/runtime/; revision=1194216
2010-11-08 10:27:36 +00:00
Marco Martin
7e0e77b970 case insensitive filter expressions
svn path=/trunk/KDE/kdebase/runtime/; revision=1191022
2010-10-29 12:27:38 +00:00
Marco Martin
0394675156 SortModel->SortFilterModel
svn path=/trunk/KDE/kdebase/runtime/; revision=1190655
2010-10-28 13:10:10 +00:00
Marco Martin
1b1ea1a1b3 export separately DataModel and SortModel
svn path=/trunk/KDE/kdebase/runtime/; revision=1190653
2010-10-28 13:06:40 +00:00
Laurent Montel
337cd237f1 const'ify
svn path=/trunk/KDE/kdebase/runtime/; revision=1190586
2010-10-28 07:44:05 +00:00
Marco Martin
a84b230ddc sortOrder/setSortOrder property
svn path=/trunk/KDE/kdebase/runtime/; revision=1190489
2010-10-27 21:19:03 +00:00
Marco Martin
ab064bedfa put the model into a QSortFilterProxyModel to mke possible to sort and filter trough a regular expression
svn path=/trunk/KDE/kdebase/runtime/; revision=1190082
2010-10-26 21:19:04 +00:00
Marco Martin
a780189547 make work both VariantMaps and QVariantHash
svn path=/trunk/KDE/kdebase/runtime/; revision=1190034
2010-10-26 17:32:08 +00:00
Marco Martin
7ec308a228 don't crash if the item list is empty
svn path=/trunk/KDE/kdebase/runtime/; revision=1190003
2010-10-26 15:48:39 +00:00
Marco Martin
27bff00756 the previous way to have models didn't work for most engines:
some have many keys one for each item.
bind a new DataModel into QML that will be associated to a specific DataSource and a key pattern

an exact one like "items" of rss
or a partial regexp one like "KnowledgeBase-[\d]*" like the ocs engine

in this way is not necessary to change how those dataengine works and is possible to use them in QML without headaches

svn path=/trunk/KDE/kdebase/runtime/; revision=1189953
2010-10-26 13:18:19 +00:00
Marco Martin
7ee1ebf5ac a crazy experiment: if one of the dataitems is a QVariantList of QVariantMaps (like many dataengines, like rss, microblog, opendesktop...)
make it available as a QAbstractModel, so will be possible to categorize it
(considering to put it behind a qsortfilterproxymodel to make it easy to do filtering)

svn path=/trunk/KDE/kdebase/runtime/; revision=1189920
2010-10-26 12:01:59 +00:00