Features in KDE-PIM
Transaction support and a more or less complete rewrite of the notification handling:
- Add methods to begin, abort and commit a transaction to DataStore.
- Add a QMutexLocker-like class for convenient transaction handling which aborts the current transaction when going out of scope.
- Use transactions for most commands that change the database, they are atomic now, ie. either succeed completely or don't change anything at all.
- Collect notifications during a transaction and emit them only if the transaction has been successfully committed.
- Add notifications for item and collection changes.
- Remove server-side notification filtering, it's not really needed since every item will be monitored at least twice anyway (by its resource and a search provider).
- Include resource and mimetype in the notification signals, allowing filtering by resource and by mimetype on the client side. This will be needed by resources and search providers.