┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dolphinpart.cpp35
-rw-r--r--src/dolphinpart.h13
-rw-r--r--src/kitemviews/kfileitemmodel.h1
-rw-r--r--src/views/dolphinview.h1
4 files changed, 49 insertions, 1 deletions
diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp
index bf3d2a54f..a957fa665 100644
--- a/src/dolphinpart.cpp
+++ b/src/dolphinpart.cpp
@@ -45,6 +45,8 @@
#include "views/dolphinviewactionhandler.h"
#include "views/dolphinnewfilemenuobserver.h"
#include "views/dolphinremoteencoding.h"
+#include "kitemviews/kfileitemmodel.h"
+#include "kitemviews/private/kfileitemmodeldirlister.h"
#include <QActionGroup>
#include <QApplication>
@@ -120,6 +122,15 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
new DolphinPartFileInfoExtension(this);
new DolphinPartListingFilterExtension(this);
+ KDirLister* lister = m_view->m_model->m_dirLister;
+ if (lister) {
+ DolphinPartListingNotificationExtension* notifyExt = new DolphinPartListingNotificationExtension(this);
+ connect(lister, SIGNAL(newItems(KFileItemList)), notifyExt, SLOT(slotNewItems(KFileItemList)));
+ connect(lister, SIGNAL(itemsDeleted(KFileItemList)), notifyExt, SLOT(slotItemsDeleted(KFileItemList)));
+ } else {
+ kWarning() << "NULL KDirLister object! KParts::ListingNotificationExtension will NOT be supported";
+ }
+
createActions();
m_actionHandler->updateViewActions();
slotSelectionChanged(KFileItemList()); // initially disable selection-dependent actions
@@ -128,7 +139,6 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
// (sort of spacial navigation)
loadPlugins(this, this, componentData());
-
}
DolphinPart::~DolphinPart()
@@ -706,4 +716,27 @@ void DolphinPartListingFilterExtension::setFilter (KParts::ListingFilterExtensio
}
}
+////
+
+DolphinPartListingNotificationExtension::DolphinPartListingNotificationExtension(DolphinPart* part)
+ :KParts::ListingNotificationExtension(part)
+{
+}
+
+KParts::ListingNotificationExtension::NotificationEventTypes DolphinPartListingNotificationExtension::supportedNotificationEventTypes() const
+{
+ return (KParts::ListingNotificationExtension::ItemsAdded |
+ KParts::ListingNotificationExtension::ItemsDeleted);
+}
+
+void DolphinPartListingNotificationExtension::slotNewItems(const KFileItemList& items)
+{
+ emit listingEvent(KParts::ListingNotificationExtension::ItemsAdded, items);
+}
+
+void DolphinPartListingNotificationExtension::slotItemsDeleted(const KFileItemList& items)
+{
+ emit listingEvent(KParts::ListingNotificationExtension::ItemsDeleted, items);
+}
+
#include "dolphinpart.moc"
diff --git a/src/dolphinpart.h b/src/dolphinpart.h
index f9c0bbf62..6cf9fe324 100644
--- a/src/dolphinpart.h
+++ b/src/dolphinpart.h
@@ -297,4 +297,17 @@ private:
DolphinPart* m_part;
};
+class DolphinPartListingNotificationExtension : public KParts::ListingNotificationExtension
+{
+ Q_OBJECT
+
+public:
+ DolphinPartListingNotificationExtension(DolphinPart* part);
+ virtual NotificationEventTypes supportedNotificationEventTypes() const;
+
+public Q_SLOTS:
+ void slotNewItems(const KFileItemList&);
+ void slotItemsDeleted(const KFileItemList&);
+};
+
#endif /* DOLPHINPART_H */
diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h
index 958fa104b..5bcebce24 100644
--- a/src/kitemviews/kfileitemmodel.h
+++ b/src/kitemviews/kfileitemmodel.h
@@ -475,6 +475,7 @@ private:
friend class KFileItemModelRolesUpdater; // Accesses emitSortProgress() method
friend class KFileItemModelTest; // For unit testing
friend class KFileItemListViewTest; // For unit testing
+ friend class DolphinPart; // Accesses m_dirLister
};
inline bool KFileItemModel::isChildItem(int index) const
diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h
index 3f08c4480..3f71fdc54 100644
--- a/src/views/dolphinview.h
+++ b/src/views/dolphinview.h
@@ -764,6 +764,7 @@ private:
// For unit tests
friend class TestBase;
friend class DolphinDetailsViewTest;
+ friend class DolphinPart; // Accesses m_model
};
/// Allow using DolphinView::Mode in QVariant