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"