File indexing completed on 2024-03-24 17:22:44

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 #include "dolphinpart_ext.h"
0008 
0009 #include "dolphinpart.h"
0010 #include "views/dolphinview.h"
0011 
0012 DolphinPartBrowserExtension::DolphinPartBrowserExtension(DolphinPart *part)
0013     : KParts::NavigationExtension(part)
0014     , m_part(part)
0015 {
0016 }
0017 
0018 void DolphinPartBrowserExtension::restoreState(QDataStream &stream)
0019 {
0020     KParts::NavigationExtension::restoreState(stream);
0021     m_part->view()->restoreState(stream);
0022 }
0023 
0024 void DolphinPartBrowserExtension::saveState(QDataStream &stream)
0025 {
0026     KParts::NavigationExtension::saveState(stream);
0027     m_part->view()->saveState(stream);
0028 }
0029 
0030 void DolphinPartBrowserExtension::cut()
0031 {
0032     m_part->view()->cutSelectedItemsToClipboard();
0033 }
0034 
0035 void DolphinPartBrowserExtension::copy()
0036 {
0037     m_part->view()->copySelectedItemsToClipboard();
0038 }
0039 
0040 void DolphinPartBrowserExtension::paste()
0041 {
0042     m_part->view()->paste();
0043 }
0044 
0045 void DolphinPartBrowserExtension::pasteTo(const QUrl &)
0046 {
0047     m_part->view()->pasteIntoFolder();
0048 }
0049 
0050 void DolphinPartBrowserExtension::reparseConfiguration()
0051 {
0052     m_part->view()->readSettings();
0053 }
0054 
0055 DolphinPartFileInfoExtension::DolphinPartFileInfoExtension(DolphinPart *part)
0056     : KParts::FileInfoExtension(part)
0057     , m_part(part)
0058 {
0059 }
0060 
0061 bool DolphinPartFileInfoExtension::hasSelection() const
0062 {
0063     return m_part->view()->selectedItemsCount() > 0;
0064 }
0065 
0066 KParts::FileInfoExtension::QueryModes DolphinPartFileInfoExtension::supportedQueryModes() const
0067 {
0068     return (KParts::FileInfoExtension::AllItems | KParts::FileInfoExtension::SelectedItems);
0069 }
0070 
0071 KFileItemList DolphinPartFileInfoExtension::queryFor(KParts::FileInfoExtension::QueryMode mode) const
0072 {
0073     KFileItemList list;
0074 
0075     if (mode == KParts::FileInfoExtension::None)
0076         return list;
0077 
0078     if (!(supportedQueryModes() & mode))
0079         return list;
0080 
0081     switch (mode) {
0082     case KParts::FileInfoExtension::SelectedItems:
0083         if (hasSelection())
0084             return m_part->view()->selectedItems();
0085         break;
0086     case KParts::FileInfoExtension::AllItems:
0087         return m_part->view()->items();
0088     default:
0089         break;
0090     }
0091 
0092     return list;
0093 }
0094 
0095 DolphinPartListingFilterExtension::DolphinPartListingFilterExtension(DolphinPart *part)
0096     : KParts::ListingFilterExtension(part)
0097     , m_part(part)
0098 {
0099 }
0100 
0101 KParts::ListingFilterExtension::FilterModes DolphinPartListingFilterExtension::supportedFilterModes() const
0102 {
0103     return (KParts::ListingFilterExtension::MimeType | KParts::ListingFilterExtension::SubString | KParts::ListingFilterExtension::WildCard);
0104 }
0105 
0106 bool DolphinPartListingFilterExtension::supportsMultipleFilters(KParts::ListingFilterExtension::FilterMode mode) const
0107 {
0108     if (mode == KParts::ListingFilterExtension::MimeType)
0109         return true;
0110 
0111     return false;
0112 }
0113 
0114 QVariant DolphinPartListingFilterExtension::filter(KParts::ListingFilterExtension::FilterMode mode) const
0115 {
0116     QVariant result;
0117 
0118     switch (mode) {
0119     case KParts::ListingFilterExtension::MimeType:
0120         result = m_part->view()->mimeTypeFilters();
0121         break;
0122     case KParts::ListingFilterExtension::SubString:
0123     case KParts::ListingFilterExtension::WildCard:
0124         result = m_part->view()->nameFilter();
0125         break;
0126     default:
0127         break;
0128     }
0129 
0130     return result;
0131 }
0132 
0133 void DolphinPartListingFilterExtension::setFilter(KParts::ListingFilterExtension::FilterMode mode, const QVariant &filter)
0134 {
0135     switch (mode) {
0136     case KParts::ListingFilterExtension::MimeType:
0137         m_part->view()->setMimeTypeFilters(filter.toStringList());
0138         break;
0139     case KParts::ListingFilterExtension::SubString:
0140     case KParts::ListingFilterExtension::WildCard:
0141         m_part->view()->setNameFilter(filter.toString());
0142         break;
0143     default:
0144         break;
0145     }
0146 }
0147 
0148 ////
0149 
0150 DolphinPartListingNotificationExtension::DolphinPartListingNotificationExtension(DolphinPart *part)
0151     : KParts::ListingNotificationExtension(part)
0152 {
0153 }
0154 
0155 KParts::ListingNotificationExtension::NotificationEventTypes DolphinPartListingNotificationExtension::supportedNotificationEventTypes() const
0156 {
0157     return (KParts::ListingNotificationExtension::ItemsAdded | KParts::ListingNotificationExtension::ItemsDeleted);
0158 }
0159 
0160 void DolphinPartListingNotificationExtension::slotNewItems(const KFileItemList &items)
0161 {
0162     Q_EMIT listingEvent(KParts::ListingNotificationExtension::ItemsAdded, items);
0163 }
0164 
0165 void DolphinPartListingNotificationExtension::slotItemsDeleted(const KFileItemList &items)
0166 {
0167     Q_EMIT listingEvent(KParts::ListingNotificationExtension::ItemsDeleted, items);
0168 }
0169 
0170 #include "moc_dolphinpart_ext.cpp"