20 #ifndef ENTITYTREEMODELPRIVATE_H
21 #define ENTITYTREEMODELPRIVATE_H
23 #include <akonadi/item.h>
27 #include <akonadi/collectionfetchjob.h>
28 #include <akonadi/itemfetchscope.h>
29 #include <akonadi/mimetypechecker.h>
31 #include "entitytreemodel.h"
33 #include "akonadiprivate_export.h"
83 void fetchItems(
const Collection &collection );
88 void itemsFetched( KJob* );
103 void monitoredItemChanged(
const Akonadi::Item&,
const QSet<QByteArray>& );
109 void monitoredMimeTypeChanged(
const QString &mimeType,
bool monitored );
111 void monitoredItemsChanged(
const Akonadi::Item &item,
bool monitored );
112 void monitoredResourcesChanged(
const QByteArray &resource,
bool monitored );
120 QStringList childCollectionNames(
const Collection &collection )
const;
130 void beginResetModel();
131 void endResetModel();
141 void changeFetchState(
const Collection &parent );
142 void agentInstanceAdvancedStatusChanged(
const QString&,
const QVariantMap& );
145 QHash<Collection::Id, Collection> m_collections;
146 QHash<Entity::Id, Item> m_items;
147 QHash<Collection::Id, QList<Node*> > m_childEntities;
148 QSet<Collection::Id> m_populatedCols;
149 QSet<Collection::Id> m_collectionsWithoutItems;
151 QVector<Entity::Id> m_pendingCutItems;
152 QVector<Entity::Id> m_pendingCutCollections;
153 mutable QSet<Collection::Id> m_pendingCollectionRetrieveJobs;
158 QString m_rootCollectionDisplayName;
159 QStringList m_mimeTypeFilter;
163 bool m_includeUnsubscribed;
164 bool m_includeStatistics;
165 bool m_showRootCollection;
166 bool m_collectionTreeFetched;
167 QHash<Collection::Id, uint> m_collectionSyncProgress;
179 void startFirstListJob();
181 void serverStarted();
183 void monitoredItemsRetrieved( KJob* job );
184 void firstFetchJobDone( KJob *job );
185 void rootFetchJobDone( KJob *job );
186 void fetchJobDone( KJob *job );
187 void updateJobDone( KJob *job );
188 void pasteJobDone( KJob *job );
193 template<Node::Type Type>
194 int indexOf(
const QList<Node*> &nodes,
Entity::Id id )
const
197 foreach (
const Node *node, nodes ) {
198 if ( node->id ==
id && node->type == Type )
213 return "FetchCollectionId";
220 void fetchTopLevelCollections() const;
221 void topLevelCollectionsFetched( const Akonadi::
Collection::List& collectionList );
226 bool isHidden( const
Entity &entity, Node::Type type ) const;
229 bool isHidden( const T &entity ) const;
231 bool m_showSystemEntities;
253 QList<Node*>::iterator removeItems( QList<Node*>::iterator it, QList<Node*>::iterator end,
263 QList<Node*>::iterator skipCollections( QList<Node*>::iterator it, QList<Node*>::iterator end,
int *pos );
268 void dataChanged( const QModelIndex &top, const QModelIndex &bottom );
273 QModelIndex indexForCollection( const
Collection &collection ) const;
278 QModelIndexList indexesForItem( const
Item &item ) const;
288 Item itemForId(
Item::Id
id ) const;
290 bool canFetchMore( const QModelIndex & parent ) const;