From dcbf1a11783d47e7e4fa30d488ac93a8bc547e71 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sun, 23 Nov 2008 12:28:10 +0000 Subject: Opening a tab with the middle mouse button should always be done with one click, even if double click has been activated. BUG: 162986 svn path=/trunk/KDE/kdebase/apps/; revision=888007 --- src/dolphincontroller.cpp | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) (limited to 'src/dolphincontroller.cpp') 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; } } -- cgit v1.3