diff options
Diffstat (limited to 'src/treeviewsidebarpage.cpp')
| -rw-r--r-- | src/treeviewsidebarpage.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp index b1fcc8daa..d9c2e8800 100644 --- a/src/treeviewsidebarpage.cpp +++ b/src/treeviewsidebarpage.cpp @@ -78,8 +78,8 @@ TreeViewSidebarPage::TreeViewSidebarPage(DolphinMainWindow* mainWindow, connect(m_treeView, SIGNAL(clicked(const QModelIndex&)), this, SLOT(updateActiveView(const QModelIndex&))); - connect(m_treeView, SIGNAL(doubleClicked(const QModelIndex&)), - this, SLOT(slotDoubleClicked(const QModelIndex&))); + connect(m_treeView, SIGNAL(urlsDropped(const KUrl::List&, const QPoint&)), + this, SLOT(dropUrls(const KUrl::List&, const QPoint&))); QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(m_treeView); @@ -201,6 +201,24 @@ void TreeViewSidebarPage::updateActiveView(const QModelIndex& index) } } +void TreeViewSidebarPage::dropUrls(const KUrl::List& urls, + const QPoint& pos) +{ + const QModelIndex index = m_treeView->indexAt(pos); + if (index.isValid()) { +#if defined(USE_PROXY_MODEL) + const QModelIndex& dirIndex = m_proxyModel->mapToSource(index); + KFileItem* item = m_dirModel->itemForIndex(dirIndex); +#else + KFileItem* item = m_dirModel->itemForIndex(index); +#endif + Q_ASSERT(item != 0); + if (item->isDir()) { + mainWindow()->dropUrls(urls, item->url()); + } + } +} + void TreeViewSidebarPage::connectToActiveView() { const QWidget* parent = parentWidget(); |
