File indexing completed on 2024-06-23 05:18:34

0001 /*
0002   SPDX-FileCopyrightText: 2009 Constantin Berzan <exit3219@gmail.com>
0003 
0004   SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QString>
0010 
0011 #include "messagecomposer_export.h"
0012 #include "messagepart.h"
0013 #include <KPIMTextEdit/RichTextComposerImages>
0014 
0015 namespace MessageComposer
0016 {
0017 /**
0018  * @brief The TextPart class
0019  */
0020 class MESSAGECOMPOSER_EXPORT TextPart : public MessagePart
0021 {
0022     Q_OBJECT
0023 
0024     /// True iff the text is word wrapped. By default: true.
0025     Q_PROPERTY(bool isWordWrappingEnabled READ isWordWrappingEnabled WRITE setWordWrappingEnabled NOTIFY wordWrappingChanged)
0026 
0027     /// Default true.
0028     Q_PROPERTY(bool warnBadCharset READ warnBadCharset WRITE setWarnBadCharset NOTIFY warnBadCharsetChanged)
0029 
0030     Q_PROPERTY(QString cleanPlainText READ cleanPlainText WRITE setCleanPlainText NOTIFY cleanPlainTextChanged)
0031     Q_PROPERTY(QString wrappedPlainText READ wrappedPlainText WRITE setWrappedPlainText NOTIFY wrappedPlainTextChanged)
0032     Q_PROPERTY(QString cleanHtml READ cleanHtml WRITE setCleanHtml NOTIFY cleanHtmlChanged)
0033     Q_PROPERTY(bool isHtmlUsed READ isHtmlUsed NOTIFY cleanHtmlChanged)
0034     Q_PROPERTY(bool hasEmbeddedImages READ hasEmbeddedImages NOTIFY embeddedImagesChanged)
0035     Q_PROPERTY(KPIMTextEdit::ImageList embeddedImages READ embeddedImages WRITE setEmbeddedImages NOTIFY embeddedImagesChanged)
0036 
0037 public:
0038     explicit TextPart(QObject *parent = nullptr);
0039     ~TextPart() override;
0040 
0041     // default true
0042     [[nodiscard]] bool isWordWrappingEnabled() const;
0043     void setWordWrappingEnabled(bool enabled);
0044     // default true
0045     [[nodiscard]] bool warnBadCharset() const;
0046     void setWarnBadCharset(bool warn);
0047 
0048     [[nodiscard]] QString cleanPlainText() const;
0049     void setCleanPlainText(const QString &text);
0050     [[nodiscard]] QString wrappedPlainText() const;
0051     void setWrappedPlainText(const QString &text);
0052 
0053     [[nodiscard]] bool isHtmlUsed() const;
0054     [[nodiscard]] QString cleanHtml() const;
0055     void setCleanHtml(const QString &text);
0056 
0057     [[nodiscard]] bool hasEmbeddedImages() const;
0058     [[nodiscard]] KPIMTextEdit::ImageList embeddedImages() const;
0059     void setEmbeddedImages(const KPIMTextEdit::ImageList &images);
0060 
0061 Q_SIGNALS:
0062     void wordWrappingChanged();
0063     void warnBadCharsetChanged();
0064     void cleanPlainTextChanged();
0065     void wrappedPlainTextChanged();
0066     void cleanHtmlChanged();
0067     void embeddedImagesChanged();
0068 
0069 private:
0070     class TextPartPrivate;
0071     std::unique_ptr<TextPartPrivate> const d;
0072 };
0073 } // namespace MessageComposer