]> cloud.milkyroute.net Git - dolphin.git/blob - src/kitemviews/private/kfileitemclipboard.cpp
Update the 'isCut' state of items when cutting non-files, e.g., text
[dolphin.git] / src / kitemviews / private / kfileitemclipboard.cpp
1 /***************************************************************************
2 * Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com> *
3 * *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
8 * *
9 * This program 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 *
12 * GNU General Public License for more details. *
13 * *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
18 ***************************************************************************/
19
20 #include "kfileitemclipboard.h"
21
22 #include <KGlobal>
23 #include <QApplication>
24 #include <QClipboard>
25 #include <QMimeData>
26
27 class KFileItemClipboardSingleton
28 {
29 public:
30 KFileItemClipboard instance;
31 };
32 K_GLOBAL_STATIC(KFileItemClipboardSingleton, s_KFileItemClipboard)
33
34
35
36 KFileItemClipboard* KFileItemClipboard::instance()
37 {
38 return &s_KFileItemClipboard->instance;
39 }
40
41 bool KFileItemClipboard::isCut(const KUrl& url) const
42 {
43 return m_cutItems.contains(url);
44 }
45
46 QList<KUrl> KFileItemClipboard::cutItems() const
47 {
48 return m_cutItems.toList();
49 }
50
51 KFileItemClipboard::~KFileItemClipboard()
52 {
53 }
54
55 void KFileItemClipboard::updateCutItems()
56 {
57 const QMimeData* mimeData = QApplication::clipboard()->mimeData();
58 m_cutItems = KUrl::List::fromMimeData(mimeData).toSet();
59 emit cutItemsChanged();
60 }
61
62 KFileItemClipboard::KFileItemClipboard() :
63 QObject(0),
64 m_cutItems()
65 {
66 updateCutItems();
67
68 connect(QApplication::clipboard(), SIGNAL(dataChanged()),
69 this, SLOT(updateCutItems()));
70 }
71
72 #include "kfileitemclipboard.moc"