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

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

#include <QLocale>
#include <QFontDatabase>
#include <kemailsettings.h>
#include <kde-i18n-lists.h>
class Settings : public KConfigSkeleton
{
  public:

    static Settings *self();
    ~Settings();


    /**
      Get authorName
    */
    static
    QString authorName()
    {
      return self()->mAuthorName;
    }

    /**
      Get Item object corresponding to authorName()
    */
    ItemString *authorNameItem()
    {
      return mAuthorNameItem;
    }


    /**
      Get authorLocalizedName
    */
    static
    QString authorLocalizedName()
    {
      return self()->mAuthorLocalizedName;
    }

    /**
      Get Item object corresponding to authorLocalizedName()
    */
    ItemString *authorLocalizedNameItem()
    {
      return mAuthorLocalizedNameItem;
    }


    /**
      Get authorEmail
    */
    static
    QString authorEmail()
    {
      return self()->mAuthorEmail;
    }

    /**
      Get Item object corresponding to authorEmail()
    */
    ItemString *authorEmailItem()
    {
      return mAuthorEmailItem;
    }


    /**
      Get DefaultLangCode
    */
    static
    QString defaultLangCode()
    {
      return self()->mDefaultLangCode;
    }

    /**
      Get Item object corresponding to DefaultLangCode()
    */
    ItemString *defaultLangCodeItem()
    {
      return mDefaultLangCodeItem;
    }


    /**
      Get DefaultMailingList
    */
    static
    QString defaultMailingList()
    {
      return self()->mDefaultMailingList;
    }

    /**
      Get Item object corresponding to DefaultMailingList()
    */
    ItemString *defaultMailingListItem()
    {
      return mDefaultMailingListItem;
    }


    /**
      Get AddColor
    */
    static
    QColor addColor()
    {
      return self()->mAddColor;
    }

    /**
      Get Item object corresponding to AddColor()
    */
    ItemColor *addColorItem()
    {
      return mAddColorItem;
    }


    /**
      Get DelColor
    */
    static
    QColor delColor()
    {
      return self()->mDelColor;
    }

    /**
      Get Item object corresponding to DelColor()
    */
    ItemColor *delColorItem()
    {
      return mDelColorItem;
    }


    /**
      Get HighlightSpaces
    */
    static
    bool highlightSpaces()
    {
      return self()->mHighlightSpaces;
    }

    /**
      Get Item object corresponding to HighlightSpaces()
    */
    ItemBool *highlightSpacesItem()
    {
      return mHighlightSpacesItem;
    }


    /**
      Get MsgFont
    */
    static
    QFont msgFont()
    {
      return self()->mMsgFont;
    }

    /**
      Get Item object corresponding to MsgFont()
    */
    ItemFont *msgFontItem()
    {
      return mMsgFontItem;
    }

    /**
      Set Leds
    */
    static
    void setLeds( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "Leds" ) ))
        self()->mLeds = v;
    }

    /**
      Get Leds
    */
    static
    bool leds()
    {
      return self()->mLeds;
    }

    /**
      Get Item object corresponding to Leds()
    */
    ItemBool *ledsItem()
    {
      return mLedsItem;
    }


    /**
      Get AutoApprove
    */
    static
    bool autoApprove()
    {
      return self()->mAutoApprove;
    }

    /**
      Get Item object corresponding to AutoApprove()
    */
    ItemBool *autoApproveItem()
    {
      return mAutoApproveItem;
    }

    /**
      Set AutoSpellcheck
    */
    static
    void setAutoSpellcheck( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "AutoSpellcheck" ) ))
        self()->mAutoSpellcheck = v;
    }

    /**
      Get AutoSpellcheck
    */
    static
    bool autoSpellcheck()
    {
      return self()->mAutoSpellcheck;
    }

    /**
      Get Item object corresponding to AutoSpellcheck()
    */
    ItemBool *autoSpellcheckItem()
    {
      return mAutoSpellcheckItem;
    }


    /**
      Get MouseWheelGo
    */
    static
    bool mouseWheelGo()
    {
      return self()->mMouseWheelGo;
    }

    /**
      Get Item object corresponding to MouseWheelGo()
    */
    ItemBool *mouseWheelGoItem()
    {
      return mMouseWheelGoItem;
    }


    /**
      Get WordCompletionLength
    */
    static
    int wordCompletionLength()
    {
      return self()->mWordCompletionLength;
    }

    /**
      Get Item object corresponding to WordCompletionLength()
    */
    ItemInt *wordCompletionLengthItem()
    {
      return mWordCompletionLengthItem;
    }

    /**
      Set AltTransViewEverShownWithData
    */
    static
    void setAltTransViewEverShownWithData( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "AltTransViewEverShownWithData" ) ))
        self()->mAltTransViewEverShownWithData = v;
    }

    /**
      Get AltTransViewEverShownWithData
    */
    static
    bool altTransViewEverShownWithData()
    {
      return self()->mAltTransViewEverShownWithData;
    }

    /**
      Get Item object corresponding to AltTransViewEverShownWithData()
    */
    ItemBool *altTransViewEverShownWithDataItem()
    {
      return mAltTransViewEverShownWithDataItem;
    }


    /**
      Get PrefetchTM
    */
    static
    bool prefetchTM()
    {
      return self()->mPrefetchTM;
    }

    /**
      Get Item object corresponding to PrefetchTM()
    */
    ItemBool *prefetchTMItem()
    {
      return mPrefetchTMItem;
    }


    /**
      Get SuggCount
    */
    static
    int suggCount()
    {
      return self()->mSuggCount;
    }

    /**
      Get Item object corresponding to SuggCount()
    */
    ItemInt *suggCountItem()
    {
      return mSuggCountItem;
    }


    /**
      Get AutoaddTM
    */
    static
    bool autoaddTM()
    {
      return self()->mAutoaddTM;
    }

    /**
      Get Item object corresponding to AutoaddTM()
    */
    ItemBool *autoaddTMItem()
    {
      return mAutoaddTMItem;
    }


    /**
      Get ScanToTMOnOpen
    */
    static
    bool scanToTMOnOpen()
    {
      return self()->mScanToTMOnOpen;
    }

    /**
      Get Item object corresponding to ScanToTMOnOpen()
    */
    ItemBool *scanToTMOnOpenItem()
    {
      return mScanToTMOnOpenItem;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // Identity
    QString mAuthorName;
    QString mAuthorLocalizedName;
    QString mAuthorEmail;
    QString mDefaultLangCode;
    QString mDefaultMailingList;

    // Appearance
    QColor mAddColor;
    QColor mDelColor;
    bool mHighlightSpaces;
    QFont mMsgFont;
    bool mLeds;

    // Editor
    bool mAutoApprove;
    bool mAutoSpellcheck;
    bool mMouseWheelGo;
    int mWordCompletionLength;
    bool mAltTransViewEverShownWithData;

    // TM
    bool mPrefetchTM;
    int mSuggCount;
    bool mAutoaddTM;
    bool mScanToTMOnOpen;

  private:
    ItemString *mAuthorNameItem;
    ItemString *mAuthorLocalizedNameItem;
    ItemString *mAuthorEmailItem;
    ItemString *mDefaultLangCodeItem;
    ItemString *mDefaultMailingListItem;
    ItemColor *mAddColorItem;
    ItemColor *mDelColorItem;
    ItemBool *mHighlightSpacesItem;
    ItemFont *mMsgFontItem;
    ItemBool *mLedsItem;
    ItemBool *mAutoApproveItem;
    ItemBool *mAutoSpellcheckItem;
    ItemBool *mMouseWheelGoItem;
    ItemInt *mWordCompletionLengthItem;
    ItemBool *mAltTransViewEverShownWithDataItem;
    ItemBool *mPrefetchTMItem;
    ItemInt *mSuggCountItem;
    ItemBool *mAutoaddTMItem;
    ItemBool *mScanToTMOnOpenItem;
};

#endif

