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

0001 /*  -*- c++ -*-
0002     headerstyle.cpp
0003 
0004     This file is part of KMail, the KDE mail client.
0005     SPDX-FileCopyrightText: 2003 Marc Mutz <mutz@kde.org>
0006 
0007     SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0008 
0009     SPDX-License-Identifier: GPL-2.0-or-later
0010 */
0011 
0012 #include "headerstyle.h"
0013 #include <GrantleeTheme/GrantleeTheme>
0014 
0015 using namespace MessageViewer;
0016 //
0017 // HeaderStyle abstract base:
0018 //
0019 class MessageViewer::HeaderStylePrivate
0020 {
0021 public:
0022     HeaderStylePrivate() = default;
0023 
0024     GrantleeTheme::Theme mTheme;
0025     const HeaderStrategy *mStrategy = nullptr;
0026     QString mVCardName;
0027     QString mAttachmentHtml;
0028     MimeTreeParser::NodeHelper *mNodeHelper = nullptr;
0029     QObject *mSourceObject = nullptr;
0030     Akonadi::MessageStatus mMessageStatus;
0031     bool mPrinting = false;
0032     bool mTopLevel = true;
0033     bool mAllowAsync = false;
0034     bool mReadOnlyMessage = false;
0035     bool mShowEmoticons = true;
0036 };
0037 
0038 HeaderStyle::HeaderStyle()
0039     : d(new MessageViewer::HeaderStylePrivate)
0040 {
0041 }
0042 
0043 HeaderStyle::~HeaderStyle() = default;
0044 
0045 void HeaderStyle::setAttachmentHtml(const QString &html)
0046 {
0047     d->mAttachmentHtml = html;
0048 }
0049 
0050 QString HeaderStyle::attachmentHtml() const
0051 {
0052     return d->mAttachmentHtml;
0053 }
0054 
0055 void HeaderStyle::setHeaderStrategy(const HeaderStrategy *strategy)
0056 {
0057     d->mStrategy = strategy;
0058 }
0059 
0060 const HeaderStrategy *HeaderStyle::headerStrategy() const
0061 {
0062     return d->mStrategy;
0063 }
0064 
0065 void HeaderStyle::setVCardName(const QString &vCardName)
0066 {
0067     d->mVCardName = vCardName;
0068 }
0069 
0070 QString HeaderStyle::vCardName() const
0071 {
0072     return d->mVCardName;
0073 }
0074 
0075 void HeaderStyle::setPrinting(bool printing)
0076 {
0077     d->mPrinting = printing;
0078 }
0079 
0080 bool HeaderStyle::isPrinting() const
0081 {
0082     return d->mPrinting;
0083 }
0084 
0085 void HeaderStyle::setTopLevel(bool topLevel)
0086 {
0087     d->mTopLevel = topLevel;
0088 }
0089 
0090 bool HeaderStyle::isTopLevel() const
0091 {
0092     return d->mTopLevel;
0093 }
0094 
0095 void HeaderStyle::setNodeHelper(MimeTreeParser::NodeHelper *nodeHelper)
0096 {
0097     d->mNodeHelper = nodeHelper;
0098 }
0099 
0100 MimeTreeParser::NodeHelper *HeaderStyle::nodeHelper() const
0101 {
0102     return d->mNodeHelper;
0103 }
0104 
0105 void HeaderStyle::setAllowAsync(bool allowAsync)
0106 {
0107     d->mAllowAsync = allowAsync;
0108 }
0109 
0110 bool HeaderStyle::allowAsync() const
0111 {
0112     return d->mAllowAsync;
0113 }
0114 
0115 void HeaderStyle::setSourceObject(QObject *sourceObject)
0116 {
0117     d->mSourceObject = sourceObject;
0118 }
0119 
0120 QObject *HeaderStyle::sourceObject() const
0121 {
0122     return d->mSourceObject;
0123 }
0124 
0125 void HeaderStyle::setMessageStatus(Akonadi::MessageStatus status)
0126 {
0127     d->mMessageStatus = status;
0128 }
0129 
0130 Akonadi::MessageStatus HeaderStyle::messageStatus() const
0131 {
0132     return d->mMessageStatus;
0133 }
0134 
0135 void HeaderStyle::setTheme(const GrantleeTheme::Theme &theme)
0136 {
0137     d->mTheme = theme;
0138 }
0139 
0140 GrantleeTheme::Theme HeaderStyle::theme() const
0141 {
0142     return d->mTheme;
0143 }
0144 
0145 bool HeaderStyle::readOnlyMessage() const
0146 {
0147     return d->mReadOnlyMessage;
0148 }
0149 
0150 void HeaderStyle::setReadOnlyMessage(bool readOnlyMessage)
0151 {
0152     d->mReadOnlyMessage = readOnlyMessage;
0153 }
0154 
0155 bool HeaderStyle::showEmoticons() const
0156 {
0157     return d->mShowEmoticons;
0158 }
0159 
0160 void HeaderStyle::setShowEmoticons(bool b)
0161 {
0162     d->mShowEmoticons = b;
0163 }