[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [messagelib] messageviewer/src: Improve popupmenu action
From:       Montel Laurent <montel () kde ! org>
Date:       2016-03-31 19:28:27
Message-ID: E1aliGZ-00014r-HL () scm ! kde ! org
[Download RAW message or body]

Git commit b0ed1b370db550520aa9046862786a5d48017fbe by Montel Laurent.
Committed on 31/03/2016 at 19:28.
Pushed by mlaurent into branch 'master'.

Improve popupmenu action

M  +0    -1    messageviewer/src/scamdetection/scamdetectionwebengine.cpp
M  +29   -0    messageviewer/src/viewer/viewer_p.cpp
M  +5    -0    messageviewer/src/viewer/viewer_p.h
M  +1    -1    messageviewer/src/viewer/webengine/mailwebengineview.cpp
M  +2    -1    messageviewer/src/viewer/webengine/mailwebengineview.h

http://commits.kde.org/messagelib/b0ed1b370db550520aa9046862786a5d48017fbe

diff --git a/messageviewer/src/scamdetection/scamdetectionwebengine.cpp \
b/messageviewer/src/scamdetection/scamdetectionwebengine.cpp index 2e9a6ad..07b3190 \
                100644
--- a/messageviewer/src/scamdetection/scamdetectionwebengine.cpp
+++ b/messageviewer/src/scamdetection/scamdetectionwebengine.cpp
@@ -175,7 +175,6 @@ void ScamDetectionWebEngine::showDetails()
     if (!d->mDetailsDialog) {
         d->mDetailsDialog = new MessageViewer::ScamDetectionDetailsDialog;
     }
-
     d->mDetailsDialog->setDetails(d->mDetails);
     d->mDetailsDialog->show();
 }
diff --git a/messageviewer/src/viewer/viewer_p.cpp \
b/messageviewer/src/viewer/viewer_p.cpp index d3949e8..e414cb5 100644
--- a/messageviewer/src/viewer/viewer_p.cpp
+++ b/messageviewer/src/viewer/viewer_p.cpp
@@ -124,6 +124,7 @@
 #include <QWebEngineSettings>
 #include "htmlwriter/webengineparthtmlwriter.h"
 #include <widgets/mailsourcewebengineviewer.h>
+#include <MessageViewer/WebHitTestResult>
 #else
 #include "widgets/mailsourceviewer.h"
 #include "htmlwriter/webkitparthtmlwriter.h"
@@ -153,6 +154,7 @@
 #include <widgets/zoomactionmenu.h>
 #include <kpimtextedit/texttospeechwidget.h>
 
+
 #include <grantleetheme/grantleethememanager.h>
 #include <grantleetheme/grantleetheme.h>
 
@@ -2052,7 +2054,33 @@ void ViewerPrivate::slotUrlOn(const QString &link)
     KPIM::BroadcastStatus::instance()->setTransientStatusMsg(msg);
     Q_EMIT showStatusBarMessage(msg);
 }
+#ifdef MESSAGEVIEWER_USE_QTWEBENGINE
+void ViewerPrivate::slotUrlPopup(const MessageViewer::WebHitTestResult &result)
+{
+    if (!mMsgDisplay) {
+        return;
+    }
+    mClickedUrl = result.linkUrl();
+    mImageUrl = result.imageUrl();
+    const QPoint aPos = mViewer->mapToGlobal(result.pos());
+    if (URLHandlerManager::instance()->handleContextMenuRequest(mClickedUrl, aPos, \
this)) { +        return;
+    }
+
+    if (!mActionCollection) {
+        return;
+    }
+
+    if (mClickedUrl.scheme() == QLatin1String("mailto")) {
+        mCopyURLAction->setText(i18n("Copy Email Address"));
+    } else {
+        mCopyURLAction->setText(i18n("Copy Link Address"));
+    }
+
+    Q_EMIT popupMenu(mMessageItem, mClickedUrl, mImageUrl, aPos);
+}
 
+#else
 void ViewerPrivate::slotUrlPopup(const QUrl &aUrl, const QUrl &imageUrl, const \
QPoint &aPos)  {
     if (!mMsgDisplay) {
@@ -2077,6 +2105,7 @@ void ViewerPrivate::slotUrlPopup(const QUrl &aUrl, const QUrl \
&imageUrl, const Q  
     Q_EMIT popupMenu(mMessageItem, aUrl, imageUrl, aPos);
 }
+#endif
 
 void ViewerPrivate::slotLoadExternalReference()
 {
diff --git a/messageviewer/src/viewer/viewer_p.h \
b/messageviewer/src/viewer/viewer_p.h index 50f69e1..e5b8d44 100644
--- a/messageviewer/src/viewer/viewer_p.h
+++ b/messageviewer/src/viewer/viewer_p.h
@@ -79,6 +79,7 @@ class CSSHelper;
 class FindBarWebEngineView;
 class MailWebEngineView;
 class WebEnginePartHtmlWriter;
+class WebHitTestResult;
 #else
 class FindBarWebView;
 class MailWebView;
@@ -483,7 +484,11 @@ public Q_SLOTS:
     void slotUrlOn(const QString &link);
 
     /** The user presses the right mouse button on an URL. */
+#ifdef MESSAGEVIEWER_USE_QTWEBENGINE
+    void slotUrlPopup(const MessageViewer::WebHitTestResult &result);
+#else
     void slotUrlPopup(const QUrl &, const QUrl &imageUrl, const QPoint &mousePos);
+#endif
 
     /** The user selected "Find" from the menu. */
     void slotFind();
diff --git a/messageviewer/src/viewer/webengine/mailwebengineview.cpp \
b/messageviewer/src/viewer/webengine/mailwebengineview.cpp index dee815d..df2c704 \
                100644
--- a/messageviewer/src/viewer/webengine/mailwebengineview.cpp
+++ b/messageviewer/src/viewer/webengine/mailwebengineview.cpp
@@ -106,7 +106,7 @@ void MailWebEngineView::contextMenuEvent(QContextMenuEvent *e)
 
 void MailWebEngineView::slotWebHitFinished(const MessageViewer::WebHitTestResult \
&result)  {
-    Q_EMIT popupMenu(result.linkUrl(), result.imageUrl(), \
mapToGlobal(result.pos())); +    Q_EMIT popupMenu(result);
 }
 
 void MailWebEngineView::scrollUp(int pixels)
diff --git a/messageviewer/src/viewer/webengine/mailwebengineview.h \
b/messageviewer/src/viewer/webengine/mailwebengineview.h index b0a7650..9d8a822 \
                100644
--- a/messageviewer/src/viewer/webengine/mailwebengineview.h
+++ b/messageviewer/src/viewer/webengine/mailwebengineview.h
@@ -78,12 +78,13 @@ Q_SIGNALS:
     /// Emitted when the user right-clicks somewhere
     /// @param url if an URL was under the cursor, this parameter contains it. \
                Otherwise empty
     /// @param point position where the click happened, in local coordinates
-    void popupMenu(const QUrl &url, const QUrl &imageUrl, const QPoint &point);
+    void popupMenu(const MessageViewer::WebHitTestResult &result);
 
 private Q_SLOTS:
     void handleScrollToAnchor(const QVariant &result);
 
     void slotWebHitFinished(const MessageViewer::WebHitTestResult &result);
+    void slotLoadFinished();
 private:
     MailWebEngineViewPrivate *const d;
 };


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic