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