sailfishos / nemo-qml-plugin-calendar

BSD 3-Clause "New" or "Revised" License
0 stars 6 forks source link

[nemo-qml-plugin-calendar] Add a search model. #45

Closed dcaliste closed 1 year ago

dcaliste commented 1 year ago

Add a search function to CalendarManager. It is based on ExtendedStorage::search() method. The worker is loading all matching incidences and retrieving the corresponding instance identifiers. The later are passed back to the manager via a new searchResults signal. While the former are sent back viw the existing dataLoaded signal.

Also add a model listing occurrence of a search query. This model is based on a EventListModel where the identifiers are given as the result of a search call.

@pvuorela, this is based on sailfishos/mkcal#49 and aims at providing a list model for search results. It is conveniently based on evntlistmodel, since such model already provide event listing from instance identifiers. I still keep this as WIP since I would like to add a loading property to the eventlistmodel. But having it public already should help to see how the mkcal PR is working in reality.

dcaliste commented 1 year ago

I've added a filter on calendar visibility in the worker thread to send to the manager only visible events.

dcaliste commented 1 year ago

I've also added a loading attribute to the EventListModel, so one can display a busy indicator while the model is searching.

dcaliste commented 1 year ago

I've added a commit adding a limit property to the search model. It has no sense in my opinion to put it in the EventListModel since the later is not sorted while the former is.

dcaliste commented 1 year ago

Rebased on latest master changes.

dcaliste commented 1 year ago

I've removed the WIP notice.

There may be some modification still to properly handle next occurrence of recurring events, but it can be done in a later PR.