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

#include <templateparser_export.h>
#include <templateparser/defaulttemplates.h>

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

namespace TemplateParser {

class TEMPLATEPARSER_EXPORT TemplateParserSettings : public KConfigSkeleton
{
  public:

    static TemplateParserSettings *self();
    ~TemplateParserSettings() override;

    /**
      Set Remove the signature when replying
    */
    static
    void setStripSignature( bool v )
    {
      if (!self()->isStripSignatureImmutable())
        self()->mStripSignature = v;
    }

    /**
      Get Remove the signature when replying
    */
    static
    bool stripSignature()
    {
      return self()->mStripSignature;
    }

    /**
      Is Remove the signature when replying Immutable
    */
    static
    bool isStripSignatureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StripSignature" ) );
    }

    /**
      Get Item object corresponding to StripSignature()
    */
    ItemBool *stripSignatureItem()
    {
      return mStripSignatureItem;
    }

    /**
      Set Use smart &quoting
    */
    static
    void setSmartQuote( bool v )
    {
      if (!self()->isSmartQuoteImmutable())
        self()->mSmartQuote = v;
    }

    /**
      Get Use smart &quoting
    */
    static
    bool smartQuote()
    {
      return self()->mSmartQuote;
    }

    /**
      Is Use smart &quoting Immutable
    */
    static
    bool isSmartQuoteImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SmartQuote" ) );
    }

    /**
      Get Item object corresponding to SmartQuote()
    */
    ItemBool *smartQuoteItem()
    {
      return mSmartQuoteItem;
    }

    /**
      Set Reply or forward using the same visual format as the original message (plain text or HTML)
    */
    static
    void setReplyUsingVisualFormat( bool v )
    {
      if (!self()->isReplyUsingVisualFormatImmutable())
        self()->mReplyUsingVisualFormat = v;
    }

    /**
      Get Reply or forward using the same visual format as the original message (plain text or HTML)
    */
    static
    bool replyUsingVisualFormat()
    {
      return self()->mReplyUsingVisualFormat;
    }

    /**
      Is Reply or forward using the same visual format as the original message (plain text or HTML) Immutable
    */
    static
    bool isReplyUsingVisualFormatImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplyUsingVisualFormat" ) );
    }

    /**
      Get Item object corresponding to ReplyUsingVisualFormat()
    */
    ItemBool *replyUsingVisualFormatItem()
    {
      return mReplyUsingVisualFormatItem;
    }

    /**
      Set CustomTemplates
    */
    static
    void setCustomTemplates( const QStringList & v )
    {
      if (!self()->isCustomTemplatesImmutable())
        self()->mCustomTemplates = v;
    }

    /**
      Get CustomTemplates
    */
    static
    QStringList customTemplates()
    {
      return self()->mCustomTemplates;
    }

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

    /**
      Get Item object corresponding to CustomTemplates()
    */
    ItemStringList *customTemplatesItem()
    {
      return mCustomTemplatesItem;
    }

    /**
      Set Message template for new message
    */
    static
    void setTemplateNewMessage( const QString & v )
    {
      if (!self()->isTemplateNewMessageImmutable())
        self()->mTemplateNewMessage = v;
    }

    /**
      Get Message template for new message
    */
    static
    QString templateNewMessage()
    {
      return self()->mTemplateNewMessage;
    }

    /**
      Is Message template for new message Immutable
    */
    static
    bool isTemplateNewMessageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TemplateNewMessage" ) );
    }

    /**
      Get Item object corresponding to TemplateNewMessage()
    */
    ItemString *templateNewMessageItem()
    {
      return mTemplateNewMessageItem;
    }

    /**
      Set Message template for reply
    */
    static
    void setTemplateReply( const QString & v )
    {
      if (!self()->isTemplateReplyImmutable())
        self()->mTemplateReply = v;
    }

    /**
      Get Message template for reply
    */
    static
    QString templateReply()
    {
      return self()->mTemplateReply;
    }

    /**
      Is Message template for reply Immutable
    */
    static
    bool isTemplateReplyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TemplateReply" ) );
    }

    /**
      Get Item object corresponding to TemplateReply()
    */
    ItemString *templateReplyItem()
    {
      return mTemplateReplyItem;
    }

    /**
      Set Message template for reply to all
    */
    static
    void setTemplateReplyAll( const QString & v )
    {
      if (!self()->isTemplateReplyAllImmutable())
        self()->mTemplateReplyAll = v;
    }

    /**
      Get Message template for reply to all
    */
    static
    QString templateReplyAll()
    {
      return self()->mTemplateReplyAll;
    }

    /**
      Is Message template for reply to all Immutable
    */
    static
    bool isTemplateReplyAllImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TemplateReplyAll" ) );
    }

    /**
      Get Item object corresponding to TemplateReplyAll()
    */
    ItemString *templateReplyAllItem()
    {
      return mTemplateReplyAllItem;
    }

    /**
      Set Message template for forward
    */
    static
    void setTemplateForward( const QString & v )
    {
      if (!self()->isTemplateForwardImmutable())
        self()->mTemplateForward = v;
    }

    /**
      Get Message template for forward
    */
    static
    QString templateForward()
    {
      return self()->mTemplateForward;
    }

    /**
      Is Message template for forward Immutable
    */
    static
    bool isTemplateForwardImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TemplateForward" ) );
    }

    /**
      Get Item object corresponding to TemplateForward()
    */
    ItemString *templateForwardItem()
    {
      return mTemplateForwardItem;
    }

    /**
      Set Quote characters
    */
    static
    void setQuoteString( const QString & v )
    {
      if (!self()->isQuoteStringImmutable())
        self()->mQuoteString = v;
    }

    /**
      Get Quote characters
    */
    static
    QString quoteString()
    {
      return self()->mQuoteString;
    }

    /**
      Is Quote characters Immutable
    */
    static
    bool isQuoteStringImmutable()
    {
      return self()->isImmutable( QStringLiteral( "QuoteString" ) );
    }

    /**
      Get Item object corresponding to QuoteString()
    */
    ItemString *quoteStringItem()
    {
      return mQuoteStringItem;
    }

  protected:
    TemplateParserSettings();
    friend class TemplateParserSettingsHelper;


    // TemplateParser
    bool mStripSignature;
    bool mSmartQuote;
    bool mReplyUsingVisualFormat;
    QStringList mCustomTemplates;
    QString mTemplateNewMessage;
    QString mTemplateReply;
    QString mTemplateReplyAll;
    QString mTemplateForward;
    QString mQuoteString;

  private:
    ItemBool *mStripSignatureItem;
    ItemBool *mSmartQuoteItem;
    ItemBool *mReplyUsingVisualFormatItem;
    ItemStringList *mCustomTemplatesItem;
    ItemString *mTemplateNewMessageItem;
    ItemString *mTemplateReplyItem;
    ItemString *mTemplateReplyAllItem;
    ItemString *mTemplateForwardItem;
    ItemString *mQuoteStringItem;
};

}

#endif

