]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/private/kfileitemclipboard.cpp
[CLAZY] Fixed all level 1 and level 2 warnings with small exceptions
[dolphin.git] / src / kitemviews / private / kfileitemclipboard.cpp
index c5f88194d3f701e6ea74f09661deae631d1f279e..d27869dffd31a64c75a6b69353db379944eeab8e 100644 (file)
 
 #include "kfileitemclipboard.h"
 
-#include <KGlobal>
 #include <QApplication>
 #include <QClipboard>
 #include <QMimeData>
+#include <KUrlMimeData>
 
 class KFileItemClipboardSingleton
 {
 public:
     KFileItemClipboard instance;
 };
-K_GLOBAL_STATIC(KFileItemClipboardSingleton, s_KFileItemClipboard)
+Q_GLOBAL_STATIC(KFileItemClipboardSingleton, s_KFileItemClipboard)
 
 
 
@@ -38,12 +38,12 @@ KFileItemClipboard* KFileItemClipboard::instance()
     return &s_KFileItemClipboard->instance;
 }
 
-bool KFileItemClipboard::isCut(const KUrl& url) const
+bool KFileItemClipboard::isCut(const QUrl& url) const
 {
     return m_cutItems.contains(url);
 }
 
-QList<KUrl> KFileItemClipboard::cutItems() const
+QList<QUrl> KFileItemClipboard::cutItems() const
 {
     return m_cutItems.toList();
 }
@@ -55,7 +55,21 @@ KFileItemClipboard::~KFileItemClipboard()
 void KFileItemClipboard::updateCutItems()
 {
     const QMimeData* mimeData = QApplication::clipboard()->mimeData();
-    m_cutItems = KUrl::List::fromMimeData(mimeData).toSet();
+
+    // mimeData can be 0 according to https://bugs.kde.org/show_bug.cgi?id=335053
+    if (!mimeData) {
+        m_cutItems.clear();
+        emit cutItemsChanged();
+        return;
+    }
+
+    const QByteArray data = mimeData->data(QStringLiteral("application/x-kde-cutselection"));
+    const bool isCutSelection = (!data.isEmpty() && data.at(0) == QLatin1Char('1'));
+    if (isCutSelection) {
+        m_cutItems = KUrlMimeData::urlsFromMimeData(mimeData).toSet();
+    } else {
+        m_cutItems.clear();
+    }
     emit cutItemsChanged();
 }
 
@@ -65,8 +79,6 @@ KFileItemClipboard::KFileItemClipboard() :
 {
     updateCutItems();
 
-    connect(QApplication::clipboard(), SIGNAL(dataChanged()),
-            this, SLOT(updateCutItems()));
+    connect(QApplication::clipboard(), &QClipboard::dataChanged,
+            this, &KFileItemClipboard::updateCutItems);
 }
-
-#include "kfileitemclipboard.moc"