From 73f885f9d3513bdfed2d22b21d0d1a88fe4f6a7a Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sat, 29 Apr 2017 18:47:13 +0200 Subject: [PATCH] Don't ignore tag clicks in the tooltips Summary: Now that we can use the metadata widgets in the tooltips, we can also open the tags:// url if the user clicks some tag in a tooltip. The behavior is now consistent with the metadata widget in the information panel. Test Plan: Click a tag when the metadata tooltip shows up. Reviewers: emmanuelp Subscribers: #konqueror, #dolphin Differential Revision: https://phabricator.kde.org/D5658 --- src/dolphinmainwindow.cpp | 2 ++ src/views/dolphinview.cpp | 1 + src/views/dolphinview.h | 6 ++++++ src/views/tooltips/dolphinfilemetadatawidget.cpp | 4 ++++ src/views/tooltips/dolphinfilemetadatawidget.h | 6 ++++++ src/views/tooltips/tooltipmanager.cpp | 2 ++ src/views/tooltips/tooltipmanager.h | 7 +++++++ 7 files changed, 28 insertions(+) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index a163ef7fd..e28e540d1 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -1453,6 +1453,8 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container) this, static_cast(&DolphinMainWindow::goBack)); connect(view, &DolphinView::goForwardRequested, this, static_cast(&DolphinMainWindow::goForward)); + connect(view, &DolphinView::urlActivated, + this, &DolphinMainWindow::handleUrl); const KUrlNavigator* navigator = container->urlNavigator(); connect(navigator, &KUrlNavigator::urlChanged, diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 63f6252ed..e60e85fdb 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -182,6 +182,7 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : this, &DolphinView::slotSelectionChanged); m_toolTipManager = new ToolTipManager(this); + connect(m_toolTipManager, &ToolTipManager::urlActivated, this, &DolphinView::urlActivated); m_versionControlObserver = new VersionControlObserver(this); m_versionControlObserver->setModel(m_model); diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 5e69fd37b..6b62b5da6 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -544,6 +544,12 @@ signals: */ void toggleActiveViewRequested(); + /** + * Is emitted when the user clicks a tag or a link + * in the metadata widget of a tooltip. + */ + void urlActivated(const QUrl& url); + protected: /** Changes the zoom level if Control is pressed during a wheel event. */ virtual void wheelEvent(QWheelEvent* event) Q_DECL_OVERRIDE; diff --git a/src/views/tooltips/dolphinfilemetadatawidget.cpp b/src/views/tooltips/dolphinfilemetadatawidget.cpp index 755636c6c..52eeb3b71 100644 --- a/src/views/tooltips/dolphinfilemetadatawidget.cpp +++ b/src/views/tooltips/dolphinfilemetadatawidget.cpp @@ -67,10 +67,14 @@ DolphinFileMetaDataWidget::DolphinFileMetaDataWidget(QWidget* parent) : m_fileMetaDataWidget = new KFileMetaDataWidget(this); connect(m_fileMetaDataWidget, &KFileMetaDataWidget::metaDataRequestFinished, this, &DolphinFileMetaDataWidget::metaDataRequestFinished); + connect(m_fileMetaDataWidget, &KFileMetaDataWidget::urlActivated, + this, &DolphinFileMetaDataWidget::urlActivated); #else m_fileMetaDataWidget = new Baloo::FileMetaDataWidget(this); connect(m_fileMetaDataWidget, &Baloo::FileMetaDataWidget::metaDataRequestFinished, this, &DolphinFileMetaDataWidget::metaDataRequestFinished); + connect(m_fileMetaDataWidget, &Baloo::FileMetaDataWidget::urlActivated, + this, &DolphinFileMetaDataWidget::urlActivated); #endif m_fileMetaDataWidget->setForegroundRole(QPalette::ToolTipText); m_fileMetaDataWidget->setReadOnly(true); diff --git a/src/views/tooltips/dolphinfilemetadatawidget.h b/src/views/tooltips/dolphinfilemetadatawidget.h index cf796250d..c5c228766 100644 --- a/src/views/tooltips/dolphinfilemetadatawidget.h +++ b/src/views/tooltips/dolphinfilemetadatawidget.h @@ -69,6 +69,12 @@ signals: */ void metaDataRequestFinished(const KFileItemList& items); + /** + * Is emitted when the user clicks a tag or a link + * in the metadata widget. + */ + void urlActivated(const QUrl& url); + private: QLabel* m_preview; QLabel* m_name; diff --git a/src/views/tooltips/tooltipmanager.cpp b/src/views/tooltips/tooltipmanager.cpp index 4a9f91359..4c5825635 100644 --- a/src/views/tooltips/tooltipmanager.cpp +++ b/src/views/tooltips/tooltipmanager.cpp @@ -86,6 +86,8 @@ void ToolTipManager::showToolTip(const KFileItem& item, const QRectF& itemRect, m_fileMetaDataWidget = new DolphinFileMetaDataWidget(); connect(m_fileMetaDataWidget, &DolphinFileMetaDataWidget::metaDataRequestFinished, this, &ToolTipManager::slotMetaDataRequestFinished); + connect(m_fileMetaDataWidget, &DolphinFileMetaDataWidget::urlActivated, + this, &ToolTipManager::urlActivated); m_contentRetrievalTimer->start(); m_showToolTipTimer->start(); diff --git a/src/views/tooltips/tooltipmanager.h b/src/views/tooltips/tooltipmanager.h index 9c504c898..9f1f104f1 100644 --- a/src/views/tooltips/tooltipmanager.h +++ b/src/views/tooltips/tooltipmanager.h @@ -58,6 +58,13 @@ public: */ void hideToolTip(); +signals: + /** + * Is emitted when the user clicks a tag or a link + * in the metadata widget. + */ + void urlActivated(const QUrl& url); + private slots: void startContentRetrieval(); void setPreviewPix(const KFileItem& item, const QPixmap& pix); -- 2.47.3