File indexing completed on 2024-04-28 13:41:38
0001 /* This file is part of the KDE project 0002 * SPDX-FileCopyrightText: 2012 Dawit Alemayehu <adawit@kde.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef DOLPHINPART_EXT_H 0008 #define DOLPHINPART_EXT_H 0009 0010 #include <KParts/FileInfoExtension> 0011 #include <KParts/ListingFilterExtension> 0012 #include <KParts/ListingNotificationExtension> 0013 #include <KParts/NavigationExtension> 0014 0015 #include <QUrl> 0016 0017 class DolphinPart; 0018 0019 class DolphinPartBrowserExtension : public KParts::NavigationExtension 0020 { 0021 Q_OBJECT 0022 public: 0023 explicit DolphinPartBrowserExtension(DolphinPart *part); 0024 void restoreState(QDataStream &stream) override; 0025 void saveState(QDataStream &stream) override; 0026 0027 public Q_SLOTS: 0028 void cut(); 0029 void copy(); 0030 void paste(); 0031 void pasteTo(const QUrl &); 0032 void reparseConfiguration(); 0033 0034 private: 0035 DolphinPart *m_part; 0036 }; 0037 0038 class DolphinPartFileInfoExtension : public KParts::FileInfoExtension 0039 { 0040 Q_OBJECT 0041 0042 public: 0043 explicit DolphinPartFileInfoExtension(DolphinPart *part); 0044 0045 QueryModes supportedQueryModes() const override; 0046 bool hasSelection() const override; 0047 0048 KFileItemList queryFor(QueryMode mode) const override; 0049 0050 private: 0051 DolphinPart *m_part; 0052 }; 0053 0054 class DolphinPartListingFilterExtension : public KParts::ListingFilterExtension 0055 { 0056 Q_OBJECT 0057 0058 public: 0059 explicit DolphinPartListingFilterExtension(DolphinPart *part); 0060 FilterModes supportedFilterModes() const override; 0061 bool supportsMultipleFilters(FilterMode mode) const override; 0062 QVariant filter(FilterMode mode) const override; 0063 void setFilter(FilterMode mode, const QVariant &filter) override; 0064 0065 private: 0066 DolphinPart *m_part; 0067 }; 0068 0069 class DolphinPartListingNotificationExtension : public KParts::ListingNotificationExtension 0070 { 0071 Q_OBJECT 0072 0073 public: 0074 explicit DolphinPartListingNotificationExtension(DolphinPart *part); 0075 NotificationEventTypes supportedNotificationEventTypes() const override; 0076 0077 public Q_SLOTS: 0078 void slotNewItems(const KFileItemList &); 0079 void slotItemsDeleted(const KFileItemList &); 0080 }; 0081 0082 #endif