diff --git a/kmmainwidget.cpp b/kmmainwidget.cpp index 6fd75a15f..b82d75b9b 100644 --- a/kmmainwidget.cpp +++ b/kmmainwidget.cpp @@ -1070,8 +1070,8 @@ void KMMainWidget::createWidgets() } connect( mMsgView->viewer(), SIGNAL(replaceMsgByUnencryptedVersion()), this, SLOT(slotReplaceMsgByUnencryptedVersion()) ); - connect( mMsgView->viewer(), SIGNAL(popupMenu(Akonadi::Item,KUrl,QPoint)), - this, SLOT(slotMessagePopup(Akonadi::Item,KUrl,QPoint)) ); + connect( mMsgView->viewer(), SIGNAL(popupMenu(Akonadi::Item,KUrl,KUrl,QPoint)), + this, SLOT(slotMessagePopup(Akonadi::Item,KUrl,KUrl,QPoint)) ); } else { if ( mMsgActions ) { @@ -2953,7 +2953,7 @@ void KMMainWidget::slotMarkAll() updateMessageActions(); } -void KMMainWidget::slotMessagePopup(const Akonadi::Item&msg ,const KUrl&aUrl,const QPoint& aPoint) +void KMMainWidget::slotMessagePopup(const Akonadi::Item&msg ,const KUrl&aUrl,const KUrl &imageUrl,const QPoint& aPoint) { updateMessageMenu(); mUrlCurrent = aUrl; @@ -2964,6 +2964,7 @@ void KMMainWidget::slotMessagePopup(const Akonadi::Item&msg ,const KUrl&aUrl,con job->setQuery( Akonadi::ContactSearchJob::Email, email, Akonadi::ContactSearchJob::ExactMatch ); job->setProperty( "msg", QVariant::fromValue( msg ) ); job->setProperty( "point", aPoint ); + job->setProperty( "imageUrl", imageUrl ); connect( job, SIGNAL(result(KJob*)), SLOT(slotDelayedMessagePopup(KJob*)) ); } @@ -2985,7 +2986,8 @@ void KMMainWidget::slotDelayedMessagePopup( KJob *job ) const Akonadi::Item msg = job->property( "msg" ).value(); const QPoint aPoint = job->property( "point" ).toPoint(); - + const KUrl iUrl = job->property("imageUrl").value(); + qDebug()<<" iUrl "<addAction( mMsgView->addBookmarksAction() ); menu->addAction( mMsgView->urlSaveAsAction() ); menu->addAction( mMsgView->copyURLAction() ); + if(!iUrl.isEmpty()) { + menu->addSeparator(); + menu->addAction( mMsgView->copyImageLocation()); + } } urlMenuAdded = true; diff --git a/kmmainwidget.h b/kmmainwidget.h index b9ab1a721..398c575c1 100644 --- a/kmmainwidget.h +++ b/kmmainwidget.h @@ -371,7 +371,7 @@ class KMAIL_EXPORT KMMainWidget : public QWidget void slotSendQueuedVia( QAction* item ); void slotOnlineStatus(); void slotUpdateOnlineStatus( GlobalSettings::EnumNetworkState::type ); - void slotMessagePopup(const Akonadi::Item& ,const KUrl&,const QPoint& ); + void slotMessagePopup(const Akonadi::Item& ,const KUrl&,const KUrl &imageUrl,const QPoint& ); void slotDelayedMessagePopup( KJob *job ); void slotMarkAll(); void slotFocusQuickSearch(); diff --git a/kmreadermainwin.cpp b/kmreadermainwin.cpp index 6e80e8cc1..5be6da3db 100644 --- a/kmreadermainwin.cpp +++ b/kmreadermainwin.cpp @@ -352,8 +352,8 @@ void KMReaderMainWin::setupAccel() SLOT(slotSizeAction(int)) ); - connect( mReaderWin->viewer(), SIGNAL(popupMenu(Akonadi::Item,KUrl,QPoint)), - this, SLOT(slotMessagePopup(Akonadi::Item,KUrl,QPoint)) ); + connect( mReaderWin->viewer(), SIGNAL(popupMenu(Akonadi::Item,KUrl,KUrl,QPixmap,QPoint)), + this, SLOT(slotMessagePopup(Akonadi::Item,KUrl,KUrl,QPixmap,QPoint)) ); setStandardToolBarMenuEnabled(true); KStandardAction::configureToolbars(this, SLOT(slotEditToolbars()), actionCollection()); @@ -404,7 +404,7 @@ void KMReaderMainWin::slotCopyResult( KJob * job ) } } -void KMReaderMainWin::slotMessagePopup(const Akonadi::Item&aMsg ,const KUrl&aUrl,const QPoint& aPoint) +void KMReaderMainWin::slotMessagePopup(const Akonadi::Item&aMsg , const KUrl&aUrl, const KUrl&imageUrl, const QPoint& aPoint) { mUrl = aUrl; mMsg = aMsg; diff --git a/kmreadermainwin.h b/kmreadermainwin.h index 272f63aea..0b821b8c8 100644 --- a/kmreadermainwin.h +++ b/kmreadermainwin.h @@ -53,7 +53,7 @@ public: void showMessage( const QString & encoding, KMime::Message::Ptr message); private slots: - void slotMessagePopup(const Akonadi::Item& ,const KUrl&,const QPoint& ); + void slotMessagePopup(const Akonadi::Item& , const KUrl&, const KUrl &imageUrl, const QPoint& ); void slotDelayedMessagePopup( KJob* ); void slotTrashMsg(); void slotForwardInlineMsg(); diff --git a/kmreaderwin.cpp b/kmreaderwin.cpp index 4d24cd855..a1892a0e9 100644 --- a/kmreaderwin.cpp +++ b/kmreaderwin.cpp @@ -546,6 +546,11 @@ KAction *KMReaderWin::copyURLAction() return mViewer->copyURLAction(); } +KAction *KMReaderWin::copyImageLocation() +{ + return mViewer->copyImageLocation(); +} + KAction *KMReaderWin::copyAction() { return mViewer->copyAction(); diff --git a/kmreaderwin.h b/kmreaderwin.h index 20b344258..bb3f0b710 100644 --- a/kmreaderwin.h +++ b/kmreaderwin.h @@ -135,6 +135,7 @@ public: KAction *copyAction(); KAction *selectAllAction(); KAction *copyURLAction(); + KAction *copyImageLocation(); KAction *urlOpenAction(); KAction *urlSaveAsAction() { return mUrlSaveAsAction; } KAction *addBookmarksAction() { return mAddBookmarksAction;}