File indexing completed on 2024-04-14 15:49:28

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