From 31bf3102fe8f8cdd3f1448f0f22f182d0c2820d2 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 23 May 2017 21:00:50 +0200 Subject: Moved MIME related stuff to a mime subdir --- .../mimetreeparser/otp/multipartalternative.cpp | 94 ---------------------- 1 file changed, 94 deletions(-) delete mode 100644 framework/src/domain/mimetreeparser/otp/multipartalternative.cpp (limited to 'framework/src/domain/mimetreeparser/otp/multipartalternative.cpp') diff --git a/framework/src/domain/mimetreeparser/otp/multipartalternative.cpp b/framework/src/domain/mimetreeparser/otp/multipartalternative.cpp deleted file mode 100644 index 42c70e28..00000000 --- a/framework/src/domain/mimetreeparser/otp/multipartalternative.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - Copyright (c) 2016 Sandro Knauß - - This library is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published by - the Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This library 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 Library General Public - License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. -*/ - -#include "multipartalternative.h" - -#include "utils.h" - -#include "objecttreeparser.h" -#include "messagepart.h" - -#include - -#include "mimetreeparser_debug.h" - -using namespace MimeTreeParser; - -const MultiPartAlternativeBodyPartFormatter *MultiPartAlternativeBodyPartFormatter::self; - -const Interface::BodyPartFormatter *MultiPartAlternativeBodyPartFormatter::create() -{ - if (!self) { - self = new MultiPartAlternativeBodyPartFormatter(); - } - return self; -} -Interface::BodyPartFormatter::Result MultiPartAlternativeBodyPartFormatter::format(Interface::BodyPart *part, HtmlWriter *writer) const -{ - Q_UNUSED(writer) - const auto p = process(*part); - const auto mp = static_cast(p.data()); - if (mp) { - mp->html(false); - return Ok; - } - return Failed; -} - -Interface::MessagePart::Ptr MultiPartAlternativeBodyPartFormatter::process(Interface::BodyPart &part) const -{ - KMime::Content *node = part.content(); - if (node->contents().isEmpty()) { - return MessagePart::Ptr(); - } - - auto preferredMode = part.source()->preferredMode(); - AlternativeMessagePart::Ptr mp(new AlternativeMessagePart(part.objectTreeParser(), node, preferredMode)); - if (mp->mChildNodes.isEmpty()) { - MimeMessagePart::Ptr _mp(new MimeMessagePart(part.objectTreeParser(), node->contents().at(0), false)); - return _mp; - } - - KMime::Content *dataIcal = mp->mChildNodes.contains(Util::MultipartIcal) ? mp->mChildNodes[Util::MultipartIcal] : nullptr; - KMime::Content *dataHtml = mp->mChildNodes.contains(Util::MultipartHtml) ? mp->mChildNodes[Util::MultipartHtml] : nullptr; - KMime::Content *dataPlain = mp->mChildNodes.contains(Util::MultipartPlain) ? mp->mChildNodes[Util::MultipartPlain] : nullptr; - - // Make sure that in default ical is prefered over html and plain text - if (dataIcal && ((preferredMode != Util::MultipartHtml && preferredMode != Util::MultipartPlain))) { - if (dataHtml) { - part.nodeHelper()->setNodeProcessed(dataHtml, false); - } - if (dataPlain) { - part.nodeHelper()->setNodeProcessed(dataPlain, false); - } - preferredMode = Util::MultipartIcal; - } else if ((dataHtml && (preferredMode == Util::MultipartHtml || preferredMode == Util::Html)) || - (dataHtml && dataPlain && dataPlain->body().isEmpty())) { - if (dataPlain) { - part.nodeHelper()->setNodeProcessed(dataPlain, false); - } - preferredMode = Util::MultipartHtml; - } else if (!(preferredMode == Util::MultipartHtml) && dataPlain) { - part.nodeHelper()->setNodeProcessed(dataHtml, false); - preferredMode = Util::MultipartPlain; - } - part.source()->setHtmlMode(preferredMode, mp->availableModes()); - mp->mPreferredMode = preferredMode; - return mp; -} -- cgit v1.2.3