]> cloud.milkyroute.net Git - dolphin.git/commitdiff
allow dropping items above a place inside the Places panel
authorPeter Penz <peter.penz19@gmail.com>
Wed, 30 Jan 2008 22:22:46 +0000 (22:22 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Wed, 30 Jan 2008 22:22:46 +0000 (22:22 +0000)
BUG: 154014

svn path=/trunk/KDE/kdebase/apps/; revision=768921

src/CMakeLists.txt
src/dolphinfileplacesview.cpp [new file with mode: 0644]
src/dolphinfileplacesview.h [new file with mode: 0644]
src/dolphinmainwindow.cpp

index 4d0d097dda234e8dae50c64bd04ec958855e318b..deb1b3bb6d8e9a5c0ed30161f761548d18e9fe5b 100644 (file)
@@ -90,6 +90,7 @@ set(dolphin_SRCS
    dolphinstatusbar.cpp
    dolphindirlister.cpp
    dolphincontextmenu.cpp
+   dolphinfileplacesview.cpp
    dolphinsettingsdialog.cpp
    draganddrophelper.cpp
    filterbar.cpp
diff --git a/src/dolphinfileplacesview.cpp b/src/dolphinfileplacesview.cpp
new file mode 100644 (file)
index 0000000..5dacae6
--- /dev/null
@@ -0,0 +1,47 @@
+/***************************************************************************
+ *   Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at>                  *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
+ ***************************************************************************/
+
+#include "dolphinfileplacesview.h"
+#include "dolphindropcontroller.h"
+#include <konq_operations.h>
+
+DolphinFilePlacesView::DolphinFilePlacesView(QWidget* parent) :
+    KFilePlacesView(parent)
+{
+    setDropOnPlaceEnabled(true);
+    connect(this, SIGNAL(urlsDropped(const KUrl&, QDropEvent*, QWidget*)),
+            this, SLOT(slotUrlsDropped(const KUrl&, QDropEvent*, QWidget*)));
+}
+
+DolphinFilePlacesView::~DolphinFilePlacesView()
+{
+}
+
+void DolphinFilePlacesView::slotUrlsDropped(const KUrl& dest, QDropEvent* event, QWidget* parent)
+{
+    const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData());
+
+    DolphinDropController dropController(parent);
+    // forward doingOperation signal up to the mainwindow
+    connect(&dropController, SIGNAL(doingOperation(KonqFileUndoManager::CommandType)),
+            this, SIGNAL(doingOperation(KonqFileUndoManager::CommandType)));
+    dropController.dropUrls(urls, dest);
+}
+
+#include "dolphinfileplacesview.moc"
diff --git a/src/dolphinfileplacesview.h b/src/dolphinfileplacesview.h
new file mode 100644 (file)
index 0000000..8bad0fa
--- /dev/null
@@ -0,0 +1,41 @@
+/***************************************************************************
+ *   Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at>                  *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
+ ***************************************************************************/
+
+#ifndef DOLPHINFILEPLACESVIEW_H
+#define DOLPHINFILEPLACESVIEW_H
+
+#include <kfileplacesview.h>
+
+/**
+ * @brief Combines bookmarks and mounted devices as list which is
+ *        embedded as panel.
+ */
+class DolphinFilePlacesView : public KFilePlacesView
+{
+    Q_OBJECT
+
+public:
+    DolphinFilePlacesView(QWidget* parent);
+    virtual ~DolphinFilePlacesView();
+
+private slots:
+    void slotUrlsDropped(const KUrl& dest, QDropEvent* event, QWidget* parent);
+};
+
+#endif // DOLPHINFILEPLACESVIEW_H
index 0c6d358268597421d886092118146b2eda8b5679..4c32e623ebbdeee080cb92762681c9c85d9d2cf4 100644 (file)
@@ -25,6 +25,7 @@
 #include <config-nepomuk.h>
 
 #include "dolphinapplication.h"
+#include "dolphinfileplacesview.h"
 #include "dolphinnewmenu.h"
 #include "dolphinsettings.h"
 #include "dolphinsettingsdialog.h"
 #include "mainwindowadaptor.h"
 #include "terminalsidebarpage.h"
 #include "treeviewsidebarpage.h"
-#include "kurlnavigator.h"
 #include "viewpropertiesdialog.h"
 #include "viewproperties.h"
-#include "kfileplacesmodel.h"
-#include "kfileplacesview.h"
 
 #include "dolphin_generalsettings.h"
 #include "dolphin_iconsmodesettings.h"
@@ -50,6 +48,7 @@
 #include <kdesktopfile.h>
 #include <kdeversion.h>
 #include <kfiledialog.h>
+#include <kfileplacesmodel.h>
 #include <kglobal.h>
 #include <kicon.h>
 #include <kiconloader.h>
@@ -59,6 +58,7 @@
 #include <kmenu.h>
 #include <kmenubar.h>
 #include <kmessagebox.h>
+#include <kurlnavigator.h>
 #include <konqmimedata.h>
 #include <konq_operations.h>
 #include <kpropertiesdialog.h>
@@ -1177,7 +1177,8 @@ void DolphinMainWindow::setupDockWidgets()
     QDockWidget* placesDock = new QDockWidget(i18nc("@title:window", "Places"));
     placesDock->setObjectName("placesDock");
     placesDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
-    KFilePlacesView* placesView = new KFilePlacesView(placesDock);
+
+    DolphinFilePlacesView* placesView = new DolphinFilePlacesView(placesDock);
     placesDock->setWidget(placesView);
     placesView->setModel(DolphinSettings::instance().placesModel());
     placesView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);