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