┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinview.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2007-02-16 17:03:02 +0000
committerPeter Penz <[email protected]>2007-02-16 17:03:02 +0000
commit546384562ae872614cd0c8fa568bd65ae41885da (patch)
tree9baf799af17c8ed58f75f559040adc1995c834fd /src/dolphinview.cpp
parentcf8f099bd566f1873ba1187aa9408b481c842f1a (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.cpp29
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());