diff options
Diffstat (limited to 'src/dolphincontroller.cpp')
| -rw-r--r-- | src/dolphincontroller.cpp | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/src/dolphincontroller.cpp b/src/dolphincontroller.cpp index f6ee66634..fe8c426f3 100644 --- a/src/dolphincontroller.cpp +++ b/src/dolphincontroller.cpp @@ -170,26 +170,33 @@ KFileItem DolphinController::itemForIndex(const QModelIndex& index) const void DolphinController::triggerItem(const QModelIndex& index) { - if (m_mouseButtons & Qt::RightButton) { - // a context menu is opened - assure that no triggering is done - return; + if (m_mouseButtons & Qt::LeftButton) { + const KFileItem item = itemForIndex(index); + if (index.isValid() && (index.column() == KDirModel::Name)) { + emit itemTriggered(item); + } else { + m_itemView->clearSelection(); + emit itemEntered(KFileItem()); + } + m_mouseButtons = Qt::NoButton; + } else if (m_mouseButtons & Qt::RightButton) { + m_mouseButtons = Qt::NoButton; } - - const bool openTab = m_mouseButtons & Qt::MidButton; - m_mouseButtons = Qt::NoButton; +} - const KFileItem item = itemForIndex(index); - if (index.isValid() && (index.column() == KDirModel::Name)) { - if (openTab && (item.isDir() || m_dolphinView->isTabsForFilesEnabled())) { +void DolphinController::requestTab(const QModelIndex& index) +{ + if (m_mouseButtons & Qt::MidButton) { + const KFileItem item = itemForIndex(index); + const bool validRequest = index.isValid() && + (index.column() == KDirModel::Name) && + (item.isDir() || m_dolphinView->isTabsForFilesEnabled()); + if (validRequest) { emit tabRequested(item.url()); - } else { - emit itemTriggered(item); - } - } else { - m_itemView->clearSelection(); - if (!openTab) { - emit itemEntered(KFileItem()); } + m_mouseButtons = Qt::NoButton; + } else if (m_mouseButtons & Qt::RightButton) { + m_mouseButtons = Qt::NoButton; } } |
