File indexing completed on 2025-03-09 04:54:41

0001 /*
0002   SPDX-FileCopyrightText: 2009 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.net
0003   SPDX-FileCopyrightText: 2009 Andras Mantia <andras@kdab.net>
0004 
0005   SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "objecttreeviewersource.h"
0009 #include "csshelper.h"
0010 #include <MimeTreeParser/BodyPartFormatterFactory>
0011 
0012 #include "messagepartthemes/default/defaultrenderer.h"
0013 #include <MimeTreeParser/BodyPartFormatter>
0014 
0015 #include "settings/messageviewersettings.h"
0016 #include "viewer/viewer_p.h"
0017 #include "widgets/htmlstatusbar.h"
0018 
0019 using namespace MessageViewer;
0020 
0021 MailViewerSource::MailViewerSource(ViewerPrivate *viewer)
0022     : MessageViewer::EmptySource()
0023     , mViewer(viewer)
0024 {
0025 }
0026 
0027 MailViewerSource::~MailViewerSource() = default;
0028 
0029 bool MailViewerSource::decryptMessage() const
0030 {
0031     return mViewer->decryptMessage();
0032 }
0033 
0034 bool MailViewerSource::htmlLoadExternal() const
0035 {
0036     return mViewer->htmlLoadExternal();
0037 }
0038 
0039 bool MailViewerSource::showSignatureDetails() const
0040 {
0041     return mViewer->mShowSignatureDetails;
0042 }
0043 
0044 bool MailViewerSource::showEncryptionDetails() const
0045 {
0046     return mViewer->mShowEncryptionDetails;
0047 }
0048 
0049 void MailViewerSource::setHtmlMode(MimeTreeParser::Util::HtmlMode mode, const QList<MimeTreeParser::Util::HtmlMode> &availableModes)
0050 {
0051     //    qDebug() << " void MailViewerSource::setHtmlMode(MimeTreeParser::Util::HtmlMode mode, const QList<MimeTreeParser::Util::HtmlMode> &availableModes)";
0052     //    for (int i = 0; i < availableModes.count(); ++i) {
0053     //        qDebug() << "MailViewerSource::setHtmlMode Mode " << MimeTreeParser::Util::htmlModeToString(availableModes.at(i));
0054     //    }
0055     //    qDebug() << "MailViewerSource::setHtmlMode preferred " << MimeTreeParser::Util::htmlModeToString(mode);
0056 
0057     mViewer->mColorBar->setAvailableModes(availableModes);
0058     mViewer->mColorBar->setMode(mode);
0059 }
0060 
0061 MimeTreeParser::Util::HtmlMode MailViewerSource::preferredMode() const
0062 {
0063     switch (mViewer->displayFormatMessageOverwrite()) {
0064     case MessageViewer::Viewer::UseGlobalSetting:
0065     case MessageViewer::Viewer::Unknown:
0066         return mViewer->htmlMailGlobalSetting() ? MimeTreeParser::Util::Html : MimeTreeParser::Util ::Normal;
0067     case MessageViewer::Viewer::Html:
0068         return MimeTreeParser::Util::MultipartHtml;
0069     case MessageViewer::Viewer::Text:
0070         return MimeTreeParser::Util::MultipartPlain;
0071     case MessageViewer::Viewer::ICal:
0072         return MimeTreeParser::Util::MultipartIcal;
0073     }
0074     Q_ASSERT(true);
0075     return MimeTreeParser::Util::Html;
0076 }
0077 
0078 int MailViewerSource::levelQuote() const
0079 {
0080     return mViewer->mLevelQuote;
0081 }
0082 
0083 QByteArray MailViewerSource::overrideCodecName() const
0084 {
0085     return mViewer->overrideCodecName();
0086 }
0087 
0088 QString MailViewerSource::createMessageHeader(KMime::Message *message)
0089 {
0090     return mViewer->writeMessageHeader(message, nullptr, false);
0091 }
0092 
0093 const AttachmentStrategy *MailViewerSource::attachmentStrategy() const
0094 {
0095     return mViewer->attachmentStrategy();
0096 }
0097 
0098 CSSHelperBase *MailViewerSource::cssHelper() const
0099 {
0100     return mViewer->cssHelper();
0101 }
0102 
0103 HtmlWriter *MailViewerSource::htmlWriter() const
0104 {
0105     return mViewer->htmlWriter();
0106 }
0107 
0108 bool MailViewerSource::autoImportKeys() const
0109 {
0110     return MessageViewer::MessageViewerSettings::self()->autoImportKeys();
0111 }
0112 
0113 bool MailViewerSource::showEmoticons() const
0114 {
0115     return mViewer->showEmoticons();
0116 }
0117 
0118 bool MailViewerSource::showExpandQuotesMark() const
0119 {
0120     return MessageViewer::MessageViewerSettings::self()->showExpandQuotesMark();
0121 }
0122 
0123 bool MailViewerSource::isPrinting() const
0124 {
0125     return mViewer->mPrinting;
0126 }