From: Peter Penz Date: Wed, 30 Jan 2008 22:22:46 +0000 (+0000) Subject: allow dropping items above a place inside the Places panel X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/9a944644e94a1a969590cb2fef59a1b22270e150 allow dropping items above a place inside the Places panel BUG: 154014 svn path=/trunk/KDE/kdebase/apps/; revision=768921 --- 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 * + * * + * 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 + +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 * + * * + * 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 + +/** + * @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 #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 #include #include +#include #include #include #include @@ -59,6 +58,7 @@ #include #include #include +#include #include #include #include @@ -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);