diff options
| author | Peter Penz <[email protected]> | 2011-11-29 22:01:16 +0100 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2011-11-29 22:03:26 +0100 |
| commit | 3719ce7d2a7f4ee6a0585763139eea8f7786630c (patch) | |
| tree | a93f357f440ac5866020ba69dc5815d927c3c3f7 /src/views | |
| parent | 4cd8ebff82cd215cc5a7c5b004207b0b0eda6734 (diff) | |
Reactivate the "Open folders during drag operations" feature
The feature got temporary lost due to the port to the new view
engine.
Diffstat (limited to 'src/views')
| -rw-r--r-- | src/views/dolphinview.cpp | 41 | ||||
| -rw-r--r-- | src/views/dolphinview.h | 1 |
2 files changed, 27 insertions, 15 deletions
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 379cd9f90..829e1a302 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -135,8 +135,11 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) : KItemListController* controller = m_container->controller(); controller->setSelectionBehavior(KItemListController::MultiSelection); - connect(controller, SIGNAL(itemActivated(int)), - this, SLOT(slotItemActivated(int))); + if (GeneralSettings::autoExpandFolders()) { + controller->setAutoActivationDelay(750); + } + connect(controller, SIGNAL(itemActivated(int)), this, SLOT(slotItemActivated(int))); + connect(controller, SIGNAL(itemsActivated(QSet<int>)), this, SLOT(slotItemsActivated(QSet<int>))); connect(controller, SIGNAL(itemMiddleClicked(int)), this, SLOT(slotItemMiddleClicked(int))); connect(controller, SIGNAL(itemContextMenuRequested(int,QPointF)), this, SLOT(slotItemContextMenuRequested(int,QPointF))); connect(controller, SIGNAL(viewContextMenuRequested(QPointF)), this, SLOT(slotViewContextMenuRequested(QPointF))); @@ -692,22 +695,30 @@ void DolphinView::activate() void DolphinView::slotItemActivated(int index) { - Q_UNUSED(index); + const KFileItem item = fileItemModel()->fileItem(index); + if (!item.isNull()) { + emit itemActivated(item); + } +} - const KFileItemList items = selectedItems(); - if (items.isEmpty()) { - return; +void DolphinView::slotItemsActivated(const QSet<int>& indexes) +{ + Q_ASSERT(indexes.count() >= 2); + + KFileItemList items; + + KFileItemModel* model = fileItemModel(); + QSetIterator<int> it(indexes); + while (it.hasNext()) { + const int index = it.next(); + items.append(model->fileItem(index)); } - if (items.count() == 1) { - emit itemActivated(items.at(0)); // caught by DolphinViewContainer or DolphinPart - } else { - foreach (const KFileItem& item, items) { - if (item.isDir()) { - emit tabRequested(item.url()); - } else { - emit itemActivated(item); - } + foreach (const KFileItem& item, items) { + if (item.isDir()) { + emit tabRequested(item.url()); + } else { + emit itemActivated(item); } } } diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index e0be25e42..9111516b4 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -555,6 +555,7 @@ private slots: void activate(); void slotItemActivated(int index); + void slotItemsActivated(const QSet<int>& indexes); void slotItemMiddleClicked(int index); void slotItemContextMenuRequested(int index, const QPointF& pos); void slotViewContextMenuRequested(const QPointF& pos); |
