// This file is generated by kconfig_compiler_kf6 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() override;

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

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

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

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

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

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

    /**
      Get overrideLangTeam
    */
    static
    bool overrideLangTeam()
    {
      return self()->mOverrideLangTeam;
    }

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

    /**
      Get Item object corresponding to overrideLangTeam()
    */
    ItemBool *overrideLangTeamItem()
    {
      return mOverrideLangTeamItem;
    }

    /**
      Get userLangTeam
    */
    static
    QString userLangTeam()
    {
      return self()->mUserLangTeam;
    }

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

    /**
      Get Item object corresponding to userLangTeam()
    */
    ItemString *userLangTeamItem()
    {
      return mUserLangTeamItem;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
      Get TabSwitch
    */
    static
    int tabSwitch()
    {
      return self()->mTabSwitch;
    }

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

    /**
      Get Item object corresponding to TabSwitch()
    */
    ItemInt *tabSwitchItem()
    {
      return mTabSwitchItem;
    }

    /**
      Get RestoreRecentFilesOnStartup
    */
    static
    bool restoreRecentFilesOnStartup()
    {
      return self()->mRestoreRecentFilesOnStartup;
    }

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

    /**
      Get Item object corresponding to RestoreRecentFilesOnStartup()
    */
    ItemBool *restoreRecentFilesOnStartupItem()
    {
      return mRestoreRecentFilesOnStartupItem;
    }

    /**
      Get CustomEditorEnabled
    */
    static
    bool customEditorEnabled()
    {
      return self()->mCustomEditorEnabled;
    }

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

    /**
      Get Item object corresponding to CustomEditorEnabled()
    */
    ItemBool *customEditorEnabledItem()
    {
      return mCustomEditorEnabledItem;
    }

    /**
      Get CustomEditorCommand
    */
    static
    QString customEditorCommand()
    {
      return self()->mCustomEditorCommand;
    }

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

    /**
      Get Item object corresponding to CustomEditorCommand()
    */
    ItemString *customEditorCommandItem()
    {
      return mCustomEditorCommandItem;
    }

    /**
      Set HideCompletedItems
    */
    static
    void setHideCompletedItems( bool v )
    {
      if (!self()->isHideCompletedItemsImmutable())
        self()->mHideCompletedItems = v;
    }

    /**
      Get HideCompletedItems
    */
    static
    bool hideCompletedItems()
    {
      return self()->mHideCompletedItems;
    }

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

    /**
      Get Item object corresponding to HideCompletedItems()
    */
    ItemBool *hideCompletedItemsItem()
    {
      return mHideCompletedItemsItem;
    }

    /**
      Set ExpandUntranslatedFolders
    */
    static
    void setExpandUntranslatedFolders( bool v )
    {
      if (!self()->isExpandUntranslatedFoldersImmutable())
        self()->mExpandUntranslatedFolders = v;
    }

    /**
      Get ExpandUntranslatedFolders
    */
    static
    bool expandUntranslatedFolders()
    {
      return self()->mExpandUntranslatedFolders;
    }

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

    /**
      Get Item object corresponding to ExpandUntranslatedFolders()
    */
    ItemBool *expandUntranslatedFoldersItem()
    {
      return mExpandUntranslatedFoldersItem;
    }

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

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

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

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

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

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

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

    /**
      Get VisualizeSeparators
    */
    static
    bool visualizeSeparators()
    {
      return self()->mVisualizeSeparators;
    }

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

    /**
      Get Item object corresponding to VisualizeSeparators()
    */
    ItemBool *visualizeSeparatorsItem()
    {
      return mVisualizeSeparatorsItem;
    }

    /**
      Get ConvertXMLChars
    */
    static
    bool convertXMLChars()
    {
      return self()->mConvertXMLChars;
    }

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

    /**
      Get Item object corresponding to ConvertXMLChars()
    */
    ItemBool *convertXMLCharsItem()
    {
      return mConvertXMLCharsItem;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
      Get SuggScore
    */
    static
    int suggScore()
    {
      return self()->mSuggScore;
    }

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

    /**
      Get Item object corresponding to SuggScore()
    */
    ItemInt *suggScoreItem()
    {
      return mSuggScoreItem;
    }

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

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

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

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

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

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

    /**
      Get DeleteFromTMOnMissing
    */
    static
    bool deleteFromTMOnMissing()
    {
      return self()->mDeleteFromTMOnMissing;
    }

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

    /**
      Get Item object corresponding to DeleteFromTMOnMissing()
    */
    ItemBool *deleteFromTMOnMissingItem()
    {
      return mDeleteFromTMOnMissingItem;
    }

    /**
      Get PologyEnabled
    */
    static
    bool pologyEnabled()
    {
      return self()->mPologyEnabled;
    }

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

    /**
      Get Item object corresponding to PologyEnabled()
    */
    ItemBool *pologyEnabledItem()
    {
      return mPologyEnabledItem;
    }

    /**
      Get PologyCommandEntry
    */
    static
    QString pologyCommandEntry()
    {
      return self()->mPologyCommandEntry;
    }

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

    /**
      Get Item object corresponding to PologyCommandEntry()
    */
    ItemString *pologyCommandEntryItem()
    {
      return mPologyCommandEntryItem;
    }

    /**
      Get PologyCommandFile
    */
    static
    QString pologyCommandFile()
    {
      return self()->mPologyCommandFile;
    }

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

    /**
      Get Item object corresponding to PologyCommandFile()
    */
    ItemString *pologyCommandFileItem()
    {
      return mPologyCommandFileItem;
    }

    /**
      Get LanguageToolCustom
    */
    static
    bool languageToolCustom()
    {
      return self()->mLanguageToolCustom;
    }

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

    /**
      Get Item object corresponding to LanguageToolCustom()
    */
    ItemBool *languageToolCustomItem()
    {
      return mLanguageToolCustomItem;
    }

    /**
      Get LanguageToolInstancePath
    */
    static
    QString languageToolInstancePath()
    {
      return self()->mLanguageToolInstancePath;
    }

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

    /**
      Get Item object corresponding to LanguageToolInstancePath()
    */
    ItemString *languageToolInstancePathItem()
    {
      return mLanguageToolInstancePathItem;
    }

    /**
      Get LanguageToolDelay
    */
    static
    int languageToolDelay()
    {
      return self()->mLanguageToolDelay;
    }

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

    /**
      Get Item object corresponding to LanguageToolDelay()
    */
    ItemInt *languageToolDelayItem()
    {
      return mLanguageToolDelayItem;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // Identity
    QString mAuthorName;
    QString mAuthorLocalizedName;
    bool mOverrideLangTeam;
    QString mUserLangTeam;
    QString mAuthorEmail;
    QString mDefaultLangCode;
    QString mDefaultMailingList;

    // Appearance
    bool mHighlightSpaces;
    QFont mMsgFont;
    bool mLeds;

    // General
    int mTabSwitch;
    bool mRestoreRecentFilesOnStartup;
    bool mCustomEditorEnabled;
    QString mCustomEditorCommand;
    bool mHideCompletedItems;
    bool mExpandUntranslatedFolders;

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

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

    // Pology
    bool mPologyEnabled;
    QString mPologyCommandEntry;
    QString mPologyCommandFile;

    // LanguageTool
    bool mLanguageToolCustom;
    QString mLanguageToolInstancePath;
    int mLanguageToolDelay;

  private:
    ItemString *mAuthorNameItem;
    ItemString *mAuthorLocalizedNameItem;
    ItemBool *mOverrideLangTeamItem;
    ItemString *mUserLangTeamItem;
    ItemString *mAuthorEmailItem;
    ItemString *mDefaultLangCodeItem;
    ItemString *mDefaultMailingListItem;
    ItemBool *mHighlightSpacesItem;
    ItemFont *mMsgFontItem;
    ItemBool *mLedsItem;
    ItemInt *mTabSwitchItem;
    ItemBool *mRestoreRecentFilesOnStartupItem;
    ItemBool *mCustomEditorEnabledItem;
    ItemString *mCustomEditorCommandItem;
    ItemBool *mHideCompletedItemsItem;
    ItemBool *mExpandUntranslatedFoldersItem;
    ItemBool *mAutoApproveItem;
    ItemBool *mAutoSpellcheckItem;
    ItemBool *mVisualizeSeparatorsItem;
    ItemBool *mConvertXMLCharsItem;
    ItemBool *mMouseWheelGoItem;
    ItemInt *mWordCompletionLengthItem;
    ItemBool *mAltTransViewEverShownWithDataItem;
    ItemBool *mPrefetchTMItem;
    ItemInt *mSuggCountItem;
    ItemInt *mSuggScoreItem;
    ItemBool *mAutoaddTMItem;
    ItemBool *mScanToTMOnOpenItem;
    ItemBool *mDeleteFromTMOnMissingItem;
    ItemBool *mPologyEnabledItem;
    ItemString *mPologyCommandEntryItem;
    ItemString *mPologyCommandFileItem;
    ItemBool *mLanguageToolCustomItem;
    ItemString *mLanguageToolInstancePathItem;
    ItemInt *mLanguageToolDelayItem;
};

#endif

