]> cloud.milkyroute.net Git - dolphin.git/blob - src/dolphinpart_ext.cpp
Merge branch 'release/20.08' into master
[dolphin.git] / src / dolphinpart_ext.cpp
1 /* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2012 Dawit Alemayehu <adawit@kde.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7 #include "dolphinpart_ext.h"
8
9 #include "dolphinpart.h"
10 #include "views/dolphinview.h"
11
12 DolphinPartBrowserExtension::DolphinPartBrowserExtension(DolphinPart* part)
13 :KParts::BrowserExtension( part )
14 ,m_part(part)
15 {
16
17 }
18
19 void DolphinPartBrowserExtension::restoreState(QDataStream &stream)
20 {
21 KParts::BrowserExtension::restoreState(stream);
22 m_part->view()->restoreState(stream);
23 }
24
25 void DolphinPartBrowserExtension::saveState(QDataStream &stream)
26 {
27 KParts::BrowserExtension::saveState(stream);
28 m_part->view()->saveState(stream);
29 }
30
31 void DolphinPartBrowserExtension::cut()
32 {
33 m_part->view()->cutSelectedItemsToClipboard();
34 }
35
36 void DolphinPartBrowserExtension::copy()
37 {
38 m_part->view()->copySelectedItemsToClipboard();
39 }
40
41 void DolphinPartBrowserExtension::paste()
42 {
43 m_part->view()->paste();
44 }
45
46 void DolphinPartBrowserExtension::pasteTo(const QUrl&)
47 {
48 m_part->view()->pasteIntoFolder();
49 }
50
51 void DolphinPartBrowserExtension::reparseConfiguration()
52 {
53 m_part->view()->readSettings();
54 }
55
56
57 DolphinPartFileInfoExtension::DolphinPartFileInfoExtension(DolphinPart* part)
58 :KParts::FileInfoExtension(part)
59 ,m_part(part)
60 {
61 }
62
63 bool DolphinPartFileInfoExtension::hasSelection() const
64 {
65 return m_part->view()->selectedItemsCount() > 0;
66 }
67
68 KParts::FileInfoExtension::QueryModes DolphinPartFileInfoExtension::supportedQueryModes() const
69 {
70 return (KParts::FileInfoExtension::AllItems | KParts::FileInfoExtension::SelectedItems);
71 }
72
73 KFileItemList DolphinPartFileInfoExtension::queryFor(KParts::FileInfoExtension::QueryMode mode) const
74 {
75 KFileItemList list;
76
77 if (mode == KParts::FileInfoExtension::None)
78 return list;
79
80 if (!(supportedQueryModes() & mode))
81 return list;
82
83 switch (mode) {
84 case KParts::FileInfoExtension::SelectedItems:
85 if (hasSelection())
86 return m_part->view()->selectedItems();
87 break;
88 case KParts::FileInfoExtension::AllItems:
89 return m_part->view()->items();
90 default:
91 break;
92 }
93
94 return list;
95 }
96
97 DolphinPartListingFilterExtension::DolphinPartListingFilterExtension(DolphinPart* part)
98 : KParts::ListingFilterExtension(part)
99 , m_part(part)
100 {
101 }
102
103 KParts::ListingFilterExtension::FilterModes DolphinPartListingFilterExtension::supportedFilterModes() const
104 {
105 return (KParts::ListingFilterExtension::MimeType |
106 KParts::ListingFilterExtension::SubString |
107 KParts::ListingFilterExtension::WildCard);
108 }
109
110 bool DolphinPartListingFilterExtension::supportsMultipleFilters(KParts::ListingFilterExtension::FilterMode mode) const
111 {
112 if (mode == KParts::ListingFilterExtension::MimeType)
113 return true;
114
115 return false;
116 }
117
118 QVariant DolphinPartListingFilterExtension::filter(KParts::ListingFilterExtension::FilterMode mode) const
119 {
120 QVariant result;
121
122 switch (mode) {
123 case KParts::ListingFilterExtension::MimeType:
124 result = m_part->view()->mimeTypeFilters();
125 break;
126 case KParts::ListingFilterExtension::SubString:
127 case KParts::ListingFilterExtension::WildCard:
128 result = m_part->view()->nameFilter();
129 break;
130 default:
131 break;
132 }
133
134 return result;
135 }
136
137 void DolphinPartListingFilterExtension::setFilter(KParts::ListingFilterExtension::FilterMode mode, const QVariant& filter)
138 {
139 switch (mode) {
140 case KParts::ListingFilterExtension::MimeType:
141 m_part->view()->setMimeTypeFilters(filter.toStringList());
142 break;
143 case KParts::ListingFilterExtension::SubString:
144 case KParts::ListingFilterExtension::WildCard:
145 m_part->view()->setNameFilter(filter.toString());
146 break;
147 default:
148 break;
149 }
150 }
151
152 ////
153
154 DolphinPartListingNotificationExtension::DolphinPartListingNotificationExtension(DolphinPart* part)
155 : KParts::ListingNotificationExtension(part)
156 {
157 }
158
159 KParts::ListingNotificationExtension::NotificationEventTypes DolphinPartListingNotificationExtension::supportedNotificationEventTypes() const
160 {
161 return (KParts::ListingNotificationExtension::ItemsAdded |
162 KParts::ListingNotificationExtension::ItemsDeleted);
163 }
164
165 void DolphinPartListingNotificationExtension::slotNewItems(const KFileItemList& items)
166 {
167 emit listingEvent(KParts::ListingNotificationExtension::ItemsAdded, items);
168 }
169
170 void DolphinPartListingNotificationExtension::slotItemsDeleted(const KFileItemList& items)
171 {
172 emit listingEvent(KParts::ListingNotificationExtension::ItemsDeleted, items);
173 }
174