From: Stefano Crocco Date: Sun, 14 Jan 2024 09:36:32 +0000 (+0000) Subject: Never emit the fileMiddleClickActivated signal if isTabsForFilesEnabled is true X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/0d01cb09c9ae4d3f208e7a3feca79b3c822deb1e?ds=sidebyside Never emit the fileMiddleClickActivated signal if isTabsForFilesEnabled is true Commit d27ee07d makes it impossible for applications embedding Dolphin part (for example, Konqueror) to react to middle mouse click on a file. If I understand correctly (I'm not familiar with Dolphin code) the `fileMiddleClickActivated` signal is connected with a slot in `DolphinViewContainer`, which is only used by Dolphin itself and not by `DolphinPart`. The result is that middle clicking on a file (except archives) from a Dolphin part has no effect. To avoid this situation, I removed the check for `!archiveProtocolIsEmpty()` in the `else if` condition. This way, if `isTabsForFilesEnabled()` is `true`, which should be true if and only if the view is inside a `DolphinPart`, the `activeTabRequested` or `tabRequested` signal will be emitted, allowing the embedding application to respond however it wants. When the view is inside the Dolphin application, instead, `isTabsForFilesEnabled()` will always be `false`, so the new behavior will be used. --- diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index ae0aa903c..c06c49b63 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -1121,7 +1121,6 @@ void DolphinView::slotItemMiddleClicked(int index) const KFileItem &item = m_model->fileItem(index); const QUrl &url = openItemAsFolderUrl(item); const auto modifiers = QGuiApplication::keyboardModifiers(); - const QString &archiveProtocol = KProtocolManager::protocolForArchiveMimetype(item.mimetype()); if (!url.isEmpty()) { // keep in sync with KUrlNavigator::slotNavigatorButtonClicked if (modifiers & Qt::ShiftModifier) { @@ -1129,7 +1128,7 @@ void DolphinView::slotItemMiddleClicked(int index) } else { Q_EMIT tabRequested(url); } - } else if (!archiveProtocol.isEmpty() && isTabsForFilesEnabled()) { + } else if (isTabsForFilesEnabled()) { // keep in sync with KUrlNavigator::slotNavigatorButtonClicked if (modifiers & Qt::ShiftModifier) { Q_EMIT activeTabRequested(item.url());