// This file is generated by kconfig_compiler_kf6 from newmailnotifieragentsettings.kcfg.
// All changes you do to this file will be lost.
#ifndef NEWMAILNOTIFIERAGENTSETTINGS_H
#define NEWMAILNOTIFIERAGENTSETTINGS_H

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

#include <KLocalizedString>

class NewMailNotifierAgentSettings : public KConfigSkeleton
{
  public:

    static NewMailNotifierAgentSettings *self();
    static void instance(const QString& cfgfilename);
    static void instance(KSharedConfig::Ptr config);
    ~NewMailNotifierAgentSettings() override;

    /**
      Set verboseNotification
    */
    static
    void setVerboseNotification( bool v )
    {
      if (!self()->isVerboseNotificationImmutable())
        self()->mVerboseNotification = v;
    }

    /**
      Get verboseNotification
    */
    static
    bool verboseNotification()
    {
      return self()->mVerboseNotification;
    }

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

    /**
      Get Item object corresponding to verboseNotification()
    */
    ItemBool *verboseNotificationItem()
    {
      return mVerboseNotificationItem;
    }

    /**
      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 showPhoto
    */
    static
    void setShowPhoto( bool v )
    {
      if (!self()->isShowPhotoImmutable())
        self()->mShowPhoto = v;
    }

    /**
      Get showPhoto
    */
    static
    bool showPhoto()
    {
      return self()->mShowPhoto;
    }

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

    /**
      Get Item object corresponding to showPhoto()
    */
    ItemBool *showPhotoItem()
    {
      return mShowPhotoItem;
    }

    /**
      Set showFrom
    */
    static
    void setShowFrom( bool v )
    {
      if (!self()->isShowFromImmutable())
        self()->mShowFrom = v;
    }

    /**
      Get showFrom
    */
    static
    bool showFrom()
    {
      return self()->mShowFrom;
    }

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

    /**
      Get Item object corresponding to showFrom()
    */
    ItemBool *showFromItem()
    {
      return mShowFromItem;
    }

    /**
      Set showSubject
    */
    static
    void setShowSubject( bool v )
    {
      if (!self()->isShowSubjectImmutable())
        self()->mShowSubject = v;
    }

    /**
      Get showSubject
    */
    static
    bool showSubject()
    {
      return self()->mShowSubject;
    }

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

    /**
      Get Item object corresponding to showSubject()
    */
    ItemBool *showSubjectItem()
    {
      return mShowSubjectItem;
    }

    /**
      Set showFolder
    */
    static
    void setShowFolder( bool v )
    {
      if (!self()->isShowFolderImmutable())
        self()->mShowFolder = v;
    }

    /**
      Get showFolder
    */
    static
    bool showFolder()
    {
      return self()->mShowFolder;
    }

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

    /**
      Get Item object corresponding to showFolder()
    */
    ItemBool *showFolderItem()
    {
      return mShowFolderItem;
    }

    /**
      Set excludeEmailsFromMe
    */
    static
    void setExcludeEmailsFromMe( bool v )
    {
      if (!self()->isExcludeEmailsFromMeImmutable())
        self()->mExcludeEmailsFromMe = v;
    }

    /**
      Get excludeEmailsFromMe
    */
    static
    bool excludeEmailsFromMe()
    {
      return self()->mExcludeEmailsFromMe;
    }

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

    /**
      Get Item object corresponding to excludeEmailsFromMe()
    */
    ItemBool *excludeEmailsFromMeItem()
    {
      return mExcludeEmailsFromMeItem;
    }

    /**
      Set textToSpeakEnabled
    */
    static
    void setTextToSpeakEnabled( bool v )
    {
      if (!self()->isTextToSpeakEnabledImmutable())
        self()->mTextToSpeakEnabled = v;
    }

    /**
      Get textToSpeakEnabled
    */
    static
    bool textToSpeakEnabled()
    {
      return self()->mTextToSpeakEnabled;
    }

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

    /**
      Get Item object corresponding to textToSpeakEnabled()
    */
    ItemBool *textToSpeakEnabledItem()
    {
      return mTextToSpeakEnabledItem;
    }

    /**
      Set textToSpeak
    */
    static
    void setTextToSpeak( const QString & v )
    {
      if (!self()->isTextToSpeakImmutable())
        self()->mTextToSpeak = v;
    }

    /**
      Get textToSpeak
    */
    static
    QString textToSpeak()
    {
      return self()->mTextToSpeak;
    }

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

    /**
      Get Item object corresponding to textToSpeak()
    */
    ItemString *textToSpeakItem()
    {
      return mTextToSpeakItem;
    }

    /**
      Set showButtonToDisplayMail
    */
    static
    void setShowButtonToDisplayMail( bool v )
    {
      if (!self()->isShowButtonToDisplayMailImmutable())
        self()->mShowButtonToDisplayMail = v;
    }

    /**
      Get showButtonToDisplayMail
    */
    static
    bool showButtonToDisplayMail()
    {
      return self()->mShowButtonToDisplayMail;
    }

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

    /**
      Get Item object corresponding to showButtonToDisplayMail()
    */
    ItemBool *showButtonToDisplayMailItem()
    {
      return mShowButtonToDisplayMailItem;
    }

    /**
      Set keepPersistentNotification
    */
    static
    void setKeepPersistentNotification( bool v )
    {
      if (!self()->isKeepPersistentNotificationImmutable())
        self()->mKeepPersistentNotification = v;
    }

    /**
      Get keepPersistentNotification
    */
    static
    bool keepPersistentNotification()
    {
      return self()->mKeepPersistentNotification;
    }

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

    /**
      Get Item object corresponding to keepPersistentNotification()
    */
    ItemBool *keepPersistentNotificationItem()
    {
      return mKeepPersistentNotificationItem;
    }

    /**
      Set replyMail
    */
    static
    void setReplyMail( bool v )
    {
      if (!self()->isReplyMailImmutable())
        self()->mReplyMail = v;
    }

    /**
      Get replyMail
    */
    static
    bool replyMail()
    {
      return self()->mReplyMail;
    }

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

    /**
      Get Item object corresponding to replyMail()
    */
    ItemBool *replyMailItem()
    {
      return mReplyMailItem;
    }

    /**
      Set replyMailType
    */
    static
    void setReplyMailType( int v )
    {
      if (!self()->isReplyMailTypeImmutable())
        self()->mReplyMailType = v;
    }

    /**
      Get replyMailType
    */
    static
    int replyMailType()
    {
      return self()->mReplyMailType;
    }

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

    /**
      Get Item object corresponding to replyMailType()
    */
    ItemInt *replyMailTypeItem()
    {
      return mReplyMailTypeItem;
    }

    /**
      Set enableNotificationHistory
    */
    static
    void setEnableNotificationHistory( bool v )
    {
      if (!self()->isEnableNotificationHistoryImmutable())
        self()->mEnableNotificationHistory = v;
    }

    /**
      Get enableNotificationHistory
    */
    static
    bool enableNotificationHistory()
    {
      return self()->mEnableNotificationHistory;
    }

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

    /**
      Get Item object corresponding to enableNotificationHistory()
    */
    ItemBool *enableNotificationHistoryItem()
    {
      return mEnableNotificationHistoryItem;
    }

  protected:
    NewMailNotifierAgentSettings(KSharedConfig::Ptr config);
    friend class NewMailNotifierAgentSettingsHelper;


    // General
    bool mVerboseNotification;
    bool mEnabled;
    bool mShowPhoto;
    bool mShowFrom;
    bool mShowSubject;
    bool mShowFolder;
    bool mExcludeEmailsFromMe;
    bool mTextToSpeakEnabled;
    QString mTextToSpeak;
    bool mShowButtonToDisplayMail;
    bool mKeepPersistentNotification;
    bool mReplyMail;
    int mReplyMailType;
    bool mEnableNotificationHistory;

  private:
    ItemBool *mVerboseNotificationItem;
    ItemBool *mEnabledItem;
    ItemBool *mShowPhotoItem;
    ItemBool *mShowFromItem;
    ItemBool *mShowSubjectItem;
    ItemBool *mShowFolderItem;
    ItemBool *mExcludeEmailsFromMeItem;
    ItemBool *mTextToSpeakEnabledItem;
    ItemString *mTextToSpeakItem;
    ItemBool *mShowButtonToDisplayMailItem;
    ItemBool *mKeepPersistentNotificationItem;
    ItemBool *mReplyMailItem;
    ItemInt *mReplyMailTypeItem;
    ItemBool *mEnableNotificationHistoryItem;
};

#endif

