diff options
| author | Peter Penz <[email protected]> | 2011-12-06 19:20:48 +0100 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2011-12-06 19:22:55 +0100 |
| commit | 8998ee8f5163d20a204f2bba8bc240c9bd700be7 (patch) | |
| tree | d102db00e14d148ea9afc03b1a8b135f284fa9aa | |
| parent | 899c171a2b62f0666dbe2ed755d51a8ae0f7ef9f (diff) | |
Folders Panel cleanups
- Reactivate dropping of URLs
- Remove unused/obsolete code
- Simplify DragAndDropHelper interface
| -rw-r--r-- | src/panels/folders/folderspanel.cpp | 38 | ||||
| -rw-r--r-- | src/panels/folders/folderspanel.h | 6 | ||||
| -rw-r--r-- | src/panels/places/placespanel.cpp | 3 | ||||
| -rw-r--r-- | src/views/dolphinview.cpp | 2 | ||||
| -rw-r--r-- | src/views/draganddrophelper.cpp | 9 | ||||
| -rw-r--r-- | src/views/draganddrophelper.h | 4 |
6 files changed, 30 insertions, 32 deletions
diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index 26c725048..598d3054a 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -36,10 +36,13 @@ #include <QApplication> #include <QBoxLayout> +#include <QDropEvent> +#include <QGraphicsSceneDragDropEvent> #include <QGraphicsView> #include <QPropertyAnimation> #include <QTimer> +#include <views/draganddrophelper.h> #include <views/renamedialog.h> #include <KDebug> @@ -86,7 +89,7 @@ bool FoldersPanel::hiddenFilesShown() const void FoldersPanel::setAutoScrolling(bool enable) { - //m_treeView->setAutoHorizontalScroll(enable); + // TODO: Not supported yet in Dolphin 2.0 FoldersPanelSettings::setAutoScrolling(enable); } @@ -177,6 +180,7 @@ void FoldersPanel::showEvent(QShowEvent* event) connect(m_controller, SIGNAL(itemMiddleClicked(int)), this, SLOT(slotItemMiddleClicked(int))); connect(m_controller, SIGNAL(itemContextMenuRequested(int,QPointF)), this, SLOT(slotItemContextMenuRequested(int,QPointF))); connect(m_controller, SIGNAL(viewContextMenuRequested(QPointF)), this, SLOT(slotViewContextMenuRequested(QPointF))); + connect(m_controller, SIGNAL(itemDropEvent(int,QGraphicsSceneDragDropEvent*)), this, SLOT(slotItemDropEvent(int,QGraphicsSceneDragDropEvent*))); // TODO: Check whether it makes sense to make an explicit API for KItemListContainer // to make the background transparent. @@ -208,7 +212,6 @@ void FoldersPanel::keyPressEvent(QKeyEvent* event) const int key = event->key(); if ((key == Qt::Key_Enter) || (key == Qt::Key_Return)) { event->accept(); - //updateActiveView(m_treeView->currentIndex()); } else { Panel::keyPressEvent(event); } @@ -254,6 +257,21 @@ void FoldersPanel::slotViewContextMenuRequested(const QPointF& pos) } } +void FoldersPanel::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* event) +{ + if (index >= 0) { + const KFileItem destItem = fileItemModel()->fileItem(index); + + QDropEvent dropEvent(event->pos().toPoint(), + event->possibleActions(), + event->mimeData(), + event->buttons(), + event->modifiers()); + + DragAndDropHelper::dropUrls(destItem, url(), &dropEvent); + } +} + void FoldersPanel::slotLoadingCompleted() { if (m_controller->view()->opacity() == 0) { @@ -275,22 +293,6 @@ void FoldersPanel::slotLoadingCompleted() m_updateCurrentItem = false; } -void FoldersPanel::slotHorizontalScrollBarMoved(int value) -{ - Q_UNUSED(value); - // Disable the auto-scrolling until the vertical scrollbar has - // been moved by the user. - //m_treeView->setAutoHorizontalScroll(false); -} - -void FoldersPanel::slotVerticalScrollBarMoved(int value) -{ - Q_UNUSED(value); - // Enable the auto-scrolling again (it might have been disabled by - // moving the horizontal scrollbar). - //m_treeView->setAutoHorizontalScroll(FoldersPanelSettings::autoScrolling()); -} - void FoldersPanel::startFadeInAnimation() { QPropertyAnimation* anim = new QPropertyAnimation(m_controller->view(), "opacity", this); diff --git a/src/panels/folders/folderspanel.h b/src/panels/folders/folderspanel.h index d249f850f..c5cd1dec8 100644 --- a/src/panels/folders/folderspanel.h +++ b/src/panels/folders/folderspanel.h @@ -26,6 +26,7 @@ class KDirLister; class KFileItemModel; class KItemListController; +class QGraphicsSceneDragDropEvent; /** * @brief Shows a tree view of the directories starting from @@ -71,13 +72,10 @@ private slots: void slotItemMiddleClicked(int index); void slotItemContextMenuRequested(int index, const QPointF& pos); void slotViewContextMenuRequested(const QPointF& pos); + void slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* event); void slotLoadingCompleted(); - void slotHorizontalScrollBarMoved(int value); - - void slotVerticalScrollBarMoved(int value); - /** * Increases the opacity of the view step by step until it is fully * opaque. diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp index a47cc7383..902c436cf 100644 --- a/src/panels/places/placespanel.cpp +++ b/src/panels/places/placespanel.cpp @@ -47,7 +47,8 @@ void PlacesPanel::mousePressEvent(QMouseEvent* event) void PlacesPanel::slotUrlsDropped(const KUrl& dest, QDropEvent* event, QWidget* parent) { - DragAndDropHelper::dropUrls(KFileItem(), dest, event, parent); + Q_UNUSED(parent); + DragAndDropHelper::dropUrls(KFileItem(), dest, event); } void PlacesPanel::emitExtendedUrlChangedSignal(const KUrl& url) diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 455905f6a..7a3903561 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -831,7 +831,7 @@ void DolphinView::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* even event->buttons(), event->modifiers()); - DragAndDropHelper::dropUrls(destItem, url(), &dropEvent, this); + DragAndDropHelper::dropUrls(destItem, url(), &dropEvent); } void DolphinView::slotModelChanged(KItemModelBase* current, KItemModelBase* previous) diff --git a/src/views/draganddrophelper.cpp b/src/views/draganddrophelper.cpp index 6cd17b6ba..8e5873480 100644 --- a/src/views/draganddrophelper.cpp +++ b/src/views/draganddrophelper.cpp @@ -24,14 +24,13 @@ #include <KLocale> #include <konq_operations.h> #include <KUrl> +#include <QApplication> #include <QtDBus> #include <QDropEvent> -#include <QWidget> QString DragAndDropHelper::dropUrls(const KFileItem& destItem, const KUrl& destPath, - QDropEvent* event, - QWidget* widget) + QDropEvent* event) { const bool dropToItem = !destItem.isNull() && (destItem.isDir() || destItem.isDesktopFile()); const KUrl destination = dropToItem ? destItem.url() : destPath; @@ -49,9 +48,9 @@ QString DragAndDropHelper::dropUrls(const KFileItem& destItem, if (urlsCount == 1 && urls.first() == destination) { return i18nc("@info:status", "A folder cannot be dropped into itself"); } else if (dropToItem) { - KonqOperations::doDrop(destItem, destination, event, widget); + KonqOperations::doDrop(destItem, destination, event, QApplication::activeWindow()); } else { - KonqOperations::doDrop(KFileItem(), destination, event, widget); + KonqOperations::doDrop(KFileItem(), destination, event, QApplication::activeWindow()); } } diff --git a/src/views/draganddrophelper.h b/src/views/draganddrophelper.h index 85e47077d..d00e11157 100644 --- a/src/views/draganddrophelper.h +++ b/src/views/draganddrophelper.h @@ -41,14 +41,12 @@ public: * @param destItem Item of the destination (can be null, see KFileItem::isNull()). * @param destPath Path of the destination. * @param event Drop event. - * @param widget Source widget where the dragging has been started. * @return Error message if dropping is not possible. If an empty string * is returned, the dropping has been successful. */ static QString dropUrls(const KFileItem& destItem, const KUrl& destPath, - QDropEvent* event, - QWidget* widget); + QDropEvent* event); }; #endif |
