From 98a057260f51b8af2cf3f933119e08590cc0639b Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 21 Oct 2015 09:57:33 +0200 Subject: Moved the ListModelResult to a separate file --- examples/client/main.cpp | 84 ++---------------------------------------------- 1 file changed, 2 insertions(+), 82 deletions(-) (limited to 'examples') diff --git a/examples/client/main.cpp b/examples/client/main.cpp index e96ddb6..269f1aa 100644 --- a/examples/client/main.cpp +++ b/examples/client/main.cpp @@ -20,12 +20,10 @@ #include #include #include -#include #include "common/clientapi.h" -#include "common/resultprovider.h" #include "common/resource.h" -#include "common/synclistresult.h" +#include "common/listmodelresult.h" #include "common/storage.h" #include "common/domain/event.h" #include "console.h" @@ -37,10 +35,6 @@ #include #include -enum Roles { - DomainObjectRole = Qt::UserRole + 1 -}; - template class View : public QWidget { @@ -85,80 +79,6 @@ public: }; -template -class AkonadiListModel : public QAbstractListModel -{ -public: - AkonadiListModel(const QSharedPointer > &emitter, const QByteArray &property) - :QAbstractListModel(), - mEmitter(emitter), - mProperty(property) - { - emitter->onAdded([this, property](const T &value) { - const auto keys = mEntities.keys(); - int index = 0; - for (; index < keys.size(); index++) { - if (value->identifier() < keys.at(index)) { - break; - } - } - beginInsertRows(QModelIndex(), index, index); - mEntities.insert(value->identifier(), value); - endInsertRows(); - }); - emitter->onModified([this, property](const T &value) { - mEntities.remove(value->identifier()); - mEntities.insert(value->identifier(), value); - //FIXME - // emit dataChanged(); - }); - emitter->onRemoved([this, property](const T &value) { - auto index = mEntities.keys().indexOf(value->identifier()); - beginRemoveRows(QModelIndex(), index, index); - mEntities.remove(value->identifier()); - endRemoveRows(); - }); - emitter->onInitialResultSetComplete([this]() { - }); - emitter->onComplete([this]() { - // qDebug() << "COMPLETE"; - mEmitter.clear(); - }); - emitter->onClear([this]() { - // qDebug() << "CLEAR"; - beginResetModel(); - mEntities.clear(); - endResetModel(); - }); - } - - int rowCount(const QModelIndex &parent = QModelIndex()) const - { - return mEntities.size(); - } - - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const - { - if (index.row() >= mEntities.size()) { - qWarning() << "Out of bounds access"; - return QVariant(); - } - if (role == Qt::DisplayRole) { - auto entity = mEntities.value(mEntities.keys().at(index.row())); - return entity->getProperty(mProperty).toString() + entity->identifier(); - } - if (role == DomainObjectRole) { - return QVariant::fromValue(mEntities.value(mEntities.keys().at(index.row()))); - } - return QVariant(); - } - -private: - QSharedPointer > mEmitter; - QMap mEntities; - QByteArray mProperty; -}; - int main(int argc, char *argv[]) { QApplication app(argc, argv); @@ -201,7 +121,7 @@ int main(int argc, char *argv[]) query.processAll = false; query.liveQuery = true; - auto model = QSharedPointer >::create(Akonadi2::Store::load(query), "summary"); + auto model = QSharedPointer >::create(Akonadi2::Store::load(query), "summary"); auto view = QSharedPointer >::create(model.data()); return app.exec(); -- cgit v1.2.3