diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ include(ECMQtDeclareLoggingCategory) include(ECMAddTests) -set(MESSAGELIB_LIB_VERSION "5.1.63") +set(MESSAGELIB_LIB_VERSION "5.1.64") set(KF5_VERSION "5.17.0") set(KDEPIMLIBS_LIB_VERSION "5.1.42") diff --git a/messageviewer/autotests/CMakeLists.txt b/messageviewer/autotests/CMakeLists.txt --- a/messageviewer/autotests/CMakeLists.txt +++ b/messageviewer/autotests/CMakeLists.txt @@ -77,5 +77,5 @@ set(KDEPIMLIBS_RUN_ISOLATED_TESTS TRUE) set(KDEPIMLIBS_RUN_SQLITE_ISOLATED_TESTS TRUE) -add_akonadi_isolated_test_advanced( viewertest.cpp "" "KF5::MessageViewer;KF5::XmlGui") +add_akonadi_isolated_test_advanced(viewertest.cpp "" "KF5::MessageViewer;KF5::XmlGui") diff --git a/messageviewer/autotests/unencryptedmessagetest.cpp b/messageviewer/autotests/unencryptedmessagetest.cpp --- a/messageviewer/autotests/unencryptedmessagetest.cpp +++ b/messageviewer/autotests/unencryptedmessagetest.cpp @@ -239,7 +239,7 @@ QEventLoop loop; ObjectTreeParser otp(&emptySource, &nodeHelper); - connect(&nodeHelper, SIGNAL(update(MessageViewer::Viewer::UpdateMode)), &loop, SLOT(quit())); + connect(&nodeHelper, &NodeHelper::update, &loop, &QEventLoop::quit); otp.setAllowAsync(true); otp.parseObjectTree(originalMessage.data()); loop.exec(); diff --git a/messageviewer/src/header/contactdisplaymessagememento.h b/messageviewer/src/header/contactdisplaymessagememento.h --- a/messageviewer/src/header/contactdisplaymessagememento.h +++ b/messageviewer/src/header/contactdisplaymessagememento.h @@ -61,7 +61,7 @@ Q_SIGNALS: // TODO: Factor our update and detach into base class - void update(MessageViewer::Viewer::UpdateMode); + void update(MessageViewer::UpdateMode); void changeDisplayMail(Viewer::DisplayFormatMessage displayAsHtml, bool remoteContent); private Q_SLOTS: diff --git a/messageviewer/src/header/contactdisplaymessagememento.cpp b/messageviewer/src/header/contactdisplaymessagememento.cpp --- a/messageviewer/src/header/contactdisplaymessagememento.cpp +++ b/messageviewer/src/header/contactdisplaymessagememento.cpp @@ -57,7 +57,7 @@ Akonadi::ContactSearchJob *searchJob = static_cast(job); if (searchJob->error()) { qCWarning(MESSAGEVIEWER_LOG) << "Unable to fetch contact:" << searchJob->errorText(); - Q_EMIT update(Viewer::Delayed); + Q_EMIT update(Delayed); return; } @@ -73,7 +73,7 @@ if (!mPhoto.isEmpty()) { //We have a data raw => we can update message if (mPhoto.isIntern()) { - Q_EMIT update(Viewer::Delayed); + Q_EMIT update(Delayed); } else { QUrl url = QUrl::fromUserInput(mPhoto.url(), QString(), QUrl::AssumeLocalFile); QImage image; @@ -98,7 +98,7 @@ } if (ok) { mImageFromUrl = image; - Q_EMIT update(Viewer::Delayed); + Q_EMIT update(Delayed); } } } @@ -193,6 +193,6 @@ { if (job && job->hasGravatar()) { mGravatarPixmap = job->pixmap(); - Q_EMIT update(Viewer::Delayed); + Q_EMIT update(Delayed); } } diff --git a/messageviewer/src/viewer/enums.h b/messageviewer/src/viewer/enums.h new file mode 100644 --- /dev/null +++ b/messageviewer/src/viewer/enums.h @@ -0,0 +1,54 @@ +/* + Copyright (c) 2016 Sandro Knauß + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#ifndef _MESSAGEVIEWER_ENUMS_H +#define _MESSAGEVIEWER_ENUMS_H + +namespace MessageViewer +{ + +/** + * The display update mode: Force updates the display immediately, Delayed updates + * after some time (150ms by default) + */ +enum UpdateMode { + Force = 0, + Delayed +}; + +/** Flags for the encryption state. */ +typedef enum { + KMMsgEncryptionStateUnknown = ' ', + KMMsgNotEncrypted = 'N', + KMMsgPartiallyEncrypted = 'P', + KMMsgFullyEncrypted = 'F', + KMMsgEncryptionProblematic = 'X' +} KMMsgEncryptionState; + +/** Flags for the signature state. */ +typedef enum { + KMMsgSignatureStateUnknown = ' ', + KMMsgNotSigned = 'N', + KMMsgPartiallySigned = 'P', + KMMsgFullySigned = 'F', + KMMsgSignatureProblematic = 'X' +} KMMsgSignatureState; + +} + +#endif diff --git a/messageviewer/src/viewer/memento/cryptobodypartmemento.h b/messageviewer/src/viewer/memento/cryptobodypartmemento.h --- a/messageviewer/src/viewer/memento/cryptobodypartmemento.h +++ b/messageviewer/src/viewer/memento/cryptobodypartmemento.h @@ -24,7 +24,7 @@ #include #include "interfaces/bodypart.h" -#include "messageviewer/viewer.h" +#include "viewer/enums.h" namespace MessageViewer { @@ -54,12 +54,12 @@ void detach() Q_DECL_OVERRIDE; Q_SIGNALS: - void update(MessageViewer::Viewer::UpdateMode); + void update(MessageViewer::UpdateMode); protected Q_SLOTS: void notify() { - Q_EMIT update(Viewer::Force); + Q_EMIT update(MessageViewer::Force); } protected: diff --git a/messageviewer/src/viewer/nodehelper.h b/messageviewer/src/viewer/nodehelper.h --- a/messageviewer/src/viewer/nodehelper.h +++ b/messageviewer/src/viewer/nodehelper.h @@ -21,8 +21,8 @@ #define _MESSAGEVIEWER_NODEHELPER_H #include "messageviewer_export.h" -#include "partmetadata.h" -#include "messageviewer/viewer.h" +#include "messageviewer/partmetadata.h" +#include "messageviewer/enums.h" #include @@ -50,24 +50,6 @@ namespace MessageViewer { -/** Flags for the encryption state. */ -typedef enum { - KMMsgEncryptionStateUnknown = ' ', - KMMsgNotEncrypted = 'N', - KMMsgPartiallyEncrypted = 'P', - KMMsgFullyEncrypted = 'F', - KMMsgEncryptionProblematic = 'X' -} KMMsgEncryptionState; - -/** Flags for the signature state. */ -typedef enum { - KMMsgSignatureStateUnknown = ' ', - KMMsgNotSigned = 'N', - KMMsgPartiallySigned = 'P', - KMMsgFullySigned = 'F', - KMMsgSignatureProblematic = 'X' -} KMMsgSignatureState; - /** * @author Andras Mantia */ @@ -270,7 +252,7 @@ QVector attachmentsOfExtraContents() const; Q_SIGNALS: - void update(MessageViewer::Viewer::UpdateMode); + void update(MessageViewer::UpdateMode); private: Q_DISABLE_COPY(NodeHelper) diff --git a/messageviewer/src/viewer/objecttreeparser.cpp b/messageviewer/src/viewer/objecttreeparser.cpp --- a/messageviewer/src/viewer/objecttreeparser.cpp +++ b/messageviewer/src/viewer/objecttreeparser.cpp @@ -686,8 +686,8 @@ if (allowAsync()) { QObject::connect(newM, &CryptoBodyPartMemento::update, nodeHelper(), &NodeHelper::update); - QObject::connect(newM, SIGNAL(update(MessageViewer::Viewer::UpdateMode)), mSource->sourceObject(), - SLOT(update(MessageViewer::Viewer::UpdateMode))); + QObject::connect(newM, SIGNAL(update(MessageViewer::UpdateMode)), mSource->sourceObject(), + SLOT(update(MessageViewer::UpdateMode))); if (newM->start()) { decryptionStarted = true; mHasPendingAsyncJobs = true; @@ -2018,8 +2018,8 @@ if (allowAsync()) { QObject::connect(m, &CryptoBodyPartMemento::update, mNodeHelper, &NodeHelper::update); - QObject::connect(m, SIGNAL(update(MessageViewer::Viewer::UpdateMode)), - mSource->sourceObject(), SLOT(update(MessageViewer::Viewer::UpdateMode))); + QObject::connect(m, SIGNAL(update(MessageViewer::UpdateMode)), + mSource->sourceObject(), SLOT(update(MessageViewer::UpdateMode))); if (m->start()) { messagePart.inProgress = true; diff --git a/messageviewer/src/viewer/urlhandlermanager.cpp b/messageviewer/src/viewer/urlhandlermanager.cpp --- a/messageviewer/src/viewer/urlhandlermanager.cpp +++ b/messageviewer/src/viewer/urlhandlermanager.cpp @@ -579,7 +579,7 @@ const QString urlPath(url.path()); if (urlPath == QLatin1String("showHTML")) { w->setDisplayFormatMessageOverwrite(MessageViewer::Viewer::Html); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("goOnline")) { w->goOnline(); @@ -589,43 +589,43 @@ return true; } else if (urlPath == QLatin1String("loadExternal")) { w->setHtmlLoadExtOverride(!w->htmlLoadExtOverride()); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("decryptMessage")) { w->setDecryptMessageOverwrite(true); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("showSignatureDetails")) { w->setShowSignatureDetails(true); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("hideSignatureDetails")) { w->setShowSignatureDetails(false); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("showAttachmentQuicklist")) { w->setShowAttachmentQuicklist(true); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("hideAttachmentQuicklist")) { w->setShowAttachmentQuicklist(false); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("showFullToAddressList")) { w->setShowFullToAddressList(true); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("hideFullToAddressList")) { w->setShowFullToAddressList(false); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("showFullCcAddressList")) { w->setShowFullCcAddressList(true); - w->update(Viewer::Force); + w->update(Force); return true; } else if (urlPath == QLatin1String("hideFullCcAddressList")) { w->setShowFullCcAddressList(false); - w->update(Viewer::Force); + w->update(Force); return true; } } diff --git a/messageviewer/src/viewer/viewer.h b/messageviewer/src/viewer/viewer.h --- a/messageviewer/src/viewer/viewer.h +++ b/messageviewer/src/viewer/viewer.h @@ -24,6 +24,7 @@ #include "messageviewer_export.h" #include "messageviewer/viewerplugininterface.h" +#include "messageviewer/enums.h" #include @@ -136,15 +137,6 @@ PrintPreview }; - /** - * The display update mode: Force updates the display immediately, Delayed updates - * after some time (150ms by default) - */ - enum UpdateMode { - Force = 0, - Delayed - }; - enum ResourceOnlineMode { AllResources = 0, SelectedResource = 1 diff --git a/messageviewer/src/viewer/viewer.cpp b/messageviewer/src/viewer/viewer.cpp --- a/messageviewer/src/viewer/viewer.cpp +++ b/messageviewer/src/viewer/viewer.cpp @@ -341,7 +341,7 @@ if (e->type() == QEvent::PaletteChange) { delete d->mCSSHelper; d->mCSSHelper = new CSSHelper(d->mViewer); - d->update(Viewer::Force); // Force update + d->update(Force); // Force update return true; } return QWidget::event(e); @@ -480,7 +480,7 @@ return d->mImageUrl; } -void Viewer::update(MessageViewer::Viewer::UpdateMode updateMode) +void Viewer::update(MessageViewer::UpdateMode updateMode) { Q_D(Viewer); d->update(updateMode); @@ -492,7 +492,7 @@ d->setMessagePart(aMsgPart); } -void Viewer::clear(Viewer::UpdateMode updateMode) +void Viewer::clear(UpdateMode updateMode) { setMessage(KMime::Message::Ptr(), updateMode); } @@ -623,7 +623,7 @@ { setHtmlLoadExtOverride(loadExternal); setDisplayFormatMessageOverwrite(mode); - update(Viewer::Force); + update(Force); } QAction *Viewer::saveMessageDisplayFormatAction() const diff --git a/messageviewer/src/viewer/viewer_p.h b/messageviewer/src/viewer/viewer_p.h --- a/messageviewer/src/viewer/viewer_p.h +++ b/messageviewer/src/viewer/viewer_p.h @@ -314,20 +314,20 @@ void resetStateForNewMessage(); - void setMessageInternal(const KMime::Message::Ptr &message, Viewer::UpdateMode updateMode); + void setMessageInternal(const KMime::Message::Ptr &message, UpdateMode updateMode); /** Set the Akonadi item that will be displayed. * @param item - the Akonadi item to be displayed. If it doesn't hold a mail (KMime::Message::Ptr as payload data), * an empty page is shown. * @param updateMode - update the display immediately or not. See MailViewer::UpdateMode. */ - void setMessageItem(const Akonadi::Item &item, Viewer::UpdateMode updateMode = Viewer::Delayed); + void setMessageItem(const Akonadi::Item &item, UpdateMode updateMode = Delayed); /** Set the message that shall be shown. * @param msg - the message to be shown. If 0, an empty page is displayed. * @param updateMode - update the display immediately or not. See MailViewer::UpdateMode. */ - void setMessage(const KMime::Message::Ptr &msg, Viewer::UpdateMode updateMode = Viewer::Delayed); + void setMessage(const KMime::Message::Ptr &msg, UpdateMode updateMode = Delayed); /** Instead of settings a message to be shown sets a message part to be shown */ @@ -553,7 +553,7 @@ void slotUrlCopy(); void slotSaveMessage(); /** Re-parse the current message. */ - void update(MessageViewer::Viewer::UpdateMode updateMode = Viewer::Delayed); + void update(MessageViewer::UpdateMode updateMode = Delayed); void slotSpeakText(); void slotCopyImageLocation(); diff --git a/messageviewer/src/viewer/viewer_p.cpp b/messageviewer/src/viewer/viewer_p.cpp --- a/messageviewer/src/viewer/viewer_p.cpp +++ b/messageviewer/src/viewer/viewer_p.cpp @@ -434,7 +434,7 @@ if (job->error()) { qCDebug(MESSAGEVIEWER_LOG) << "Item update failed:" << job->errorString(); } else { - setMessageItem(mMessageItem, MessageViewer::Viewer::Force); + setMessageItem(mMessageItem, MessageViewer::Force); } } @@ -1189,7 +1189,7 @@ return; } mAttachmentStrategy = strategy ? strategy : AttachmentStrategy::smart(); - update(Viewer::Force); + update(Force); } QString ViewerPrivate::overrideEncoding() const @@ -1225,7 +1225,7 @@ } } } - update(Viewer::Force); + update(Force); } void ViewerPrivate::setPrinting(bool enable) @@ -1237,14 +1237,14 @@ { disconnect(mPartHtmlWriter.data(), &WebKitPartHtmlWriter::finished, this, &ViewerPrivate::slotPrintMsg); connect(mPartHtmlWriter.data(), &WebKitPartHtmlWriter::finished, this, &ViewerPrivate::slotPrintMsg); - setMessageItem(message, Viewer::Force); + setMessageItem(message, Force); } void ViewerPrivate::printPreviewMessage(const Akonadi::Item &message) { disconnect(mPartHtmlWriter.data(), &WebKitPartHtmlWriter::finished, this, &ViewerPrivate::slotPrintPreview); connect(mPartHtmlWriter.data(), &WebKitPartHtmlWriter::finished, this, &ViewerPrivate::slotPrintPreview); - setMessageItem(message, Viewer::Force); + setMessageItem(message, Force); } void ViewerPrivate::resetStateForNewMessage() @@ -1279,7 +1279,7 @@ } void ViewerPrivate::setMessageInternal(const KMime::Message::Ptr &message, - Viewer::UpdateMode updateMode) + UpdateMode updateMode) { mViewerPluginToolManager->updateActions(mMessageItem); mMessage = message; @@ -1294,7 +1294,7 @@ } -void ViewerPrivate::setMessageItem(const Akonadi::Item &item, Viewer::UpdateMode updateMode) +void ViewerPrivate::setMessageItem(const Akonadi::Item &item, UpdateMode updateMode) { resetStateForNewMessage(); foreach (const Akonadi::Item::Id monitoredId, mMonitor.itemsMonitoredEx()) { @@ -1317,7 +1317,7 @@ setMessageInternal(mMessageItem.payload(), updateMode); } -void ViewerPrivate::setMessage(const KMime::Message::Ptr &aMsg, Viewer::UpdateMode updateMode) +void ViewerPrivate::setMessage(const KMime::Message::Ptr &aMsg, UpdateMode updateMode) { resetStateForNewMessage(); @@ -1497,12 +1497,12 @@ void ViewerPrivate::slotStyleChanged(MessageViewer::HeaderStylePlugin *plugin) { mHeaderStylePlugin = plugin; - update(Viewer::Force); + update(Force); } void ViewerPrivate::slotStyleUpdated() { - update(Viewer::Force); + update(Force); } void ViewerPrivate::createActions() @@ -1930,10 +1930,10 @@ return KCharsets::charsets()->codecForName(QLatin1String(codec)); } -void ViewerPrivate::update(MessageViewer::Viewer::UpdateMode updateMode) +void ViewerPrivate::update(MessageViewer::UpdateMode updateMode) { // Avoid flicker, somewhat of a cludge - if (updateMode == Viewer::Force) { + if (updateMode == Force) { // stop the timer to avoid calling updateReaderWin twice mUpdateReaderWinTimer.stop(); saveRelativePosition(); @@ -2027,7 +2027,7 @@ return; } setHtmlLoadExtOverride(true); - update(Viewer::Force); + update(Force); } void ViewerPrivate::slotToggleHtmlMode() @@ -2038,7 +2038,7 @@ mScamDetectionWarning->setVisible(false); const bool useHtml = !htmlMail(); setDisplayFormatMessageOverwrite(useHtml ? MessageViewer::Viewer::Html : MessageViewer::Viewer::Text); - update(Viewer::Force); + update(Force); } void ViewerPrivate::slotFind() @@ -2053,7 +2053,7 @@ void ViewerPrivate::slotToggleFixedFont() { mUseFixedFont = !mUseFixedFont; - update(Viewer::Force); + update(Force); } void ViewerPrivate::slotToggleMimePartTree() @@ -2156,7 +2156,7 @@ #ifndef QT_NO_TREEVIEW KMime::Content *content = static_cast(index.internalPointer()); if (!mMimePartTree->mimePartModel()->parent(index).isValid() && index.row() == 0) { - update(Viewer::Force); + update(Force); } else { setMessagePart(content); } @@ -2246,7 +2246,7 @@ } else { mOverrideEncoding = NodeHelper::encodingForName(mSelectEncodingAction->currentText()); } - update(Viewer::Force); + update(Force); } QString ViewerPrivate::picsPath() @@ -2305,7 +2305,7 @@ void ViewerPrivate::slotSettingsChanged() { - update(Viewer::Force); + update(Force); } void ViewerPrivate::slotMimeTreeContextMenuRequested(const QPoint &pos) @@ -2509,7 +2509,7 @@ { if (mLevelQuote != l) { mLevelQuote = l; - update(Viewer::Force); + update(Force); } } @@ -2808,7 +2808,7 @@ return; } if (parts.contains("PLD:RFC822")) { - setMessageItem(item, Viewer::Force); + setMessageItem(item, Force); } } @@ -2823,7 +2823,7 @@ void ViewerPrivate::slotClear() { - q->clear(Viewer::Force); + q->clear(Force); Q_EMIT itemRemoved(); } @@ -2991,7 +2991,7 @@ void ViewerPrivate::slotRefreshMessage(const Akonadi::Item &item) { if (item.id() == mMessageItem.id()) { - setMessageItem(item, MessageViewer::Viewer::Force); + setMessageItem(item, MessageViewer::Force); } }