From: Peter Penz Date: Tue, 6 Dec 2011 18:20:48 +0000 (+0100) Subject: Folders Panel cleanups X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/8998ee8f5163d20a204f2bba8bc240c9bd700be7 Folders Panel cleanups - Reactivate dropping of URLs - Remove unused/obsolete code - Simplify DragAndDropHelper interface --- 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 #include +#include +#include #include #include #include +#include #include #include @@ -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 #include #include +#include #include #include -#include 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