┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphincontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dolphincontroller.cpp')
-rw-r--r--src/dolphincontroller.cpp39
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;
}
}