#ifndef KFILEITEMMODELROLESUPDATER_H
#define KFILEITEMMODELROLESUPDATER_H
-#include <config-nepomuk.h>
+#include "dolphin_export.h"
+#include "kitemviews/kitemmodelbase.h"
#include <KFileItem>
-#include <kitemviews/kitemmodelbase.h>
-
-#include <libdolphin_export.h>
+#include <config-baloo.h>
#include <QObject>
#include <QSet>
#include <QSize>
#include <QStringList>
-class KDirWatch;
+class KDirectoryContentsCounter;
class KFileItemModel;
-class KJob;
class QPixmap;
class QTimer;
+class KOverlayIconPlugin;
-#ifdef HAVE_NEPOMUK
- namespace Nepomuk2
- {
- class ResourceWatcher;
- class Resource;
- }
-#else
- // Required for the slot applyChangedNepomukRoles() that
- // cannot be ifdefined due to moc.
- namespace Nepomuk2
+namespace KIO {
+ class PreviewJob;
+}
+
+#ifdef HAVE_BALOO
+ namespace Baloo
{
- class Resource;
+ class FileMonitor;
}
+ #include <Baloo/IndexerConfig>
#endif
/**
* 3. Finally, the entire process is repeated for any items that might have
* changed in the mean time.
*/
-class LIBDOLPHINPRIVATE_EXPORT KFileItemModelRolesUpdater : public QObject
+class DOLPHIN_EXPORT KFileItemModelRolesUpdater : public QObject
{
Q_OBJECT
public:
- explicit KFileItemModelRolesUpdater(KFileItemModel* model, QObject* parent = 0);
- virtual ~KFileItemModelRolesUpdater();
+ explicit KFileItemModelRolesUpdater(KFileItemModel* model, QObject* parent = nullptr);
+ ~KFileItemModelRolesUpdater() override;
void setIconSize(const QSize& size);
QSize iconSize() const;
private slots:
void slotItemsInserted(const KItemRangeList& itemRanges);
void slotItemsRemoved(const KItemRangeList& itemRanges);
- void slotItemsMoved(const KItemRange& itemRange, QList<int> movedToIndexes);
+ void slotItemsMoved(const KItemRange& itemRange, const QList<int> &movedToIndexes);
void slotItemsChanged(const KItemRangeList& itemRanges,
const QSet<QByteArray>& roles);
void slotSortRoleChanged(const QByteArray& current,
*/
void slotPreviewJobFinished();
+ /**
+ * Is invoked when one of the KOverlayIconPlugin emit the signal that an overlay has changed
+ */
+ void slotOverlaysChanged(const QUrl& url, const QStringList&);
+
/**
* Resolves the sort role of the next item in m_pendingSortRole, applies it
* to the model, and invokes itself if there are any pending items left. If
*/
void resolveRecentlyChangedItems();
- void applyChangedNepomukRoles(const Nepomuk2::Resource& resource);
+ void applyChangedBalooRoles(const QString& file);
+ void applyChangedBalooRolesForItem(const KFileItem& file);
- /**
- * Is invoked if a directory watched by KDirWatch got dirty. Updates
- * the "isExpandable"- and "size"-roles of the item that matches to
- * the given path.
- */
- void slotDirWatchDirty(const QString& path);
+ void slotDirectoryContentsCountReceived(const QString& path, int count, long size);
private:
/**
ResolveFast,
ResolveAll
};
- bool applyResolvedRoles(const KFileItem& item, ResolveHint hint);
- QHash<QByteArray, QVariant> rolesData(const KFileItem& item) const;
+ bool applyResolvedRoles(int index, ResolveHint hint);
+ QHash<QByteArray, QVariant> rolesData(const KFileItem& item);
/**
* @return The number of items of the path \a path.
// A new preview job will be started from them once the first one finishes.
KFileItemList m_pendingPreviewItems;
- KJob* m_previewJob;
+ KIO::PreviewJob* m_previewJob;
// When downloading or copying large files, the slot slotItemsChanged()
// will be called periodically within a quite short delay. To prevent
// Items which have not been changed repeatedly recently.
QSet<KFileItem> m_changedItems;
- KDirWatch* m_dirWatcher;
- mutable QSet<QString> m_watchedDirs; // Required as sadly KDirWatch does not offer a getter method
- // to get all watched directories.
-#ifdef HAVE_NEPOMUK
- Nepomuk2::ResourceWatcher* m_nepomukResourceWatcher;
- mutable QHash<QUrl, KUrl> m_nepomukUriItems;
+ KDirectoryContentsCounter* m_directoryContentsCounter;
+
+ QList<KOverlayIconPlugin*> m_overlayIconsPlugin;
+
+#ifdef HAVE_BALOO
+ Baloo::FileMonitor* m_balooFileMonitor;
+ Baloo::IndexerConfig m_balooConfig;
#endif
};