┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2008-01-30 22:22:46 +0000
committerPeter Penz <[email protected]>2008-01-30 22:22:46 +0000
commit9a944644e94a1a969590cb2fef59a1b22270e150 (patch)
tree38e04122291b2f07c906e2ba59466317c6a2ba43 /src
parentfaf1f0f2d6fcb070a0a0927e3dbb6a9512c9e5c6 (diff)
allow dropping items above a place inside the Places panel
BUG: 154014 svn path=/trunk/KDE/kdebase/apps/; revision=768921
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/dolphinfileplacesview.cpp47
-rw-r--r--src/dolphinfileplacesview.h41
-rw-r--r--src/dolphinmainwindow.cpp9
4 files changed, 94 insertions, 4 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4d0d097dd..deb1b3bb6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -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
index 000000000..5dacae633
--- /dev/null
+++ b/src/dolphinfileplacesview.cpp
@@ -0,0 +1,47 @@
+/***************************************************************************
+ * Copyright (C) 2008 by Peter Penz <[email protected]> *
+ * *
+ * 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
index 000000000..8bad0fa5f
--- /dev/null
+++ b/src/dolphinfileplacesview.h
@@ -0,0 +1,41 @@
+/***************************************************************************
+ * Copyright (C) 2008 by Peter Penz <[email protected]> *
+ * *
+ * 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
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 0c6d35826..4c32e623e 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -25,6 +25,7 @@
#include <config-nepomuk.h>
#include "dolphinapplication.h"
+#include "dolphinfileplacesview.h"
#include "dolphinnewmenu.h"
#include "dolphinsettings.h"
#include "dolphinsettingsdialog.h"
@@ -35,11 +36,8 @@
#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);