]> cloud.milkyroute.net Git - dolphin.git/blob - src/dolphinpart_ext.cpp
0352645ead17b0b5dd809e902fca0d8129758e2b
[dolphin.git] / src / dolphinpart_ext.cpp
1 /* This file is part of the KDE project
2 * Copyright (c) 2012 Dawit Alemayehu <adawit@kde.org>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18 */
19
20 #include "dolphinpart_ext.h"
21
22 #include "dolphinpart.h"
23 #include "views/dolphinview.h"
24
25 DolphinPartBrowserExtension::DolphinPartBrowserExtension(DolphinPart* part)
26 :KParts::BrowserExtension( part )
27 ,m_part(part)
28 {
29
30 }
31
32 void DolphinPartBrowserExtension::restoreState(QDataStream &stream)
33 {
34 KParts::BrowserExtension::restoreState(stream);
35 m_part->view()->restoreState(stream);
36 }
37
38 void DolphinPartBrowserExtension::saveState(QDataStream &stream)
39 {
40 KParts::BrowserExtension::saveState(stream);
41 m_part->view()->saveState(stream);
42 }
43
44 void DolphinPartBrowserExtension::cut()
45 {
46 m_part->view()->cutSelectedItems();
47 }
48
49 void DolphinPartBrowserExtension::copy()
50 {
51 m_part->view()->copySelectedItemsToClipboard();
52 }
53
54 void DolphinPartBrowserExtension::paste()
55 {
56 m_part->view()->paste();
57 }
58
59 void DolphinPartBrowserExtension::pasteTo(const QUrl&)
60 {
61 m_part->view()->pasteIntoFolder();
62 }
63
64 void DolphinPartBrowserExtension::reparseConfiguration()
65 {
66 m_part->view()->readSettings();
67 }
68
69
70 DolphinPartFileInfoExtension::DolphinPartFileInfoExtension(DolphinPart* part)
71 :KParts::FileInfoExtension(part)
72 ,m_part(part)
73 {
74 }
75
76 bool DolphinPartFileInfoExtension::hasSelection() const
77 {
78 return m_part->view()->selectedItemsCount() > 0;
79 }
80
81 KParts::FileInfoExtension::QueryModes DolphinPartFileInfoExtension::supportedQueryModes() const
82 {
83 return (KParts::FileInfoExtension::AllItems | KParts::FileInfoExtension::SelectedItems);
84 }
85
86 KFileItemList DolphinPartFileInfoExtension::queryFor(KParts::FileInfoExtension::QueryMode mode) const
87 {
88 KFileItemList list;
89
90 if (mode == KParts::FileInfoExtension::None)
91 return list;
92
93 if (!(supportedQueryModes() & mode))
94 return list;
95
96 switch (mode) {
97 case KParts::FileInfoExtension::SelectedItems:
98 if (hasSelection())
99 return m_part->view()->selectedItems();
100 break;
101 case KParts::FileInfoExtension::AllItems:
102 return m_part->view()->items();
103 default:
104 break;
105 }
106
107 return list;
108 }
109
110 DolphinPartListingFilterExtension::DolphinPartListingFilterExtension(DolphinPart* part)
111 : KParts::ListingFilterExtension(part)
112 , m_part(part)
113 {
114 }
115
116 KParts::ListingFilterExtension::FilterModes DolphinPartListingFilterExtension::supportedFilterModes() const
117 {
118 return (KParts::ListingFilterExtension::MimeType |
119 KParts::ListingFilterExtension::SubString |
120 KParts::ListingFilterExtension::WildCard);
121 }
122
123 bool DolphinPartListingFilterExtension::supportsMultipleFilters(KParts::ListingFilterExtension::FilterMode mode) const
124 {
125 if (mode == KParts::ListingFilterExtension::MimeType)
126 return true;
127
128 return false;
129 }
130
131 QVariant DolphinPartListingFilterExtension::filter(KParts::ListingFilterExtension::FilterMode mode) const
132 {
133 QVariant result;
134
135 switch (mode) {
136 case KParts::ListingFilterExtension::MimeType:
137 result = m_part->view()->mimeTypeFilters();
138 break;
139 case KParts::ListingFilterExtension::SubString:
140 case KParts::ListingFilterExtension::WildCard:
141 result = m_part->view()->nameFilter();
142 break;
143 default:
144 break;
145 }
146
147 return result;
148 }
149
150 void DolphinPartListingFilterExtension::setFilter(KParts::ListingFilterExtension::FilterMode mode, const QVariant& filter)
151 {
152 switch (mode) {
153 case KParts::ListingFilterExtension::MimeType:
154 m_part->view()->setMimeTypeFilters(filter.toStringList());
155 break;
156 case KParts::ListingFilterExtension::SubString:
157 case KParts::ListingFilterExtension::WildCard:
158 m_part->view()->setNameFilter(filter.toString());
159 break;
160 default:
161 break;
162 }
163 }
164
165 ////
166
167 DolphinPartListingNotificationExtension::DolphinPartListingNotificationExtension(DolphinPart* part)
168 : KParts::ListingNotificationExtension(part)
169 {
170 }
171
172 KParts::ListingNotificationExtension::NotificationEventTypes DolphinPartListingNotificationExtension::supportedNotificationEventTypes() const
173 {
174 return (KParts::ListingNotificationExtension::ItemsAdded |
175 KParts::ListingNotificationExtension::ItemsDeleted);
176 }
177
178 void DolphinPartListingNotificationExtension::slotNewItems(const KFileItemList& items)
179 {
180 emit listingEvent(KParts::ListingNotificationExtension::ItemsAdded, items);
181 }
182
183 void DolphinPartListingNotificationExtension::slotItemsDeleted(const KFileItemList& items)
184 {
185 emit listingEvent(KParts::ListingNotificationExtension::ItemsDeleted, items);
186 }
187