Skip to end of metadata
Go to start of metadata

Introduction

Big lists are lists that are (or can be) too large to be transferred between the service and client. Instead the client must watch the list through an interface.

Toolkit APIs

Qt provides the QAbstractItemModel interface (or the simplified QAbstractListModel)

GTK+ uses the GListModel interface

We currently have no stakeholder representing HTML5 nor any specific web application framework.

Existing Big Lists in the GENIVI APIs

This is an (incomplete) list of big lists in the GENIVI compliance APIs.

Concepts

T.B.D.

GListModelQAbstractListModel

get_item_type, returns the type of the items in the list

roleNames, the roles (attributes) available for each row

 

get_n_items, returns the number of items in the list 

rowCount, the number of rows

canFetchMore / fetchMore, function pair used to dynamically add more data to the end of the list as the end is reached

get_item(position), returns an object representing the given item

 

For data changes inside an item, the view must connect to the notify signal of each item.

data(index, role), function to read out information about a given row

(signal) dataChanged(fromIndex, toIndex, roles), signal emitted when the a given range of data is changed

(signal) items_changed(pos, removed, added), signal emitted when the list contents changes

(signal) rowsInserted(first, last), signal emitted when are added

(signal) rowsRemoved(first, last), signal emitted when rows are removed

(signal) rowsMoved(start, end, destination), signal emitted when rows are moved

(signal) modelReset, signal emitted when the entire contents of the model is reset

 

The insert, remove, move and reset signals are preceded by a corresponding rowsAboutToBeXxx signal warning the view that a change is imminent.

  • No labels