// This file is generated by kconfig_compiler_kf5 from messagecomposer.kcfg.
// All changes you do to this file will be lost.
#ifndef MESSAGECOMPOSER_MESSAGECOMPOSERSETTINGSBASE_H
#define MESSAGECOMPOSER_MESSAGECOMPOSERSETTINGSBASE_H

#include <qapplication.h>
#include <messagecomposer_export.h>
#include <messagecomposer_debug.h>

#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

namespace MessageComposer {

class MESSAGECOMPOSER_EXPORT MessageComposerSettingsBase : public KConfigSkeleton
{
  public:
    class EnumFilterSourceType
    {
      public:
      enum type { NoFilter, IncludeFilesWithPattern, ExcludeFilesWithPattern, COUNT };
    };
    class EnumFilterRecipientType
    {
      public:
      enum type { NoFilter, ResizeEachEmailsContainsPattern, ResizeOneEmailContainsPattern, DontResizeEachEmailsContainsPattern, DontResizeOneEmailContainsPattern, COUNT };
    };

    static MessageComposerSettingsBase *self();
    ~MessageComposerSettingsBase();

    /**
      Set myMessageIdSuffix
    */
    static
    void setCustomMsgIDSuffix( const QString & v )
    {
      if (!self()->isCustomMsgIDSuffixImmutable())
        self()->mCustomMsgIDSuffix = v;
    }

    /**
      Get myMessageIdSuffix
    */
    static
    QString customMsgIDSuffix()
    {
      return self()->mCustomMsgIDSuffix;
    }

    /**
      Is myMessageIdSuffix Immutable
    */
    static
    bool isCustomMsgIDSuffixImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomMsgIDSuffix" ) );
    }

    /**
      Get Item object corresponding to CustomMsgIDSuffix()
    */
    ItemString *customMsgIDSuffixItem()
    {
      return mCustomMsgIDSuffixItem;
    }

    /**
      Set useCustomMessageIdSuffix
    */
    static
    void setUseCustomMessageIdSuffix( bool v )
    {
      if (!self()->isUseCustomMessageIdSuffixImmutable())
        self()->mUseCustomMessageIdSuffix = v;
    }

    /**
      Get useCustomMessageIdSuffix
    */
    static
    bool useCustomMessageIdSuffix()
    {
      return self()->mUseCustomMessageIdSuffix;
    }

    /**
      Is useCustomMessageIdSuffix Immutable
    */
    static
    bool isUseCustomMessageIdSuffixImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseCustomMessageIdSuffix" ) );
    }

    /**
      Get Item object corresponding to UseCustomMessageIdSuffix()
    */
    ItemBool *useCustomMessageIdSuffixItem()
    {
      return mUseCustomMessageIdSuffixItem;
    }

    /**
      Set Only quote selected text when replying
    */
    static
    void setQuoteSelectionOnly( bool v )
    {
      if (!self()->isQuoteSelectionOnlyImmutable())
        self()->mQuoteSelectionOnly = v;
    }

    /**
      Get Only quote selected text when replying
    */
    static
    bool quoteSelectionOnly()
    {
      return self()->mQuoteSelectionOnly;
    }

    /**
      Is Only quote selected text when replying Immutable
    */
    static
    bool isQuoteSelectionOnlyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "QuoteSelectionOnly" ) );
    }

    /**
      Get Item object corresponding to QuoteSelectionOnly()
    */
    ItemBool *quoteSelectionOnlyItem()
    {
      return mQuoteSelectionOnlyItem;
    }

    /**
      Set Keep original charset when replying or forwarding if possible
    */
    static
    void setForceReplyCharset( bool v )
    {
      if (!self()->isForceReplyCharsetImmutable())
        self()->mForceReplyCharset = v;
    }

    /**
      Get Keep original charset when replying or forwarding if possible
    */
    static
    bool forceReplyCharset()
    {
      return self()->mForceReplyCharset;
    }

    /**
      Is Keep original charset when replying or forwarding if possible Immutable
    */
    static
    bool isForceReplyCharsetImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ForceReplyCharset" ) );
    }

    /**
      Get Item object corresponding to ForceReplyCharset()
    */
    ItemBool *forceReplyCharsetItem()
    {
      return mForceReplyCharsetItem;
    }

    /**
      Set pref-charsets
    */
    static
    void setPreferredCharsets( const QStringList & v )
    {
      if (!self()->isPreferredCharsetsImmutable())
        self()->mPreferredCharsets = v;
    }

    /**
      Get pref-charsets
    */
    static
    QStringList preferredCharsets()
    {
      return self()->mPreferredCharsets;
    }

    /**
      Is pref-charsets Immutable
    */
    static
    bool isPreferredCharsetsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreferredCharsets" ) );
    }

    /**
      Get Item object corresponding to PreferredCharsets()
    */
    ItemStringList *preferredCharsetsItem()
    {
      return mPreferredCharsetsItem;
    }

    /**
      Set A&utomatically insert signature
    */
    static
    void setAutoTextSignature( const QString & v )
    {
      if (!self()->isAutoTextSignatureImmutable())
        self()->mAutoTextSignature = v;
    }

    /**
      Get A&utomatically insert signature
    */
    static
    QString autoTextSignature()
    {
      return self()->mAutoTextSignature;
    }

    /**
      Is A&utomatically insert signature Immutable
    */
    static
    bool isAutoTextSignatureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoTextSignature" ) );
    }

    /**
      Get Item object corresponding to AutoTextSignature()
    */
    ItemString *autoTextSignatureItem()
    {
      return mAutoTextSignatureItem;
    }

    /**
      Set Insert signature above quoted text
    */
    static
    void setPrependSignature( bool v )
    {
      if (!self()->isPrependSignatureImmutable())
        self()->mPrependSignature = v;
    }

    /**
      Get Insert signature above quoted text
    */
    static
    bool prependSignature()
    {
      return self()->mPrependSignature;
    }

    /**
      Is Insert signature above quoted text Immutable
    */
    static
    bool isPrependSignatureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PrependSignature" ) );
    }

    /**
      Get Item object corresponding to PrependSignature()
    */
    ItemBool *prependSignatureItem()
    {
      return mPrependSignatureItem;
    }

    /**
      Set Prepend separator to signature
    */
    static
    void setDashDashSignature( bool v )
    {
      if (!self()->isDashDashSignatureImmutable())
        self()->mDashDashSignature = v;
    }

    /**
      Get Prepend separator to signature
    */
    static
    bool dashDashSignature()
    {
      return self()->mDashDashSignature;
    }

    /**
      Is Prepend separator to signature Immutable
    */
    static
    bool isDashDashSignatureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DashDashSignature" ) );
    }

    /**
      Get Item object corresponding to DashDashSignature()
    */
    ItemBool *dashDashSignatureItem()
    {
      return mDashDashSignatureItem;
    }

    /**
      Set Use addresses indexed from emails for autocompletion
    */
    static
    void setShowBalooSearchInComposer( bool v )
    {
      if (!self()->isShowBalooSearchInComposerImmutable())
        self()->mShowBalooSearchInComposer = v;
    }

    /**
      Get Use addresses indexed from emails for autocompletion
    */
    static
    bool showBalooSearchInComposer()
    {
      return self()->mShowBalooSearchInComposer;
    }

    /**
      Is Use addresses indexed from emails for autocompletion Immutable
    */
    static
    bool isShowBalooSearchInComposerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowBalooSearchInComposer" ) );
    }

    /**
      Get Item object corresponding to ShowBalooSearchInComposer()
    */
    ItemBool *showBalooSearchInComposerItem()
    {
      return mShowBalooSearchInComposerItem;
    }

    /**
      Set Allow the semicolon character (';') to be used as separator in the message composer
    */
    static
    void setAllowSemicolonAsAddressSeparator( bool v )
    {
      if (!self()->isAllowSemicolonAsAddressSeparatorImmutable())
        self()->mAllowSemicolonAsAddressSeparator = v;
    }

    /**
      Get Allow the semicolon character (';') to be used as separator in the message composer
    */
    static
    bool allowSemicolonAsAddressSeparator()
    {
      return self()->mAllowSemicolonAsAddressSeparator;
    }

    /**
      Is Allow the semicolon character (';') to be used as separator in the message composer Immutable
    */
    static
    bool isAllowSemicolonAsAddressSeparatorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AllowSemicolonAsAddressSeparator" ) );
    }

    /**
      Get Item object corresponding to AllowSemicolonAsAddressSeparator()
    */
    ItemBool *allowSemicolonAsAddressSeparatorItem()
    {
      return mAllowSemicolonAsAddressSeparatorItem;
    }

    /**
      Set Use recent addresses for autocompletion
    */
    static
    void setShowRecentAddressesInComposer( bool v )
    {
      if (!self()->isShowRecentAddressesInComposerImmutable())
        self()->mShowRecentAddressesInComposer = v;
    }

    /**
      Get Use recent addresses for autocompletion
    */
    static
    bool showRecentAddressesInComposer()
    {
      return self()->mShowRecentAddressesInComposer;
    }

    /**
      Is Use recent addresses for autocompletion Immutable
    */
    static
    bool isShowRecentAddressesInComposerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowRecentAddressesInComposer" ) );
    }

    /**
      Get Item object corresponding to ShowRecentAddressesInComposer()
    */
    ItemBool *showRecentAddressesInComposerItem()
    {
      return mShowRecentAddressesInComposerItem;
    }

    /**
      Set Maximum number of recipient entries:
    */
    static
    void setMaximumRecipients( int v )
    {
      if (!self()->isMaximumRecipientsImmutable())
        self()->mMaximumRecipients = v;
    }

    /**
      Get Maximum number of recipient entries:
    */
    static
    int maximumRecipients()
    {
      return self()->mMaximumRecipients;
    }

    /**
      Is Maximum number of recipient entries: Immutable
    */
    static
    bool isMaximumRecipientsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaximumRecipients" ) );
    }

    /**
      Get Item object corresponding to MaximumRecipients()
    */
    ItemInt *maximumRecipientsItem()
    {
      return mMaximumRecipientsItem;
    }

    /**
      Set Outlook-compatible attachment naming
    */
    static
    void setOutlookCompatibleAttachments( bool v )
    {
      if (!self()->isOutlookCompatibleAttachmentsImmutable())
        self()->mOutlookCompatibleAttachments = v;
    }

    /**
      Get Outlook-compatible attachment naming
    */
    static
    bool outlookCompatibleAttachments()
    {
      return self()->mOutlookCompatibleAttachments;
    }

    /**
      Is Outlook-compatible attachment naming Immutable
    */
    static
    bool isOutlookCompatibleAttachmentsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "OutlookCompatibleAttachments" ) );
    }

    /**
      Get Item object corresponding to OutlookCompatibleAttachments()
    */
    ItemBool *outlookCompatibleAttachmentsItem()
    {
      return mOutlookCompatibleAttachmentsItem;
    }

    /**
      Set Word &wrap at column:
    */
    static
    void setWordWrap( bool v )
    {
      if (!self()->isWordWrapImmutable())
        self()->mWordWrap = v;
    }

    /**
      Get Word &wrap at column:
    */
    static
    bool wordWrap()
    {
      return self()->mWordWrap;
    }

    /**
      Is Word &wrap at column: Immutable
    */
    static
    bool isWordWrapImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WordWrap" ) );
    }

    /**
      Get Item object corresponding to WordWrap()
    */
    ItemBool *wordWrapItem()
    {
      return mWordWrapItem;
    }

    /**
      Set break-at
    */
    static
    void setLineWrapWidth( int v )
    {
      if (v < 30)
      {
        qCDebug(MESSAGECOMPOSER_LOG) << "setLineWrapWidth: value " << v << " is less than the minimum value of 30";
        v = 30;
      }

      if (v > 998)
      {
        qCDebug(MESSAGECOMPOSER_LOG) << "setLineWrapWidth: value " << v << " is greater than the maximum value of 998";
        v = 998;
      }

      if (!self()->isLineWrapWidthImmutable())
        self()->mLineWrapWidth = v;
    }

    /**
      Get break-at
    */
    static
    int lineWrapWidth()
    {
      return self()->mLineWrapWidth;
    }

    /**
      Is break-at Immutable
    */
    static
    bool isLineWrapWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LineWrapWidth" ) );
    }

    /**
      Get Item object corresponding to LineWrapWidth()
    */
    ItemInt *lineWrapWidthItem()
    {
      return mLineWrapWidthItem;
    }

    /**
      Set Improve plain text version of HTML message
    */
    static
    void setImprovePlainTextOfHtmlMessage( bool v )
    {
      if (!self()->isImprovePlainTextOfHtmlMessageImmutable())
        self()->mImprovePlainTextOfHtmlMessage = v;
    }

    /**
      Get Improve plain text version of HTML message
    */
    static
    bool improvePlainTextOfHtmlMessage()
    {
      return self()->mImprovePlainTextOfHtmlMessage;
    }

    /**
      Is Improve plain text version of HTML message Immutable
    */
    static
    bool isImprovePlainTextOfHtmlMessageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImprovePlainTextOfHtmlMessage" ) );
    }

    /**
      Get Item object corresponding to ImprovePlainTextOfHtmlMessage()
    */
    ItemBool *improvePlainTextOfHtmlMessageItem()
    {
      return mImprovePlainTextOfHtmlMessageItem;
    }

    /**
      Set Warn before sending unencrypted messages
    */
    static
    void setCryptoWarningUnencrypted( bool v )
    {
      if (!self()->isCryptoWarningUnencryptedImmutable())
        self()->mCryptoWarningUnencrypted = v;
    }

    /**
      Get Warn before sending unencrypted messages
    */
    static
    bool cryptoWarningUnencrypted()
    {
      return self()->mCryptoWarningUnencrypted;
    }

    /**
      Is Warn before sending unencrypted messages Immutable
    */
    static
    bool isCryptoWarningUnencryptedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoWarningUnencrypted" ) );
    }

    /**
      Get Item object corresponding to CryptoWarningUnencrypted()
    */
    ItemBool *cryptoWarningUnencryptedItem()
    {
      return mCryptoWarningUnencryptedItem;
    }

    /**
      Set Warn before sending unsigned messages
    */
    static
    void setCryptoWarningUnsigned( bool v )
    {
      if (!self()->isCryptoWarningUnsignedImmutable())
        self()->mCryptoWarningUnsigned = v;
    }

    /**
      Get Warn before sending unsigned messages
    */
    static
    bool cryptoWarningUnsigned()
    {
      return self()->mCryptoWarningUnsigned;
    }

    /**
      Is Warn before sending unsigned messages Immutable
    */
    static
    bool isCryptoWarningUnsignedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoWarningUnsigned" ) );
    }

    /**
      Get Item object corresponding to CryptoWarningUnsigned()
    */
    ItemBool *cryptoWarningUnsignedItem()
    {
      return mCryptoWarningUnsignedItem;
    }

    /**
      Set Warn if certificates/keys expire soon (configure thresholds below)
    */
    static
    void setCryptoWarnWhenNearExpire( bool v )
    {
      if (!self()->isCryptoWarnWhenNearExpireImmutable())
        self()->mCryptoWarnWhenNearExpire = v;
    }

    /**
      Get Warn if certificates/keys expire soon (configure thresholds below)
    */
    static
    bool cryptoWarnWhenNearExpire()
    {
      return self()->mCryptoWarnWhenNearExpire;
    }

    /**
      Is Warn if certificates/keys expire soon (configure thresholds below) Immutable
    */
    static
    bool isCryptoWarnWhenNearExpireImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoWarnWhenNearExpire" ) );
    }

    /**
      Get Item object corresponding to CryptoWarnWhenNearExpire()
    */
    ItemBool *cryptoWarnWhenNearExpireItem()
    {
      return mCryptoWarnWhenNearExpireItem;
    }

    /**
      Set The minimum number of days that the signature certificate should be valid before issuing a warning
    */
    static
    void setCryptoWarnSignKeyNearExpiryThresholdDays( int v )
    {
      if (!self()->isCryptoWarnSignKeyNearExpiryThresholdDaysImmutable())
        self()->mCryptoWarnSignKeyNearExpiryThresholdDays = v;
    }

    /**
      Get The minimum number of days that the signature certificate should be valid before issuing a warning
    */
    static
    int cryptoWarnSignKeyNearExpiryThresholdDays()
    {
      return self()->mCryptoWarnSignKeyNearExpiryThresholdDays;
    }

    /**
      Is The minimum number of days that the signature certificate should be valid before issuing a warning Immutable
    */
    static
    bool isCryptoWarnSignKeyNearExpiryThresholdDaysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoWarnSignKeyNearExpiryThresholdDays" ) );
    }

    /**
      Get Item object corresponding to CryptoWarnSignKeyNearExpiryThresholdDays()
    */
    ItemInt *cryptoWarnSignKeyNearExpiryThresholdDaysItem()
    {
      return mCryptoWarnSignKeyNearExpiryThresholdDaysItem;
    }

    /**
      Set The minimum number of days that the CA certificate should be valid before issuing a warning
    */
    static
    void setCryptoWarnSignChaincertNearExpiryThresholdDays( int v )
    {
      if (!self()->isCryptoWarnSignChaincertNearExpiryThresholdDaysImmutable())
        self()->mCryptoWarnSignChaincertNearExpiryThresholdDays = v;
    }

    /**
      Get The minimum number of days that the CA certificate should be valid before issuing a warning
    */
    static
    int cryptoWarnSignChaincertNearExpiryThresholdDays()
    {
      return self()->mCryptoWarnSignChaincertNearExpiryThresholdDays;
    }

    /**
      Is The minimum number of days that the CA certificate should be valid before issuing a warning Immutable
    */
    static
    bool isCryptoWarnSignChaincertNearExpiryThresholdDaysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoWarnSignChaincertNearExpiryThresholdDays" ) );
    }

    /**
      Get Item object corresponding to CryptoWarnSignChaincertNearExpiryThresholdDays()
    */
    ItemInt *cryptoWarnSignChaincertNearExpiryThresholdDaysItem()
    {
      return mCryptoWarnSignChaincertNearExpiryThresholdDaysItem;
    }

    /**
      Set The minimum number of days that the root certificate should be valid before issuing a warning
    */
    static
    void setCryptoWarnSignRootNearExpiryThresholdDays( int v )
    {
      if (!self()->isCryptoWarnSignRootNearExpiryThresholdDaysImmutable())
        self()->mCryptoWarnSignRootNearExpiryThresholdDays = v;
    }

    /**
      Get The minimum number of days that the root certificate should be valid before issuing a warning
    */
    static
    int cryptoWarnSignRootNearExpiryThresholdDays()
    {
      return self()->mCryptoWarnSignRootNearExpiryThresholdDays;
    }

    /**
      Is The minimum number of days that the root certificate should be valid before issuing a warning Immutable
    */
    static
    bool isCryptoWarnSignRootNearExpiryThresholdDaysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoWarnSignRootNearExpiryThresholdDays" ) );
    }

    /**
      Get Item object corresponding to CryptoWarnSignRootNearExpiryThresholdDays()
    */
    ItemInt *cryptoWarnSignRootNearExpiryThresholdDaysItem()
    {
      return mCryptoWarnSignRootNearExpiryThresholdDaysItem;
    }

    /**
      Set The minimum number of days that the encryption certificate should be valid before issuing a warning
    */
    static
    void setCryptoWarnEncrKeyNearExpiryThresholdDays( int v )
    {
      if (!self()->isCryptoWarnEncrKeyNearExpiryThresholdDaysImmutable())
        self()->mCryptoWarnEncrKeyNearExpiryThresholdDays = v;
    }

    /**
      Get The minimum number of days that the encryption certificate should be valid before issuing a warning
    */
    static
    int cryptoWarnEncrKeyNearExpiryThresholdDays()
    {
      return self()->mCryptoWarnEncrKeyNearExpiryThresholdDays;
    }

    /**
      Is The minimum number of days that the encryption certificate should be valid before issuing a warning Immutable
    */
    static
    bool isCryptoWarnEncrKeyNearExpiryThresholdDaysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoWarnEncrKeyNearExpiryThresholdDays" ) );
    }

    /**
      Get Item object corresponding to CryptoWarnEncrKeyNearExpiryThresholdDays()
    */
    ItemInt *cryptoWarnEncrKeyNearExpiryThresholdDaysItem()
    {
      return mCryptoWarnEncrKeyNearExpiryThresholdDaysItem;
    }

    /**
      Set The minimum number of days that all certificates in the chain should be valid before issuing a warning
    */
    static
    void setCryptoWarnEncrChaincertNearExpiryThresholdDays( int v )
    {
      if (!self()->isCryptoWarnEncrChaincertNearExpiryThresholdDaysImmutable())
        self()->mCryptoWarnEncrChaincertNearExpiryThresholdDays = v;
    }

    /**
      Get The minimum number of days that all certificates in the chain should be valid before issuing a warning
    */
    static
    int cryptoWarnEncrChaincertNearExpiryThresholdDays()
    {
      return self()->mCryptoWarnEncrChaincertNearExpiryThresholdDays;
    }

    /**
      Is The minimum number of days that all certificates in the chain should be valid before issuing a warning Immutable
    */
    static
    bool isCryptoWarnEncrChaincertNearExpiryThresholdDaysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoWarnEncrChaincertNearExpiryThresholdDays" ) );
    }

    /**
      Get Item object corresponding to CryptoWarnEncrChaincertNearExpiryThresholdDays()
    */
    ItemInt *cryptoWarnEncrChaincertNearExpiryThresholdDaysItem()
    {
      return mCryptoWarnEncrChaincertNearExpiryThresholdDaysItem;
    }

    /**
      Set The minimum number of days that the root certificate should be valid before issuing a warning
    */
    static
    void setCryptoWarnEncrRootNearExpiryThresholdDays( int v )
    {
      if (!self()->isCryptoWarnEncrRootNearExpiryThresholdDaysImmutable())
        self()->mCryptoWarnEncrRootNearExpiryThresholdDays = v;
    }

    /**
      Get The minimum number of days that the root certificate should be valid before issuing a warning
    */
    static
    int cryptoWarnEncrRootNearExpiryThresholdDays()
    {
      return self()->mCryptoWarnEncrRootNearExpiryThresholdDays;
    }

    /**
      Is The minimum number of days that the root certificate should be valid before issuing a warning Immutable
    */
    static
    bool isCryptoWarnEncrRootNearExpiryThresholdDaysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoWarnEncrRootNearExpiryThresholdDays" ) );
    }

    /**
      Get Item object corresponding to CryptoWarnEncrRootNearExpiryThresholdDays()
    */
    ItemInt *cryptoWarnEncrRootNearExpiryThresholdDaysItem()
    {
      return mCryptoWarnEncrRootNearExpiryThresholdDaysItem;
    }

    /**
      Set When encrypting emails, always also encrypt to the certificate of my own identity
    */
    static
    void setCryptoEncryptToSelf( bool v )
    {
      if (!self()->isCryptoEncryptToSelfImmutable())
        self()->mCryptoEncryptToSelf = v;
    }

    /**
      Get When encrypting emails, always also encrypt to the certificate of my own identity
    */
    static
    bool cryptoEncryptToSelf()
    {
      return self()->mCryptoEncryptToSelf;
    }

    /**
      Is When encrypting emails, always also encrypt to the certificate of my own identity Immutable
    */
    static
    bool isCryptoEncryptToSelfImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoEncryptToSelf" ) );
    }

    /**
      Get Item object corresponding to CryptoEncryptToSelf()
    */
    ItemBool *cryptoEncryptToSelfItem()
    {
      return mCryptoEncryptToSelfItem;
    }

    /**
      Set Always show the list of encryption keys to select the one which will be used
    */
    static
    void setCryptoShowKeysForApproval( bool v )
    {
      if (!self()->isCryptoShowKeysForApprovalImmutable())
        self()->mCryptoShowKeysForApproval = v;
    }

    /**
      Get Always show the list of encryption keys to select the one which will be used
    */
    static
    bool cryptoShowKeysForApproval()
    {
      return self()->mCryptoShowKeysForApproval;
    }

    /**
      Is Always show the list of encryption keys to select the one which will be used Immutable
    */
    static
    bool isCryptoShowKeysForApprovalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoShowKeysForApproval" ) );
    }

    /**
      Get Item object corresponding to CryptoShowKeysForApproval()
    */
    ItemBool *cryptoShowKeysForApprovalItem()
    {
      return mCryptoShowKeysForApprovalItem;
    }

    /**
      Set Immediate
    */
    static
    void setSendImmediate( bool v )
    {
      if (!self()->isSendImmediateImmutable())
        self()->mSendImmediate = v;
    }

    /**
      Get Immediate
    */
    static
    bool sendImmediate()
    {
      return self()->mSendImmediate;
    }

    /**
      Is Immediate Immutable
    */
    static
    bool isSendImmediateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SendImmediate" ) );
    }

    /**
      Get Item object corresponding to SendImmediate()
    */
    ItemBool *sendImmediateItem()
    {
      return mSendImmediateItem;
    }

    /**
      Set enabled
    */
    static
    void setEnabled( bool v )
    {
      if (!self()->isEnabledImmutable())
        self()->mEnabled = v;
    }

    /**
      Get enabled
    */
    static
    bool enabled()
    {
      return self()->mEnabled;
    }

    /**
      Is enabled Immutable
    */
    static
    bool isEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Enabled" ) );
    }

    /**
      Get Item object corresponding to Enabled()
    */
    ItemBool *enabledItem()
    {
      return mEnabledItem;
    }

    /**
      Set upper-case-first-char-of-sentence
    */
    static
    void setUppercaseFirstCharOfSentence( bool v )
    {
      if (!self()->isUppercaseFirstCharOfSentenceImmutable())
        self()->mUppercaseFirstCharOfSentence = v;
    }

    /**
      Get upper-case-first-char-of-sentence
    */
    static
    bool uppercaseFirstCharOfSentence()
    {
      return self()->mUppercaseFirstCharOfSentence;
    }

    /**
      Is upper-case-first-char-of-sentence Immutable
    */
    static
    bool isUppercaseFirstCharOfSentenceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UppercaseFirstCharOfSentence" ) );
    }

    /**
      Get Item object corresponding to UppercaseFirstCharOfSentence()
    */
    ItemBool *uppercaseFirstCharOfSentenceItem()
    {
      return mUppercaseFirstCharOfSentenceItem;
    }

    /**
      Set fix-two-upper-case-chars
    */
    static
    void setFixTwoUppercaseChars( bool v )
    {
      if (!self()->isFixTwoUppercaseCharsImmutable())
        self()->mFixTwoUppercaseChars = v;
    }

    /**
      Get fix-two-upper-case-chars
    */
    static
    bool fixTwoUppercaseChars()
    {
      return self()->mFixTwoUppercaseChars;
    }

    /**
      Is fix-two-upper-case-chars Immutable
    */
    static
    bool isFixTwoUppercaseCharsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FixTwoUppercaseChars" ) );
    }

    /**
      Get Item object corresponding to FixTwoUppercaseChars()
    */
    ItemBool *fixTwoUppercaseCharsItem()
    {
      return mFixTwoUppercaseCharsItem;
    }

    /**
      Set single-spaces
    */
    static
    void setSingleSpaces( bool v )
    {
      if (!self()->isSingleSpacesImmutable())
        self()->mSingleSpaces = v;
    }

    /**
      Get single-spaces
    */
    static
    bool singleSpaces()
    {
      return self()->mSingleSpaces;
    }

    /**
      Is single-spaces Immutable
    */
    static
    bool isSingleSpacesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SingleSpaces" ) );
    }

    /**
      Get Item object corresponding to SingleSpaces()
    */
    ItemBool *singleSpacesItem()
    {
      return mSingleSpacesItem;
    }

    /**
      Set auto-fractions
    */
    static
    void setAutoFractions( bool v )
    {
      if (!self()->isAutoFractionsImmutable())
        self()->mAutoFractions = v;
    }

    /**
      Get auto-fractions
    */
    static
    bool autoFractions()
    {
      return self()->mAutoFractions;
    }

    /**
      Is auto-fractions Immutable
    */
    static
    bool isAutoFractionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoFractions" ) );
    }

    /**
      Get Item object corresponding to AutoFractions()
    */
    ItemBool *autoFractionsItem()
    {
      return mAutoFractionsItem;
    }

    /**
      Set capitalize-week-days
    */
    static
    void setCapitalizeWeekDays( bool v )
    {
      if (!self()->isCapitalizeWeekDaysImmutable())
        self()->mCapitalizeWeekDays = v;
    }

    /**
      Get capitalize-week-days
    */
    static
    bool capitalizeWeekDays()
    {
      return self()->mCapitalizeWeekDays;
    }

    /**
      Is capitalize-week-days Immutable
    */
    static
    bool isCapitalizeWeekDaysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CapitalizeWeekDays" ) );
    }

    /**
      Get Item object corresponding to CapitalizeWeekDays()
    */
    ItemBool *capitalizeWeekDaysItem()
    {
      return mCapitalizeWeekDaysItem;
    }

    /**
      Set advanced-autocorrect
    */
    static
    void setAdvancedAutocorrect( bool v )
    {
      if (!self()->isAdvancedAutocorrectImmutable())
        self()->mAdvancedAutocorrect = v;
    }

    /**
      Get advanced-autocorrect
    */
    static
    bool advancedAutocorrect()
    {
      return self()->mAdvancedAutocorrect;
    }

    /**
      Is advanced-autocorrect Immutable
    */
    static
    bool isAdvancedAutocorrectImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AdvancedAutocorrect" ) );
    }

    /**
      Get Item object corresponding to AdvancedAutocorrect()
    */
    ItemBool *advancedAutocorrectItem()
    {
      return mAdvancedAutocorrectItem;
    }

    /**
      Set replace-double-quotes
    */
    static
    void setReplaceDoubleQuotes( bool v )
    {
      if (!self()->isReplaceDoubleQuotesImmutable())
        self()->mReplaceDoubleQuotes = v;
    }

    /**
      Get replace-double-quotes
    */
    static
    bool replaceDoubleQuotes()
    {
      return self()->mReplaceDoubleQuotes;
    }

    /**
      Is replace-double-quotes Immutable
    */
    static
    bool isReplaceDoubleQuotesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplaceDoubleQuotes" ) );
    }

    /**
      Get Item object corresponding to ReplaceDoubleQuotes()
    */
    ItemBool *replaceDoubleQuotesItem()
    {
      return mReplaceDoubleQuotesItem;
    }

    /**
      Set replace-single-quotes
    */
    static
    void setReplaceSingleQuotes( bool v )
    {
      if (!self()->isReplaceSingleQuotesImmutable())
        self()->mReplaceSingleQuotes = v;
    }

    /**
      Get replace-single-quotes
    */
    static
    bool replaceSingleQuotes()
    {
      return self()->mReplaceSingleQuotes;
    }

    /**
      Is replace-single-quotes Immutable
    */
    static
    bool isReplaceSingleQuotesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplaceSingleQuotes" ) );
    }

    /**
      Get Item object corresponding to ReplaceSingleQuotes()
    */
    ItemBool *replaceSingleQuotesItem()
    {
      return mReplaceSingleQuotesItem;
    }

    /**
      Set autoformat-url
    */
    static
    void setAutoFormatUrl( bool v )
    {
      if (!self()->isAutoFormatUrlImmutable())
        self()->mAutoFormatUrl = v;
    }

    /**
      Get autoformat-url
    */
    static
    bool autoFormatUrl()
    {
      return self()->mAutoFormatUrl;
    }

    /**
      Is autoformat-url Immutable
    */
    static
    bool isAutoFormatUrlImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoFormatUrl" ) );
    }

    /**
      Get Item object corresponding to AutoFormatUrl()
    */
    ItemBool *autoFormatUrlItem()
    {
      return mAutoFormatUrlItem;
    }

    /**
      Set auto-bold-underline
    */
    static
    void setAutoBoldUnderline( bool v )
    {
      if (!self()->isAutoBoldUnderlineImmutable())
        self()->mAutoBoldUnderline = v;
    }

    /**
      Get auto-bold-underline
    */
    static
    bool autoBoldUnderline()
    {
      return self()->mAutoBoldUnderline;
    }

    /**
      Is auto-bold-underline Immutable
    */
    static
    bool isAutoBoldUnderlineImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoBoldUnderline" ) );
    }

    /**
      Get Item object corresponding to AutoBoldUnderline()
    */
    ItemBool *autoBoldUnderlineItem()
    {
      return mAutoBoldUnderlineItem;
    }

    /**
      Set super-script
    */
    static
    void setSuperScript( bool v )
    {
      if (!self()->isSuperScriptImmutable())
        self()->mSuperScript = v;
    }

    /**
      Get super-script
    */
    static
    bool superScript()
    {
      return self()->mSuperScript;
    }

    /**
      Is super-script Immutable
    */
    static
    bool isSuperScriptImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SuperScript" ) );
    }

    /**
      Get Item object corresponding to SuperScript()
    */
    ItemBool *superScriptItem()
    {
      return mSuperScriptItem;
    }

    /**
      Set add-non-breaking-space
    */
    static
    void setAddNonBreakingSpaceInFrench( bool v )
    {
      if (!self()->isAddNonBreakingSpaceInFrenchImmutable())
        self()->mAddNonBreakingSpaceInFrench = v;
    }

    /**
      Get add-non-breaking-space
    */
    static
    bool addNonBreakingSpaceInFrench()
    {
      return self()->mAddNonBreakingSpaceInFrench;
    }

    /**
      Is add-non-breaking-space Immutable
    */
    static
    bool isAddNonBreakingSpaceInFrenchImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AddNonBreakingSpaceInFrench" ) );
    }

    /**
      Get Item object corresponding to AddNonBreakingSpaceInFrench()
    */
    ItemBool *addNonBreakingSpaceInFrenchItem()
    {
      return mAddNonBreakingSpaceInFrenchItem;
    }

    /**
      Set auto-resize-image-enabled
    */
    static
    void setAutoResizeImageEnabled( bool v )
    {
      if (!self()->isAutoResizeImageEnabledImmutable())
        self()->mAutoResizeImageEnabled = v;
    }

    /**
      Get auto-resize-image-enabled
    */
    static
    bool autoResizeImageEnabled()
    {
      return self()->mAutoResizeImageEnabled;
    }

    /**
      Is auto-resize-image-enabled Immutable
    */
    static
    bool isAutoResizeImageEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoResizeImageEnabled" ) );
    }

    /**
      Get Item object corresponding to AutoResizeImageEnabled()
    */
    ItemBool *autoResizeImageEnabledItem()
    {
      return mAutoResizeImageEnabledItem;
    }

    /**
      Set keep-image-ratio
    */
    static
    void setKeepImageRatio( bool v )
    {
      if (!self()->isKeepImageRatioImmutable())
        self()->mKeepImageRatio = v;
    }

    /**
      Get keep-image-ratio
    */
    static
    bool keepImageRatio()
    {
      return self()->mKeepImageRatio;
    }

    /**
      Is keep-image-ratio Immutable
    */
    static
    bool isKeepImageRatioImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KeepImageRatio" ) );
    }

    /**
      Get Item object corresponding to KeepImageRatio()
    */
    ItemBool *keepImageRatioItem()
    {
      return mKeepImageRatioItem;
    }

    /**
      Set ask-before-resizing
    */
    static
    void setAskBeforeResizing( bool v )
    {
      if (!self()->isAskBeforeResizingImmutable())
        self()->mAskBeforeResizing = v;
    }

    /**
      Get ask-before-resizing
    */
    static
    bool askBeforeResizing()
    {
      return self()->mAskBeforeResizing;
    }

    /**
      Is ask-before-resizing Immutable
    */
    static
    bool isAskBeforeResizingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AskBeforeResizing" ) );
    }

    /**
      Get Item object corresponding to AskBeforeResizing()
    */
    ItemBool *askBeforeResizingItem()
    {
      return mAskBeforeResizingItem;
    }

    /**
      Set reduce-image-to-maximum
    */
    static
    void setReduceImageToMaximum( bool v )
    {
      if (!self()->isReduceImageToMaximumImmutable())
        self()->mReduceImageToMaximum = v;
    }

    /**
      Get reduce-image-to-maximum
    */
    static
    bool reduceImageToMaximum()
    {
      return self()->mReduceImageToMaximum;
    }

    /**
      Is reduce-image-to-maximum Immutable
    */
    static
    bool isReduceImageToMaximumImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReduceImageToMaximum" ) );
    }

    /**
      Get Item object corresponding to ReduceImageToMaximum()
    */
    ItemBool *reduceImageToMaximumItem()
    {
      return mReduceImageToMaximumItem;
    }

    /**
      Set enlarge-image-to-minimum
    */
    static
    void setEnlargeImageToMinimum( bool v )
    {
      if (!self()->isEnlargeImageToMinimumImmutable())
        self()->mEnlargeImageToMinimum = v;
    }

    /**
      Get enlarge-image-to-minimum
    */
    static
    bool enlargeImageToMinimum()
    {
      return self()->mEnlargeImageToMinimum;
    }

    /**
      Is enlarge-image-to-minimum Immutable
    */
    static
    bool isEnlargeImageToMinimumImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnlargeImageToMinimum" ) );
    }

    /**
      Get Item object corresponding to EnlargeImageToMinimum()
    */
    ItemBool *enlargeImageToMinimumItem()
    {
      return mEnlargeImageToMinimumItem;
    }

    /**
      Set custom-minimum-height
    */
    static
    void setCustomMinimumHeight( int v )
    {
      if (!self()->isCustomMinimumHeightImmutable())
        self()->mCustomMinimumHeight = v;
    }

    /**
      Get custom-minimum-height
    */
    static
    int customMinimumHeight()
    {
      return self()->mCustomMinimumHeight;
    }

    /**
      Is custom-minimum-height Immutable
    */
    static
    bool isCustomMinimumHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomMinimumHeight" ) );
    }

    /**
      Get Item object corresponding to CustomMinimumHeight()
    */
    ItemInt *customMinimumHeightItem()
    {
      return mCustomMinimumHeightItem;
    }

    /**
      Set custom-minimum-width
    */
    static
    void setCustomMinimumWidth( int v )
    {
      if (!self()->isCustomMinimumWidthImmutable())
        self()->mCustomMinimumWidth = v;
    }

    /**
      Get custom-minimum-width
    */
    static
    int customMinimumWidth()
    {
      return self()->mCustomMinimumWidth;
    }

    /**
      Is custom-minimum-width Immutable
    */
    static
    bool isCustomMinimumWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomMinimumWidth" ) );
    }

    /**
      Get Item object corresponding to CustomMinimumWidth()
    */
    ItemInt *customMinimumWidthItem()
    {
      return mCustomMinimumWidthItem;
    }

    /**
      Set custom-maximum-height
    */
    static
    void setCustomMaximumHeight( int v )
    {
      if (!self()->isCustomMaximumHeightImmutable())
        self()->mCustomMaximumHeight = v;
    }

    /**
      Get custom-maximum-height
    */
    static
    int customMaximumHeight()
    {
      return self()->mCustomMaximumHeight;
    }

    /**
      Is custom-maximum-height Immutable
    */
    static
    bool isCustomMaximumHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomMaximumHeight" ) );
    }

    /**
      Get Item object corresponding to CustomMaximumHeight()
    */
    ItemInt *customMaximumHeightItem()
    {
      return mCustomMaximumHeightItem;
    }

    /**
      Set custom-maximum-width
    */
    static
    void setCustomMaximumWidth( int v )
    {
      if (!self()->isCustomMaximumWidthImmutable())
        self()->mCustomMaximumWidth = v;
    }

    /**
      Get custom-maximum-width
    */
    static
    int customMaximumWidth()
    {
      return self()->mCustomMaximumWidth;
    }

    /**
      Is custom-maximum-width Immutable
    */
    static
    bool isCustomMaximumWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomMaximumWidth" ) );
    }

    /**
      Get Item object corresponding to CustomMaximumWidth()
    */
    ItemInt *customMaximumWidthItem()
    {
      return mCustomMaximumWidthItem;
    }

    /**
      Set maximum-height
    */
    static
    void setMaximumHeight( int v )
    {
      if (!self()->isMaximumHeightImmutable())
        self()->mMaximumHeight = v;
    }

    /**
      Get maximum-height
    */
    static
    int maximumHeight()
    {
      return self()->mMaximumHeight;
    }

    /**
      Is maximum-height Immutable
    */
    static
    bool isMaximumHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaximumHeight" ) );
    }

    /**
      Get Item object corresponding to MaximumHeight()
    */
    ItemInt *maximumHeightItem()
    {
      return mMaximumHeightItem;
    }

    /**
      Set maximum-width
    */
    static
    void setMaximumWidth( int v )
    {
      if (!self()->isMaximumWidthImmutable())
        self()->mMaximumWidth = v;
    }

    /**
      Get maximum-width
    */
    static
    int maximumWidth()
    {
      return self()->mMaximumWidth;
    }

    /**
      Is maximum-width Immutable
    */
    static
    bool isMaximumWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaximumWidth" ) );
    }

    /**
      Get Item object corresponding to MaximumWidth()
    */
    ItemInt *maximumWidthItem()
    {
      return mMaximumWidthItem;
    }

    /**
      Set minimum-height
    */
    static
    void setMinimumHeight( int v )
    {
      if (!self()->isMinimumHeightImmutable())
        self()->mMinimumHeight = v;
    }

    /**
      Get minimum-height
    */
    static
    int minimumHeight()
    {
      return self()->mMinimumHeight;
    }

    /**
      Is minimum-height Immutable
    */
    static
    bool isMinimumHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinimumHeight" ) );
    }

    /**
      Get Item object corresponding to MinimumHeight()
    */
    ItemInt *minimumHeightItem()
    {
      return mMinimumHeightItem;
    }

    /**
      Set minimum-width
    */
    static
    void setMinimumWidth( int v )
    {
      if (!self()->isMinimumWidthImmutable())
        self()->mMinimumWidth = v;
    }

    /**
      Get minimum-width
    */
    static
    int minimumWidth()
    {
      return self()->mMinimumWidth;
    }

    /**
      Is minimum-width Immutable
    */
    static
    bool isMinimumWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinimumWidth" ) );
    }

    /**
      Get Item object corresponding to MinimumWidth()
    */
    ItemInt *minimumWidthItem()
    {
      return mMinimumWidthItem;
    }

    /**
      Set write-format
    */
    static
    void setWriteFormat( const QString & v )
    {
      if (!self()->isWriteFormatImmutable())
        self()->mWriteFormat = v;
    }

    /**
      Get write-format
    */
    static
    QString writeFormat()
    {
      return self()->mWriteFormat;
    }

    /**
      Is write-format Immutable
    */
    static
    bool isWriteFormatImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WriteFormat" ) );
    }

    /**
      Get Item object corresponding to WriteFormat()
    */
    ItemString *writeFormatItem()
    {
      return mWriteFormatItem;
    }

    /**
      Set skip-image-lower-size-enabled
    */
    static
    void setSkipImageLowerSizeEnabled( bool v )
    {
      if (!self()->isSkipImageLowerSizeEnabledImmutable())
        self()->mSkipImageLowerSizeEnabled = v;
    }

    /**
      Get skip-image-lower-size-enabled
    */
    static
    bool skipImageLowerSizeEnabled()
    {
      return self()->mSkipImageLowerSizeEnabled;
    }

    /**
      Is skip-image-lower-size-enabled Immutable
    */
    static
    bool isSkipImageLowerSizeEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SkipImageLowerSizeEnabled" ) );
    }

    /**
      Get Item object corresponding to SkipImageLowerSizeEnabled()
    */
    ItemBool *skipImageLowerSizeEnabledItem()
    {
      return mSkipImageLowerSizeEnabledItem;
    }

    /**
      Set skip-image-lower-size
    */
    static
    void setSkipImageLowerSize( int v )
    {
      if (!self()->isSkipImageLowerSizeImmutable())
        self()->mSkipImageLowerSize = v;
    }

    /**
      Get skip-image-lower-size
    */
    static
    int skipImageLowerSize()
    {
      return self()->mSkipImageLowerSize;
    }

    /**
      Is skip-image-lower-size Immutable
    */
    static
    bool isSkipImageLowerSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SkipImageLowerSize" ) );
    }

    /**
      Get Item object corresponding to SkipImageLowerSize()
    */
    ItemInt *skipImageLowerSizeItem()
    {
      return mSkipImageLowerSizeItem;
    }

    /**
      Set filter-source-pattern
    */
    static
    void setFilterSourcePattern( const QString & v )
    {
      if (!self()->isFilterSourcePatternImmutable())
        self()->mFilterSourcePattern = v;
    }

    /**
      Get filter-source-pattern
    */
    static
    QString filterSourcePattern()
    {
      return self()->mFilterSourcePattern;
    }

    /**
      Is filter-source-pattern Immutable
    */
    static
    bool isFilterSourcePatternImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FilterSourcePattern" ) );
    }

    /**
      Get Item object corresponding to FilterSourcePattern()
    */
    ItemString *filterSourcePatternItem()
    {
      return mFilterSourcePatternItem;
    }

    /**
      Set FilterSourceType
    */
    static
    void setFilterSourceType( int v )
    {
      if (!self()->isFilterSourceTypeImmutable())
        self()->mFilterSourceType = v;
    }

    /**
      Get FilterSourceType
    */
    static
    int filterSourceType()
    {
      return self()->mFilterSourceType;
    }

    /**
      Is FilterSourceType Immutable
    */
    static
    bool isFilterSourceTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FilterSourceType" ) );
    }

    /**
      Get Item object corresponding to FilterSourceType()
    */
    ItemEnum *filterSourceTypeItem()
    {
      return mFilterSourceTypeItem;
    }

    /**
      Set rename-resized-images
    */
    static
    void setRenameResizedImages( bool v )
    {
      if (!self()->isRenameResizedImagesImmutable())
        self()->mRenameResizedImages = v;
    }

    /**
      Get rename-resized-images
    */
    static
    bool renameResizedImages()
    {
      return self()->mRenameResizedImages;
    }

    /**
      Is rename-resized-images Immutable
    */
    static
    bool isRenameResizedImagesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RenameResizedImages" ) );
    }

    /**
      Get Item object corresponding to RenameResizedImages()
    */
    ItemBool *renameResizedImagesItem()
    {
      return mRenameResizedImagesItem;
    }

    /**
      Set rename-resized-images-pattern
    */
    static
    void setRenameResizedImagesPattern( const QString & v )
    {
      if (!self()->isRenameResizedImagesPatternImmutable())
        self()->mRenameResizedImagesPattern = v;
    }

    /**
      Get rename-resized-images-pattern
    */
    static
    QString renameResizedImagesPattern()
    {
      return self()->mRenameResizedImagesPattern;
    }

    /**
      Is rename-resized-images-pattern Immutable
    */
    static
    bool isRenameResizedImagesPatternImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RenameResizedImagesPattern" ) );
    }

    /**
      Get Item object corresponding to RenameResizedImagesPattern()
    */
    ItemString *renameResizedImagesPatternItem()
    {
      return mRenameResizedImagesPatternItem;
    }

    /**
      Set FilterRecipientType
    */
    static
    void setFilterRecipientType( int v )
    {
      if (!self()->isFilterRecipientTypeImmutable())
        self()->mFilterRecipientType = v;
    }

    /**
      Get FilterRecipientType
    */
    static
    int filterRecipientType()
    {
      return self()->mFilterRecipientType;
    }

    /**
      Is FilterRecipientType Immutable
    */
    static
    bool isFilterRecipientTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FilterRecipientType" ) );
    }

    /**
      Get Item object corresponding to FilterRecipientType()
    */
    ItemEnum *filterRecipientTypeItem()
    {
      return mFilterRecipientTypeItem;
    }

    /**
      Set do-not-resize-emails-pattern
    */
    static
    void setDoNotResizeEmailsPattern( const QString & v )
    {
      if (!self()->isDoNotResizeEmailsPatternImmutable())
        self()->mDoNotResizeEmailsPattern = v;
    }

    /**
      Get do-not-resize-emails-pattern
    */
    static
    QString doNotResizeEmailsPattern()
    {
      return self()->mDoNotResizeEmailsPattern;
    }

    /**
      Is do-not-resize-emails-pattern Immutable
    */
    static
    bool isDoNotResizeEmailsPatternImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DoNotResizeEmailsPattern" ) );
    }

    /**
      Get Item object corresponding to DoNotResizeEmailsPattern()
    */
    ItemString *doNotResizeEmailsPatternItem()
    {
      return mDoNotResizeEmailsPatternItem;
    }

    /**
      Set resize-emails-pattern
    */
    static
    void setResizeEmailsPattern( const QString & v )
    {
      if (!self()->isResizeEmailsPatternImmutable())
        self()->mResizeEmailsPattern = v;
    }

    /**
      Get resize-emails-pattern
    */
    static
    QString resizeEmailsPattern()
    {
      return self()->mResizeEmailsPattern;
    }

    /**
      Is resize-emails-pattern Immutable
    */
    static
    bool isResizeEmailsPatternImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ResizeEmailsPattern" ) );
    }

    /**
      Get Item object corresponding to ResizeEmailsPattern()
    */
    ItemString *resizeEmailsPatternItem()
    {
      return mResizeEmailsPatternItem;
    }

    /**
      Set resize-image-with-formats
    */
    static
    void setResizeImagesWithFormats( bool v )
    {
      if (!self()->isResizeImagesWithFormatsImmutable())
        self()->mResizeImagesWithFormats = v;
    }

    /**
      Get resize-image-with-formats
    */
    static
    bool resizeImagesWithFormats()
    {
      return self()->mResizeImagesWithFormats;
    }

    /**
      Is resize-image-with-formats Immutable
    */
    static
    bool isResizeImagesWithFormatsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ResizeImagesWithFormats" ) );
    }

    /**
      Get Item object corresponding to ResizeImagesWithFormats()
    */
    ItemBool *resizeImagesWithFormatsItem()
    {
      return mResizeImagesWithFormatsItem;
    }

    /**
      Set resize-image-with-formats-type
    */
    static
    void setResizeImagesWithFormatsType( const QString & v )
    {
      if (!self()->isResizeImagesWithFormatsTypeImmutable())
        self()->mResizeImagesWithFormatsType = v;
    }

    /**
      Get resize-image-with-formats-type
    */
    static
    QString resizeImagesWithFormatsType()
    {
      return self()->mResizeImagesWithFormatsType;
    }

    /**
      Is resize-image-with-formats-type Immutable
    */
    static
    bool isResizeImagesWithFormatsTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ResizeImagesWithFormatsType" ) );
    }

    /**
      Get Item object corresponding to ResizeImagesWithFormatsType()
    */
    ItemString *resizeImagesWithFormatsTypeItem()
    {
      return mResizeImagesWithFormatsTypeItem;
    }

  protected:
    MessageComposerSettingsBase();
    friend class MessageComposerSettingsBaseHelper;


    // Composer
    QString mCustomMsgIDSuffix;
    bool mUseCustomMessageIdSuffix;
    bool mQuoteSelectionOnly;
    bool mForceReplyCharset;
    QStringList mPreferredCharsets;
    QString mAutoTextSignature;
    bool mPrependSignature;
    bool mDashDashSignature;
    bool mShowBalooSearchInComposer;
    bool mAllowSemicolonAsAddressSeparator;
    bool mShowRecentAddressesInComposer;
    int mMaximumRecipients;
    bool mOutlookCompatibleAttachments;
    bool mWordWrap;
    int mLineWrapWidth;
    bool mImprovePlainTextOfHtmlMessage;
    bool mCryptoWarningUnencrypted;
    bool mCryptoWarningUnsigned;
    bool mCryptoWarnWhenNearExpire;
    int mCryptoWarnSignKeyNearExpiryThresholdDays;
    int mCryptoWarnSignChaincertNearExpiryThresholdDays;
    int mCryptoWarnSignRootNearExpiryThresholdDays;
    int mCryptoWarnEncrKeyNearExpiryThresholdDays;
    int mCryptoWarnEncrChaincertNearExpiryThresholdDays;
    int mCryptoWarnEncrRootNearExpiryThresholdDays;
    bool mCryptoEncryptToSelf;
    bool mCryptoShowKeysForApproval;

    // sending mail
    bool mSendImmediate;

    // Autocorrect
    bool mEnabled;
    bool mUppercaseFirstCharOfSentence;
    bool mFixTwoUppercaseChars;
    bool mSingleSpaces;
    bool mAutoFractions;
    bool mCapitalizeWeekDays;
    bool mAdvancedAutocorrect;
    bool mReplaceDoubleQuotes;
    bool mReplaceSingleQuotes;
    bool mAutoFormatUrl;
    bool mAutoBoldUnderline;
    bool mSuperScript;
    bool mAddNonBreakingSpaceInFrench;

    // AutoResizeImage
    bool mAutoResizeImageEnabled;
    bool mKeepImageRatio;
    bool mAskBeforeResizing;
    bool mReduceImageToMaximum;
    bool mEnlargeImageToMinimum;
    int mCustomMinimumHeight;
    int mCustomMinimumWidth;
    int mCustomMaximumHeight;
    int mCustomMaximumWidth;
    int mMaximumHeight;
    int mMaximumWidth;
    int mMinimumHeight;
    int mMinimumWidth;
    QString mWriteFormat;
    bool mSkipImageLowerSizeEnabled;
    int mSkipImageLowerSize;
    QString mFilterSourcePattern;
    int mFilterSourceType;
    bool mRenameResizedImages;
    QString mRenameResizedImagesPattern;
    int mFilterRecipientType;
    QString mDoNotResizeEmailsPattern;
    QString mResizeEmailsPattern;
    bool mResizeImagesWithFormats;
    QString mResizeImagesWithFormatsType;

  private:
    ItemString *mCustomMsgIDSuffixItem;
    ItemBool *mUseCustomMessageIdSuffixItem;
    ItemBool *mQuoteSelectionOnlyItem;
    ItemBool *mForceReplyCharsetItem;
    ItemStringList *mPreferredCharsetsItem;
    ItemString *mAutoTextSignatureItem;
    ItemBool *mPrependSignatureItem;
    ItemBool *mDashDashSignatureItem;
    ItemBool *mShowBalooSearchInComposerItem;
    ItemBool *mAllowSemicolonAsAddressSeparatorItem;
    ItemBool *mShowRecentAddressesInComposerItem;
    ItemInt *mMaximumRecipientsItem;
    ItemBool *mOutlookCompatibleAttachmentsItem;
    ItemBool *mWordWrapItem;
    ItemInt *mLineWrapWidthItem;
    ItemBool *mImprovePlainTextOfHtmlMessageItem;
    ItemBool *mCryptoWarningUnencryptedItem;
    ItemBool *mCryptoWarningUnsignedItem;
    ItemBool *mCryptoWarnWhenNearExpireItem;
    ItemInt *mCryptoWarnSignKeyNearExpiryThresholdDaysItem;
    ItemInt *mCryptoWarnSignChaincertNearExpiryThresholdDaysItem;
    ItemInt *mCryptoWarnSignRootNearExpiryThresholdDaysItem;
    ItemInt *mCryptoWarnEncrKeyNearExpiryThresholdDaysItem;
    ItemInt *mCryptoWarnEncrChaincertNearExpiryThresholdDaysItem;
    ItemInt *mCryptoWarnEncrRootNearExpiryThresholdDaysItem;
    ItemBool *mCryptoEncryptToSelfItem;
    ItemBool *mCryptoShowKeysForApprovalItem;
    ItemBool *mSendImmediateItem;
    ItemBool *mEnabledItem;
    ItemBool *mUppercaseFirstCharOfSentenceItem;
    ItemBool *mFixTwoUppercaseCharsItem;
    ItemBool *mSingleSpacesItem;
    ItemBool *mAutoFractionsItem;
    ItemBool *mCapitalizeWeekDaysItem;
    ItemBool *mAdvancedAutocorrectItem;
    ItemBool *mReplaceDoubleQuotesItem;
    ItemBool *mReplaceSingleQuotesItem;
    ItemBool *mAutoFormatUrlItem;
    ItemBool *mAutoBoldUnderlineItem;
    ItemBool *mSuperScriptItem;
    ItemBool *mAddNonBreakingSpaceInFrenchItem;
    ItemBool *mAutoResizeImageEnabledItem;
    ItemBool *mKeepImageRatioItem;
    ItemBool *mAskBeforeResizingItem;
    ItemBool *mReduceImageToMaximumItem;
    ItemBool *mEnlargeImageToMinimumItem;
    ItemInt *mCustomMinimumHeightItem;
    ItemInt *mCustomMinimumWidthItem;
    ItemInt *mCustomMaximumHeightItem;
    ItemInt *mCustomMaximumWidthItem;
    ItemInt *mMaximumHeightItem;
    ItemInt *mMaximumWidthItem;
    ItemInt *mMinimumHeightItem;
    ItemInt *mMinimumWidthItem;
    ItemString *mWriteFormatItem;
    ItemBool *mSkipImageLowerSizeEnabledItem;
    ItemInt *mSkipImageLowerSizeItem;
    ItemString *mFilterSourcePatternItem;
    ItemEnum *mFilterSourceTypeItem;
    ItemBool *mRenameResizedImagesItem;
    ItemString *mRenameResizedImagesPatternItem;
    ItemEnum *mFilterRecipientTypeItem;
    ItemString *mDoNotResizeEmailsPatternItem;
    ItemString *mResizeEmailsPatternItem;
    ItemBool *mResizeImagesWithFormatsItem;
    ItemString *mResizeImagesWithFormatsTypeItem;
};

}

#endif

