diff options
| author | Peter Penz <[email protected]> | 2007-02-16 17:03:02 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2007-02-16 17:03:02 +0000 |
| commit | 546384562ae872614cd0c8fa568bd65ae41885da (patch) | |
| tree | 9baf799af17c8ed58f75f559040adc1995c834fd /src/dolphinview.cpp | |
| parent | cf8f099bd566f1873ba1187aa9408b481c842f1a (diff) | |
Reanimated drag & drop support again after introducing the DolphinController. It is now also possible to move the items inside an icon view like discussed on kde-devel/kde-usability.
svn path=/trunk/KDE/kdebase/apps/; revision=634228
Diffstat (limited to 'src/dolphinview.cpp')
| -rw-r--r-- | src/dolphinview.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index d1416c40a..920224583 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -112,8 +112,10 @@ DolphinView::DolphinView(DolphinMainWindow* mainWindow, m_proxyModel->setSourceModel(m_dirModel); m_controller = new DolphinController(this); - connect(m_controller, SIGNAL(requestContextMenu(const QPoint&, const QPoint&)), - this, SLOT(openContextMenu(const QPoint&, const QPoint&))); + connect(m_controller, SIGNAL(requestContextMenu(const QPoint&)), + this, SLOT(openContextMenu(const QPoint&))); + connect(m_controller, SIGNAL(urlsDropped(const KUrl::List&, const QPoint&)), + this, SLOT(dropUrls(const KUrl::List&, const QPoint&))); connect(m_controller, SIGNAL(sortingChanged(DolphinView::Sorting)), this, SLOT(updateSorting(DolphinView::Sorting))); connect(m_controller, SIGNAL(sortOrderChanged(Qt::SortOrder)), @@ -855,7 +857,7 @@ void DolphinView::changeNameFilter(const QString& nameFilter) #endif } -void DolphinView::openContextMenu(const QPoint& pos, const QPoint& globalPos) +void DolphinView::openContextMenu(const QPoint& pos) { KFileItem* item = 0; @@ -864,10 +866,29 @@ void DolphinView::openContextMenu(const QPoint& pos, const QPoint& globalPos) item = fileItem(index); } - DolphinContextMenu contextMenu(this, item, globalPos); + DolphinContextMenu contextMenu(this, item); contextMenu.open(); } +void DolphinView::dropUrls(const KUrl::List& urls, + const QPoint& pos) +{ + KFileItem* directory = 0; + const QModelIndex index = itemView()->indexAt(pos); + if (index.isValid()) { + KFileItem* item = fileItem(index); + assert(item != 0); + if (item->isDir()) { + // the URLs are dropped above a directory + directory = item; + } + } + + const KUrl& destination = (directory == 0) ? url() : + directory->url(); + m_mainWindow->dropUrls(urls, destination); +} + void DolphinView::updateSorting(DolphinView::Sorting sorting) { ViewProperties props(url()); |
