┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/dolphinview.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-11-29 22:01:16 +0100
committerPeter Penz <[email protected]>2011-11-29 22:03:26 +0100
commit3719ce7d2a7f4ee6a0585763139eea8f7786630c (patch)
treea93f357f440ac5866020ba69dc5815d927c3c3f7 /src/views/dolphinview.cpp
parent4cd8ebff82cd215cc5a7c5b004207b0b0eda6734 (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/dolphinview.cpp')
-rw-r--r--src/views/dolphinview.cpp41
1 files changed, 26 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);
}
}
}