From 84010807786c352aaeb2320caf27e5f9048d8dec Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Wed, 24 Aug 2011 18:11:55 +0200 Subject: Interface cleanups for drag and drop support --- src/kitemviews/kfileitemlistview.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/kitemviews/kfileitemlistview.cpp') diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp index a7217d30c..d9742945a 100644 --- a/src/kitemviews/kfileitemlistview.cpp +++ b/src/kitemviews/kfileitemlistview.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -46,6 +47,8 @@ KFileItemListView::KFileItemListView(QGraphicsWidget* parent) : m_updateIconSizeTimer(0), m_minimumRolesWidths() { + setAcceptDrops(true); + setScrollOrientation(Qt::Vertical); setWidgetCreator(new KItemListWidgetCreator()); setGroupHeaderCreator(new KItemListGroupHeaderCreator()); @@ -204,6 +207,26 @@ QHash KFileItemListView::visibleRoleSizes() const return sizes; } +QPixmap KFileItemListView::createDragPixmap(const QSet& indexes) const +{ + QPixmap pixmap; + + if (model()) { + QSetIterator it(indexes); + while (it.hasNext()) { + const int index = it.next(); + // TODO: Only one item is considered currently + pixmap = model()->data(index).value("iconPixmap").value(); + if (pixmap.isNull()) { + KIcon icon(model()->data(index).value("iconName").toString()); + pixmap = icon.pixmap(itemSize().toSize()); + } + } + } + + return pixmap; +} + void KFileItemListView::initializeItemListWidget(KItemListWidget* item) { KFileItemListWidget* fileItemListWidget = static_cast(item); -- cgit v1.3