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

#include <qapplication.h>
#include <templateparser/defaulttemplates.h>
#include <mailcommon/mailkernel.h>
#include <kmail-version.h>
#include <kmail_debug.h>

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

#include <QFontDatabase>
#include <kcolorscheme.h>
#include <editor/composer.h>
#include <MessageComposer/Util>
#include <KCompletion>

class GlobalSettingsBase : public KConfigSkeleton
{
  public:
    class EnumActionEnterFolder
    {
      public:
      enum type { SelectFirstUnread, SelectLastSelected, SelectNewest, SelectOldest, COUNT };
    };
    class EnumNetworkState
    {
      public:
      enum type { Online, Offline, COUNT };
    };
    class EnumLoopOnGotoUnread
    {
      public:
      enum type { DontLoop, LoopInCurrentFolder, LoopInAllFolders, LoopInAllMarkedFolders, COUNT };
    };
    class EnumSendOnCheck
    {
      public:
      enum type { DontSendOnCheck, SendOnManualChecks, SendOnAllChecks, COUNT };
    };
    class EnumReaderWindowMode
    {
      public:
      enum type { hide, below, right, COUNT };
    };
    class EnumFolderList
    {
      public:
      enum type { longlist, shortlist, COUNT };
    };

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

    /**
      Set ActionEnterFolder
    */
    static
    void setActionEnterFolder( int v )
    {
      if (!self()->isActionEnterFolderImmutable())
        self()->mActionEnterFolder = v;
    }

    /**
      Get ActionEnterFolder
    */
    static
    int actionEnterFolder()
    {
      return self()->mActionEnterFolder;
    }

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

    /**
      Get Item object corresponding to ActionEnterFolder()
    */
    ItemEnum *actionEnterFolderItem()
    {
      return mActionEnterFolderItem;
    }

    /**
      Set NetworkState
    */
    static
    void setNetworkState( int v )
    {
      if (!self()->isNetworkStateImmutable())
        self()->mNetworkState = v;
    }

    /**
      Get NetworkState
    */
    static
    int networkState()
    {
      return self()->mNetworkState;
    }

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

    /**
      Get Item object corresponding to NetworkState()
    */
    ItemEnum *networkStateItem()
    {
      return mNetworkStateItem;
    }

    /**
      Set LoopOnGotoUnread
    */
    static
    void setLoopOnGotoUnread( int v )
    {
      if (!self()->isLoopOnGotoUnreadImmutable())
        self()->mLoopOnGotoUnread = v;
    }

    /**
      Get LoopOnGotoUnread
    */
    static
    int loopOnGotoUnread()
    {
      return self()->mLoopOnGotoUnread;
    }

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

    /**
      Get Item object corresponding to LoopOnGotoUnread()
    */
    ItemEnum *loopOnGotoUnreadItem()
    {
      return mLoopOnGotoUnreadItem;
    }

    /**
      Set EnableFolderDnD
    */
    static
    void setEnableFolderDnD( bool v )
    {
      if (!self()->isEnableFolderDnDImmutable())
        self()->mEnableFolderDnD = v;
    }

    /**
      Get EnableFolderDnD
    */
    static
    bool enableFolderDnD()
    {
      return self()->mEnableFolderDnD;
    }

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

    /**
      Get Item object corresponding to EnableFolderDnD()
    */
    ItemBool *enableFolderDnDItem()
    {
      return mEnableFolderDnDItem;
    }

    /**
      Set ShowPopupAfterDnD
    */
    static
    void setShowPopupAfterDnD( bool v )
    {
      if (!self()->isShowPopupAfterDnDImmutable())
        self()->mShowPopupAfterDnD = v;
    }

    /**
      Get ShowPopupAfterDnD
    */
    static
    bool showPopupAfterDnD()
    {
      return self()->mShowPopupAfterDnD;
    }

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

    /**
      Get Item object corresponding to ShowPopupAfterDnD()
    */
    ItemBool *showPopupAfterDnDItem()
    {
      return mShowPopupAfterDnDItem;
    }

    /**
      Set ExcludeImportantMailFromExpiry
    */
    static
    void setExcludeImportantMailFromExpiry( bool v )
    {
      if (!self()->isExcludeImportantMailFromExpiryImmutable())
        self()->mExcludeImportantMailFromExpiry = v;
    }

    /**
      Get ExcludeImportantMailFromExpiry
    */
    static
    bool excludeImportantMailFromExpiry()
    {
      return self()->mExcludeImportantMailFromExpiry;
    }

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

    /**
      Get Item object corresponding to ExcludeImportantMailFromExpiry()
    */
    ItemBool *excludeImportantMailFromExpiryItem()
    {
      return mExcludeImportantMailFromExpiryItem;
    }

    /**
      Set Allow local flags in read-only folders
    */
    static
    void setAllowLocalFlags( bool v )
    {
      if (!self()->isAllowLocalFlagsImmutable())
        self()->mAllowLocalFlags = v;
    }

    /**
      Get Allow local flags in read-only folders
    */
    static
    bool allowLocalFlags()
    {
      return self()->mAllowLocalFlags;
    }

    /**
      Is Allow local flags in read-only folders Immutable
    */
    static
    bool isAllowLocalFlagsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AllowLocalFlags" ) );
    }

    /**
      Get Item object corresponding to AllowLocalFlags()
    */
    ItemBool *allowLocalFlagsItem()
    {
      return mAllowLocalFlagsItem;
    }

    /**
      Set Send queued mail on mail check
    */
    static
    void setSendOnCheck( int v )
    {
      if (!self()->isSendOnCheckImmutable())
        self()->mSendOnCheck = v;
    }

    /**
      Get Send queued mail on mail check
    */
    static
    int sendOnCheck()
    {
      return self()->mSendOnCheck;
    }

    /**
      Is Send queued mail on mail check Immutable
    */
    static
    bool isSendOnCheckImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SendOnCheck" ) );
    }

    /**
      Get Item object corresponding to SendOnCheck()
    */
    ItemEnum *sendOnCheckItem()
    {
      return mSendOnCheckItem;
    }

    /**
      Set LastSelectedFolder
    */
    static
    void setLastSelectedFolder( qint64 v )
    {
      if (!self()->isLastSelectedFolderImmutable())
        self()->mLastSelectedFolder = v;
    }

    /**
      Get LastSelectedFolder
    */
    static
    qint64 lastSelectedFolder()
    {
      return self()->mLastSelectedFolder;
    }

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

    /**
      Get Item object corresponding to LastSelectedFolder()
    */
    ItemLongLong *lastSelectedFolderItem()
    {
      return mLastSelectedFolderItem;
    }

    /**
      Set PlasmaActivitySupport
    */
    static
    void setPlasmaActivitySupport( bool v )
    {
      if (!self()->isPlasmaActivitySupportImmutable())
        self()->mPlasmaActivitySupport = v;
    }

    /**
      Get PlasmaActivitySupport
    */
    static
    bool plasmaActivitySupport()
    {
      return self()->mPlasmaActivitySupport;
    }

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

    /**
      Get Item object corresponding to PlasmaActivitySupport()
    */
    ItemBool *plasmaActivitySupportItem()
    {
      return mPlasmaActivitySupportItem;
    }

    /**
      Set warn-before-expire
    */
    static
    void setWarnBeforeExpire( bool v )
    {
      if (!self()->isWarnBeforeExpireImmutable())
        self()->mWarnBeforeExpire = v;
    }

    /**
      Get warn-before-expire
    */
    static
    bool warnBeforeExpire()
    {
      return self()->mWarnBeforeExpire;
    }

    /**
      Is warn-before-expire Immutable
    */
    static
    bool isWarnBeforeExpireImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WarnBeforeExpire" ) );
    }

    /**
      Get Item object corresponding to WarnBeforeExpire()
    */
    ItemBool *warnBeforeExpireItem()
    {
      return mWarnBeforeExpireItem;
    }

    /**
      Set Enable system tray icon
    */
    static
    void setSystemTrayEnabled( bool v )
    {
      if (!self()->isSystemTrayEnabledImmutable())
        self()->mSystemTrayEnabled = v;
    }

    /**
      Get Enable system tray icon
    */
    static
    bool systemTrayEnabled()
    {
      return self()->mSystemTrayEnabled;
    }

    /**
      Is Enable system tray icon Immutable
    */
    static
    bool isSystemTrayEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SystemTrayEnabled" ) );
    }

    /**
      Get Item object corresponding to SystemTrayEnabled()
    */
    ItemBool *systemTrayEnabledItem()
    {
      return mSystemTrayEnabledItem;
    }

    /**
      Set Start minimized to tray
    */
    static
    void setStartInTray( bool v )
    {
      if (!self()->isStartInTrayImmutable())
        self()->mStartInTray = v;
    }

    /**
      Get Start minimized to tray
    */
    static
    bool startInTray()
    {
      return self()->mStartInTray;
    }

    /**
      Is Start minimized to tray Immutable
    */
    static
    bool isStartInTrayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StartInTray" ) );
    }

    /**
      Get Item object corresponding to StartInTray()
    */
    ItemBool *startInTrayItem()
    {
      return mStartInTrayItem;
    }

    /**
      Set Show Unread Email in TaskBar
    */
    static
    void setShowUnreadInTaskbar( bool v )
    {
      if (!self()->isShowUnreadInTaskbarImmutable())
        self()->mShowUnreadInTaskbar = v;
    }

    /**
      Get Show Unread Email in TaskBar
    */
    static
    bool showUnreadInTaskbar()
    {
      return self()->mShowUnreadInTaskbar;
    }

    /**
      Is Show Unread Email in TaskBar Immutable
    */
    static
    bool isShowUnreadInTaskbarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowUnreadInTaskbar" ) );
    }

    /**
      Get Item object corresponding to ShowUnreadInTaskbar()
    */
    ItemBool *showUnreadInTaskbarItem()
    {
      return mShowUnreadInTaskbarItem;
    }

    /**
      Set Specify e&ditor:
    */
    static
    void setExternalEditor( const QString & v )
    {
      if (!self()->isExternalEditorImmutable())
        self()->mExternalEditor = v;
    }

    /**
      Get Specify e&ditor:
    */
    static
    QString externalEditor()
    {
      return self()->mExternalEditor;
    }

    /**
      Is Specify e&ditor: Immutable
    */
    static
    bool isExternalEditorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ExternalEditor" ) );
    }

    /**
      Get Item object corresponding to ExternalEditor()
    */
    ItemString *externalEditorItem()
    {
      return mExternalEditorItem;
    }

    /**
      Set Use e&xternal editor instead of composer
    */
    static
    void setUseExternalEditor( bool v )
    {
      if (!self()->isUseExternalEditorImmutable())
        self()->mUseExternalEditor = v;
    }

    /**
      Get Use e&xternal editor instead of composer
    */
    static
    bool useExternalEditor()
    {
      return self()->mUseExternalEditor;
    }

    /**
      Is Use e&xternal editor instead of composer Immutable
    */
    static
    bool isUseExternalEditorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseExternalEditor" ) );
    }

    /**
      Get Item object corresponding to UseExternalEditor()
    */
    ItemBool *useExternalEditorItem()
    {
      return mUseExternalEditorItem;
    }

    /**
      Set mime-header-count
    */
    static
    void setCustomMessageHeadersCount( int v )
    {
      if (!self()->isCustomMessageHeadersCountImmutable())
        self()->mCustomMessageHeadersCount = v;
    }

    /**
      Get mime-header-count
    */
    static
    int customMessageHeadersCount()
    {
      return self()->mCustomMessageHeadersCount;
    }

    /**
      Is mime-header-count Immutable
    */
    static
    bool isCustomMessageHeadersCountImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomMessageHeadersCount" ) );
    }

    /**
      Get Item object corresponding to CustomMessageHeadersCount()
    */
    ItemInt *customMessageHeadersCountItem()
    {
      return mCustomMessageHeadersCountItem;
    }

    /**
      Set The threshold for when to warn the user that a folder is nearing its quota limit.
    */
    static
    void setCloseToQuotaThreshold( int v )
    {
      if (!self()->isCloseToQuotaThresholdImmutable())
        self()->mCloseToQuotaThreshold = v;
    }

    /**
      Get The threshold for when to warn the user that a folder is nearing its quota limit.
    */
    static
    int closeToQuotaThreshold()
    {
      return self()->mCloseToQuotaThreshold;
    }

    /**
      Is The threshold for when to warn the user that a folder is nearing its quota limit. Immutable
    */
    static
    bool isCloseToQuotaThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CloseToQuotaThreshold" ) );
    }

    /**
      Get Item object corresponding to CloseToQuotaThreshold()
    */
    ItemInt *closeToQuotaThresholdItem()
    {
      return mCloseToQuotaThresholdItem;
    }

    /**
      Set Empty the local trash folder on program exit
    */
    static
    void setEmptyTrashOnExit( bool v )
    {
      if (!self()->isEmptyTrashOnExitImmutable())
        self()->mEmptyTrashOnExit = v;
    }

    /**
      Get Empty the local trash folder on program exit
    */
    static
    bool emptyTrashOnExit()
    {
      return self()->mEmptyTrashOnExit;
    }

    /**
      Is Empty the local trash folder on program exit Immutable
    */
    static
    bool isEmptyTrashOnExitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EmptyTrashOnExit" ) );
    }

    /**
      Get Item object corresponding to EmptyTrashOnExit()
    */
    ItemBool *emptyTrashOnExitItem()
    {
      return mEmptyTrashOnExitItem;
    }

    /**
      Set Delete messages without confirmation
    */
    static
    void setDeleteMessageWithoutConfirmation( bool v )
    {
      if (!self()->isDeleteMessageWithoutConfirmationImmutable())
        self()->mDeleteMessageWithoutConfirmation = v;
    }

    /**
      Get Delete messages without confirmation
    */
    static
    bool deleteMessageWithoutConfirmation()
    {
      return self()->mDeleteMessageWithoutConfirmation;
    }

    /**
      Is Delete messages without confirmation Immutable
    */
    static
    bool isDeleteMessageWithoutConfirmationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DeleteMessageWithoutConfirmation" ) );
    }

    /**
      Get Item object corresponding to DeleteMessageWithoutConfirmation()
    */
    ItemBool *deleteMessageWithoutConfirmationItem()
    {
      return mDeleteMessageWithoutConfirmationItem;
    }

    /**
      Set Allow to start specific folder
    */
    static
    void setStartSpecificFolderAtStartup( bool v )
    {
      if (!self()->isStartSpecificFolderAtStartupImmutable())
        self()->mStartSpecificFolderAtStartup = v;
    }

    /**
      Get Allow to start specific folder
    */
    static
    bool startSpecificFolderAtStartup()
    {
      return self()->mStartSpecificFolderAtStartup;
    }

    /**
      Is Allow to start specific folder Immutable
    */
    static
    bool isStartSpecificFolderAtStartupImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StartSpecificFolderAtStartup" ) );
    }

    /**
      Get Item object corresponding to StartSpecificFolderAtStartup()
    */
    ItemBool *startSpecificFolderAtStartupItem()
    {
      return mStartSpecificFolderAtStartupItem;
    }

    /**
      Set Specify the folder to open when the program is started
    */
    static
    void setStartupFolder( qint64 v )
    {
      if (!self()->isStartupFolderImmutable())
        self()->mStartupFolder = v;
    }

    /**
      Get Specify the folder to open when the program is started
    */
    static
    qint64 startupFolder()
    {
      return self()->mStartupFolder;
    }

    /**
      Is Specify the folder to open when the program is started Immutable
    */
    static
    bool isStartupFolderImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StartupFolder" ) );
    }

    /**
      Get Item object corresponding to StartupFolder()
    */
    ItemLongLong *startupFolderItem()
    {
      return mStartupFolderItem;
    }

    /**
      Set check-collections-indexing
    */
    static
    void setCheckCollectionsIndexing( bool v )
    {
      if (!self()->isCheckCollectionsIndexingImmutable())
        self()->mCheckCollectionsIndexing = v;
    }

    /**
      Get check-collections-indexing
    */
    static
    bool checkCollectionsIndexing()
    {
      return self()->mCheckCollectionsIndexing;
    }

    /**
      Is check-collections-indexing Immutable
    */
    static
    bool isCheckCollectionsIndexingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CheckCollectionsIndexing" ) );
    }

    /**
      Get Item object corresponding to CheckCollectionsIndexing()
    */
    ItemBool *checkCollectionsIndexingItem()
    {
      return mCheckCollectionsIndexingItem;
    }

    /**
      Set auto-expiring
    */
    static
    void setAutoExpiring( bool v )
    {
      if (!self()->isAutoExpiringImmutable())
        self()->mAutoExpiring = v;
    }

    /**
      Get auto-expiring
    */
    static
    bool autoExpiring()
    {
      return self()->mAutoExpiring;
    }

    /**
      Is auto-expiring Immutable
    */
    static
    bool isAutoExpiringImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoExpiring" ) );
    }

    /**
      Get Item object corresponding to AutoExpiring()
    */
    ItemBool *autoExpiringItem()
    {
      return mAutoExpiringItem;
    }

    /**
      Set first-start
    */
    static
    void setFirstStart( bool v )
    {
      if (!self()->isFirstStartImmutable())
        self()->mFirstStart = v;
    }

    /**
      Get first-start
    */
    static
    bool firstStart()
    {
      return self()->mFirstStart;
    }

    /**
      Is first-start Immutable
    */
    static
    bool isFirstStartImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FirstStart" ) );
    }

    /**
      Get Item object corresponding to FirstStart()
    */
    ItemBool *firstStartItem()
    {
      return mFirstStartItem;
    }

    /**
      Set ShowMenuBar
    */
    static
    void setShowMenuBar( bool v )
    {
      if (!self()->isShowMenuBarImmutable())
        self()->mShowMenuBar = v;
    }

    /**
      Get ShowMenuBar
    */
    static
    bool showMenuBar()
    {
      return self()->mShowMenuBar;
    }

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

    /**
      Get Item object corresponding to ShowMenuBar()
    */
    ItemBool *showMenuBarItem()
    {
      return mShowMenuBarItem;
    }

    /**
      Set ReaderShowMenuBar
    */
    static
    void setReaderShowMenuBar( bool v )
    {
      if (!self()->isReaderShowMenuBarImmutable())
        self()->mReaderShowMenuBar = v;
    }

    /**
      Get ReaderShowMenuBar
    */
    static
    bool readerShowMenuBar()
    {
      return self()->mReaderShowMenuBar;
    }

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

    /**
      Get Item object corresponding to ReaderShowMenuBar()
    */
    ItemBool *readerShowMenuBarItem()
    {
      return mReaderShowMenuBarItem;
    }

    /**
      Set ComposerShowMenuBar
    */
    static
    void setComposerShowMenuBar( bool v )
    {
      if (!self()->isComposerShowMenuBarImmutable())
        self()->mComposerShowMenuBar = v;
    }

    /**
      Get ComposerShowMenuBar
    */
    static
    bool composerShowMenuBar()
    {
      return self()->mComposerShowMenuBar;
    }

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

    /**
      Get Item object corresponding to ComposerShowMenuBar()
    */
    ItemBool *composerShowMenuBarItem()
    {
      return mComposerShowMenuBarItem;
    }

    /**
      Set Whether to ask if users wants to enable Unified Mailboxes if more than one email accounts are detected. We only ever ask once.
    */
    static
    void setAskEnableUnifiedMailboxes( bool v )
    {
      if (!self()->isAskEnableUnifiedMailboxesImmutable())
        self()->mAskEnableUnifiedMailboxes = v;
    }

    /**
      Get Whether to ask if users wants to enable Unified Mailboxes if more than one email accounts are detected. We only ever ask once.
    */
    static
    bool askEnableUnifiedMailboxes()
    {
      return self()->mAskEnableUnifiedMailboxes;
    }

    /**
      Is Whether to ask if users wants to enable Unified Mailboxes if more than one email accounts are detected. We only ever ask once. Immutable
    */
    static
    bool isAskEnableUnifiedMailboxesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AskEnableUnifiedMailboxes" ) );
    }

    /**
      Get Item object corresponding to AskEnableUnifiedMailboxes()
    */
    ItemBool *askEnableUnifiedMailboxesItem()
    {
      return mAskEnableUnifiedMailboxesItem;
    }

    /**
      Set PreviousNewFeaturesMD5
    */
    static
    void setPreviousNewFeaturesMD5( const QString & v )
    {
      if (!self()->isPreviousNewFeaturesMD5Immutable())
        self()->mPreviousNewFeaturesMD5 = v;
    }

    /**
      Get PreviousNewFeaturesMD5
    */
    static
    QString previousNewFeaturesMD5()
    {
      return self()->mPreviousNewFeaturesMD5;
    }

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

    /**
      Get Item object corresponding to PreviousNewFeaturesMD5()
    */
    ItemString *previousNewFeaturesMD5Item()
    {
      return mPreviousNewFeaturesMD5Item;
    }

    /**
      Set Show folder quick search line edit
    */
    static
    void setEnableFolderQuickSearch( bool v )
    {
      if (!self()->isEnableFolderQuickSearchImmutable())
        self()->mEnableFolderQuickSearch = v;
    }

    /**
      Get Show folder quick search line edit
    */
    static
    bool enableFolderQuickSearch()
    {
      return self()->mEnableFolderQuickSearch;
    }

    /**
      Is Show folder quick search line edit Immutable
    */
    static
    bool isEnableFolderQuickSearchImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnableFolderQuickSearch" ) );
    }

    /**
      Get Item object corresponding to EnableFolderQuickSearch()
    */
    ItemBool *enableFolderQuickSearchItem()
    {
      return mEnableFolderQuickSearchItem;
    }

    /**
      Set Forward Inline As Default.
    */
    static
    void setForwardingInlineByDefault( bool v )
    {
      if (!self()->isForwardingInlineByDefaultImmutable())
        self()->mForwardingInlineByDefault = v;
    }

    /**
      Get Forward Inline As Default.
    */
    static
    bool forwardingInlineByDefault()
    {
      return self()->mForwardingInlineByDefault;
    }

    /**
      Is Forward Inline As Default. Immutable
    */
    static
    bool isForwardingInlineByDefaultImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ForwardingInlineByDefault" ) );
    }

    /**
      Get Item object corresponding to ForwardingInlineByDefault()
    */
    ItemBool *forwardingInlineByDefaultItem()
    {
      return mForwardingInlineByDefaultItem;
    }

    /**
      Set Warn if the number of recipients is more than:
    */
    static
    void setTooManyRecipients( bool v )
    {
      if (!self()->isTooManyRecipientsImmutable())
        self()->mTooManyRecipients = v;
    }

    /**
      Get Warn if the number of recipients is more than:
    */
    static
    bool tooManyRecipients()
    {
      return self()->mTooManyRecipients;
    }

    /**
      Is Warn if the number of recipients is more than: Immutable
    */
    static
    bool isTooManyRecipientsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TooManyRecipients" ) );
    }

    /**
      Get Item object corresponding to TooManyRecipients()
    */
    ItemBool *tooManyRecipientsItem()
    {
      return mTooManyRecipientsItem;
    }

    /**
      Set recipient-threshold
    */
    static
    void setRecipientThreshold( int v )
    {
      if (v < 1)
      {
        qCDebug(KMAIL_LOG) << "setRecipientThreshold: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 100)
      {
        qCDebug(KMAIL_LOG) << "setRecipientThreshold: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (!self()->isRecipientThresholdImmutable())
        self()->mRecipientThreshold = v;
    }

    /**
      Get recipient-threshold
    */
    static
    int recipientThreshold()
    {
      return self()->mRecipientThreshold;
    }

    /**
      Is recipient-threshold Immutable
    */
    static
    bool isRecipientThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RecipientThreshold" ) );
    }

    /**
      Get Item object corresponding to RecipientThreshold()
    */
    ItemInt *recipientThresholdItem()
    {
      return mRecipientThresholdItem;
    }

    /**
      Set previous-identity
    */
    static
    void setPreviousIdentity( uint v )
    {
      if (!self()->isPreviousIdentityImmutable())
        self()->mPreviousIdentity = v;
    }

    /**
      Get previous-identity
    */
    static
    uint previousIdentity()
    {
      return self()->mPreviousIdentity;
    }

    /**
      Is previous-identity Immutable
    */
    static
    bool isPreviousIdentityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreviousIdentity" ) );
    }

    /**
      Get Item object corresponding to PreviousIdentity()
    */
    ItemUInt *previousIdentityItem()
    {
      return mPreviousIdentityItem;
    }

    /**
      Set previous-fcc
    */
    static
    void setPreviousFcc( const QString & v )
    {
      if (!self()->isPreviousFccImmutable())
        self()->mPreviousFcc = v;
    }

    /**
      Get previous-fcc
    */
    static
    QString previousFcc()
    {
      return self()->mPreviousFcc;
    }

    /**
      Is previous-fcc Immutable
    */
    static
    bool isPreviousFccImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreviousFcc" ) );
    }

    /**
      Get Item object corresponding to PreviousFcc()
    */
    ItemString *previousFccItem()
    {
      return mPreviousFccItem;
    }

    /**
      Set PreviousDictionary
    */
    static
    void setPreviousDictionary( const QString & v )
    {
      if (!self()->isPreviousDictionaryImmutable())
        self()->mPreviousDictionary = v;
    }

    /**
      Get PreviousDictionary
    */
    static
    QString previousDictionary()
    {
      return self()->mPreviousDictionary;
    }

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

    /**
      Get Item object corresponding to PreviousDictionary()
    */
    ItemString *previousDictionaryItem()
    {
      return mPreviousDictionaryItem;
    }

    /**
      Set current-transport
    */
    static
    void setCurrentTransport( const QString & v )
    {
      if (!self()->isCurrentTransportImmutable())
        self()->mCurrentTransport = v;
    }

    /**
      Get current-transport
    */
    static
    QString currentTransport()
    {
      return self()->mCurrentTransport;
    }

    /**
      Is current-transport Immutable
    */
    static
    bool isCurrentTransportImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CurrentTransport" ) );
    }

    /**
      Get Item object corresponding to CurrentTransport()
    */
    ItemString *currentTransportItem()
    {
      return mCurrentTransportItem;
    }

    /**
      Set html-markup
    */
    static
    void setUseHtmlMarkup( bool v )
    {
      if (!self()->isUseHtmlMarkupImmutable())
        self()->mUseHtmlMarkup = v;
    }

    /**
      Get html-markup
    */
    static
    bool useHtmlMarkup()
    {
      return self()->mUseHtmlMarkup;
    }

    /**
      Is html-markup Immutable
    */
    static
    bool isUseHtmlMarkupImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseHtmlMarkup" ) );
    }

    /**
      Get Item object corresponding to UseHtmlMarkup()
    */
    ItemBool *useHtmlMarkupItem()
    {
      return mUseHtmlMarkupItem;
    }

    /**
      Set always-encrypt-drafts
    */
    static
    void setAlwaysEncryptDrafts( bool v )
    {
      if (!self()->isAlwaysEncryptDraftsImmutable())
        self()->mAlwaysEncryptDrafts = v;
    }

    /**
      Get always-encrypt-drafts
    */
    static
    bool alwaysEncryptDrafts()
    {
      return self()->mAlwaysEncryptDrafts;
    }

    /**
      Is always-encrypt-drafts Immutable
    */
    static
    bool isAlwaysEncryptDraftsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlwaysEncryptDrafts" ) );
    }

    /**
      Get Item object corresponding to AlwaysEncryptDrafts()
    */
    ItemBool *alwaysEncryptDraftsItem()
    {
      return mAlwaysEncryptDraftsItem;
    }

    /**
      Set Confirm &before send
    */
    static
    void setConfirmBeforeSend( bool v )
    {
      if (!self()->isConfirmBeforeSendImmutable())
        self()->mConfirmBeforeSend = v;
    }

    /**
      Get Confirm &before send
    */
    static
    bool confirmBeforeSend()
    {
      return self()->mConfirmBeforeSend;
    }

    /**
      Is Confirm &before send Immutable
    */
    static
    bool isConfirmBeforeSendImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ConfirmBeforeSend" ) );
    }

    /**
      Get Item object corresponding to ConfirmBeforeSend()
    */
    ItemBool *confirmBeforeSendItem()
    {
      return mConfirmBeforeSendItem;
    }

    /**
      Set confirm-before-send-when-use-shortcut
    */
    static
    void setConfirmBeforeSendWhenUseShortcut( bool v )
    {
      if (!self()->isConfirmBeforeSendWhenUseShortcutImmutable())
        self()->mConfirmBeforeSendWhenUseShortcut = v;
    }

    /**
      Get confirm-before-send-when-use-shortcut
    */
    static
    bool confirmBeforeSendWhenUseShortcut()
    {
      return self()->mConfirmBeforeSendWhenUseShortcut;
    }

    /**
      Is confirm-before-send-when-use-shortcut Immutable
    */
    static
    bool isConfirmBeforeSendWhenUseShortcutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ConfirmBeforeSendWhenUseShortcut" ) );
    }

    /**
      Get Item object corresponding to ConfirmBeforeSendWhenUseShortcut()
    */
    ItemBool *confirmBeforeSendWhenUseShortcutItem()
    {
      return mConfirmBeforeSendWhenUseShortcutItem;
    }

    /**
      Set Check spelling before send
    */
    static
    void setCheckSpellingBeforeSend( bool v )
    {
      if (!self()->isCheckSpellingBeforeSendImmutable())
        self()->mCheckSpellingBeforeSend = v;
    }

    /**
      Get Check spelling before send
    */
    static
    bool checkSpellingBeforeSend()
    {
      return self()->mCheckSpellingBeforeSend;
    }

    /**
      Is Check spelling before send Immutable
    */
    static
    bool isCheckSpellingBeforeSendImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CheckSpellingBeforeSend" ) );
    }

    /**
      Get Item object corresponding to CheckSpellingBeforeSend()
    */
    ItemBool *checkSpellingBeforeSendItem()
    {
      return mCheckSpellingBeforeSendItem;
    }

    /**
      Set Automatically request &message disposition notifications
    */
    static
    void setRequestMDN( bool v )
    {
      if (!self()->isRequestMDNImmutable())
        self()->mRequestMDN = v;
    }

    /**
      Get Automatically request &message disposition notifications
    */
    static
    bool requestMDN()
    {
      return self()->mRequestMDN;
    }

    /**
      Is Automatically request &message disposition notifications Immutable
    */
    static
    bool isRequestMDNImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RequestMDN" ) );
    }

    /**
      Get Item object corresponding to RequestMDN()
    */
    ItemBool *requestMDNItem()
    {
      return mRequestMDNItem;
    }

    /**
      Set headers
    */
    static
    void setHeaders( int v )
    {
      if (!self()->isHeadersImmutable())
        self()->mHeaders = v;
    }

    /**
      Get headers
    */
    static
    int headers()
    {
      return self()->mHeaders;
    }

    /**
      Is headers Immutable
    */
    static
    bool isHeadersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Headers" ) );
    }

    /**
      Get Item object corresponding to Headers()
    */
    ItemInt *headersItem()
    {
      return mHeadersItem;
    }

    /**
      Set Completion Mode
    */
    static
    void setCompletionMode( int v )
    {
      if (!self()->isCompletionModeImmutable())
        self()->mCompletionMode = v;
    }

    /**
      Get Completion Mode
    */
    static
    int completionMode()
    {
      return self()->mCompletionMode;
    }

    /**
      Is Completion Mode Immutable
    */
    static
    bool isCompletionModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CompletionMode" ) );
    }

    /**
      Get Item object corresponding to CompletionMode()
    */
    ItemInt *completionModeItem()
    {
      return mCompletionModeItem;
    }

    /**
      Set autoSpellChecking
    */
    static
    void setAutoSpellChecking( bool v )
    {
      if (!self()->isAutoSpellCheckingImmutable())
        self()->mAutoSpellChecking = v;
    }

    /**
      Get autoSpellChecking
    */
    static
    bool autoSpellChecking()
    {
      return self()->mAutoSpellChecking;
    }

    /**
      Is autoSpellChecking Immutable
    */
    static
    bool isAutoSpellCheckingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoSpellChecking" ) );
    }

    /**
      Get Item object corresponding to AutoSpellChecking()
    */
    ItemBool *autoSpellCheckingItem()
    {
      return mAutoSpellCheckingItem;
    }

    /**
      Set showForgottenAttachmentWarning
    */
    static
    void setShowForgottenAttachmentWarning( bool v )
    {
      if (!self()->isShowForgottenAttachmentWarningImmutable())
        self()->mShowForgottenAttachmentWarning = v;
    }

    /**
      Get showForgottenAttachmentWarning
    */
    static
    bool showForgottenAttachmentWarning()
    {
      return self()->mShowForgottenAttachmentWarning;
    }

    /**
      Is showForgottenAttachmentWarning Immutable
    */
    static
    bool isShowForgottenAttachmentWarningImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowForgottenAttachmentWarning" ) );
    }

    /**
      Get Item object corresponding to ShowForgottenAttachmentWarning()
    */
    ItemBool *showForgottenAttachmentWarningItem()
    {
      return mShowForgottenAttachmentWarningItem;
    }

    /**
      Set attachment-keywords
    */
    static
    void setAttachmentKeywords( const QStringList & v )
    {
      if (!self()->isAttachmentKeywordsImmutable())
        self()->mAttachmentKeywords = v;
    }

    /**
      Get attachment-keywords
    */
    static
    QStringList attachmentKeywords()
    {
      return self()->mAttachmentKeywords;
    }

    /**
      Is attachment-keywords Immutable
    */
    static
    bool isAttachmentKeywordsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AttachmentKeywords" ) );
    }

    /**
      Get Item object corresponding to AttachmentKeywords()
    */
    ItemStringList *attachmentKeywordsItem()
    {
      return mAttachmentKeywordsItem;
    }

    /**
      Set Autosave interval:
    */
    static
    void setAutosaveInterval( int v )
    {
      if (!self()->isAutosaveIntervalImmutable())
        self()->mAutosaveInterval = v;
    }

    /**
      Get Autosave interval:
    */
    static
    int autosaveInterval()
    {
      return self()->mAutosaveInterval;
    }

    /**
      Is Autosave interval: Immutable
    */
    static
    bool isAutosaveIntervalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutosaveInterval" ) );
    }

    /**
      Get Item object corresponding to AutosaveInterval()
    */
    ItemInt *autosaveIntervalItem()
    {
      return mAutosaveIntervalItem;
    }

    /**
      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 Show the Text Snippet Management and Insertion Panel in the composer.
    */
    static
    void setShowSnippetManager( bool v )
    {
      if (!self()->isShowSnippetManagerImmutable())
        self()->mShowSnippetManager = v;
    }

    /**
      Get Show the Text Snippet Management and Insertion Panel in the composer.
    */
    static
    bool showSnippetManager()
    {
      return self()->mShowSnippetManager;
    }

    /**
      Is Show the Text Snippet Management and Insertion Panel in the composer. Immutable
    */
    static
    bool isShowSnippetManagerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSnippetManager" ) );
    }

    /**
      Get Item object corresponding to ShowSnippetManager()
    */
    ItemBool *showSnippetManagerItem()
    {
      return mShowSnippetManagerItem;
    }

    /**
      Set SnippetSplitterPosition
    */
    static
    void setSnippetSplitterPosition( const QList<int> & v )
    {
      if (!self()->isSnippetSplitterPositionImmutable())
        self()->mSnippetSplitterPosition = v;
    }

    /**
      Get SnippetSplitterPosition
    */
    static
    QList<int> snippetSplitterPosition()
    {
      return self()->mSnippetSplitterPosition;
    }

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

    /**
      Get Item object corresponding to SnippetSplitterPosition()
    */
    ItemIntList *snippetSplitterPositionItem()
    {
      return mSnippetSplitterPositionItem;
    }

    /**
      Set When check, sent messages will be stored in the encrypted form
    */
    static
    void setCryptoStoreEncrypted( bool v )
    {
      if (!self()->isCryptoStoreEncryptedImmutable())
        self()->mCryptoStoreEncrypted = v;
    }

    /**
      Get When check, sent messages will be stored in the encrypted form
    */
    static
    bool cryptoStoreEncrypted()
    {
      return self()->mCryptoStoreEncrypted;
    }

    /**
      Is When check, sent messages will be stored in the encrypted form Immutable
    */
    static
    bool isCryptoStoreEncryptedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CryptoStoreEncrypted" ) );
    }

    /**
      Get Item object corresponding to CryptoStoreEncrypted()
    */
    ItemBool *cryptoStoreEncryptedItem()
    {
      return mCryptoStoreEncryptedItem;
    }

    /**
      Set A list of all the recently used URLs
    */
    static
    void setRecentUrls( const QStringList & v )
    {
      if (!self()->isRecentUrlsImmutable())
        self()->mRecentUrls = v;
    }

    /**
      Get A list of all the recently used URLs
    */
    static
    QStringList recentUrls()
    {
      return self()->mRecentUrls;
    }

    /**
      Is A list of all the recently used URLs Immutable
    */
    static
    bool isRecentUrlsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RecentUrls" ) );
    }

    /**
      Get Item object corresponding to RecentUrls()
    */
    ItemStringList *recentUrlsItem()
    {
      return mRecentUrlsItem;
    }

    /**
      Set A list of all the recently used encodings
    */
    static
    void setRecentEncodings( const QStringList & v )
    {
      if (!self()->isRecentEncodingsImmutable())
        self()->mRecentEncodings = v;
    }

    /**
      Get A list of all the recently used encodings
    */
    static
    QStringList recentEncodings()
    {
      return self()->mRecentEncodings;
    }

    /**
      Is A list of all the recently used encodings Immutable
    */
    static
    bool isRecentEncodingsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RecentEncodings" ) );
    }

    /**
      Get Item object corresponding to RecentEncodings()
    */
    ItemStringList *recentEncodingsItem()
    {
      return mRecentEncodingsItem;
    }

    /**
      Set Show crypto label indicator
    */
    static
    void setShowCryptoLabelIndicator( bool v )
    {
      if (!self()->isShowCryptoLabelIndicatorImmutable())
        self()->mShowCryptoLabelIndicator = v;
    }

    /**
      Get Show crypto label indicator
    */
    static
    bool showCryptoLabelIndicator()
    {
      return self()->mShowCryptoLabelIndicator;
    }

    /**
      Is Show crypto label indicator Immutable
    */
    static
    bool isShowCryptoLabelIndicatorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowCryptoLabelIndicator" ) );
    }

    /**
      Get Item object corresponding to ShowCryptoLabelIndicator()
    */
    ItemBool *showCryptoLabelIndicatorItem()
    {
      return mShowCryptoLabelIndicatorItem;
    }

    /**
      Set Validate Send Default Shortcut
    */
    static
    void setCheckSendDefaultActionShortcut( bool v )
    {
      if (!self()->isCheckSendDefaultActionShortcutImmutable())
        self()->mCheckSendDefaultActionShortcut = v;
    }

    /**
      Get Validate Send Default Shortcut
    */
    static
    bool checkSendDefaultActionShortcut()
    {
      return self()->mCheckSendDefaultActionShortcut;
    }

    /**
      Is Validate Send Default Shortcut Immutable
    */
    static
    bool isCheckSendDefaultActionShortcutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CheckSendDefaultActionShortcut" ) );
    }

    /**
      Get Item object corresponding to CheckSendDefaultActionShortcut()
    */
    ItemBool *checkSendDefaultActionShortcutItem()
    {
      return mCheckSendDefaultActionShortcutItem;
    }

    /**
      Set composer-font
    */
    static
    void setComposerFont( const QFont & v )
    {
      if (!self()->isComposerFontImmutable())
        self()->mComposerFont = v;
    }

    /**
      Get composer-font
    */
    static
    QFont composerFont()
    {
      return self()->mComposerFont;
    }

    /**
      Is composer-font Immutable
    */
    static
    bool isComposerFontImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ComposerFont" ) );
    }

    /**
      Get Item object corresponding to ComposerFont()
    */
    ItemFont *composerFontItem()
    {
      return mComposerFontItem;
    }

    /**
      Set composer
    */
    static
    void setComposerSize( const QSize & v )
    {
      if (!self()->isComposerSizeImmutable())
        self()->mComposerSize = v;
    }

    /**
      Get composer
    */
    static
    QSize composerSize()
    {
      return self()->mComposerSize;
    }

    /**
      Is composer Immutable
    */
    static
    bool isComposerSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ComposerSize" ) );
    }

    /**
      Get Item object corresponding to ComposerSize()
    */
    ItemSize *composerSizeItem()
    {
      return mComposerSizeItem;
    }

    /**
      Set Identity Dialog size
    */
    static
    void setIdentityDialogSize( const QSize & v )
    {
      if (!self()->isIdentityDialogSizeImmutable())
        self()->mIdentityDialogSize = v;
    }

    /**
      Get Identity Dialog size
    */
    static
    QSize identityDialogSize()
    {
      return self()->mIdentityDialogSize;
    }

    /**
      Is Identity Dialog size Immutable
    */
    static
    bool isIdentityDialogSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "IdentityDialogSize" ) );
    }

    /**
      Get Item object corresponding to IdentityDialogSize()
    */
    ItemSize *identityDialogSizeItem()
    {
      return mIdentityDialogSizeItem;
    }

    /**
      Set SearchWidgetWidth
    */
    static
    void setSearchWidgetWidth( int v )
    {
      if (!self()->isSearchWidgetWidthImmutable())
        self()->mSearchWidgetWidth = v;
    }

    /**
      Get SearchWidgetWidth
    */
    static
    int searchWidgetWidth()
    {
      return self()->mSearchWidgetWidth;
    }

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

    /**
      Get Item object corresponding to SearchWidgetWidth()
    */
    ItemInt *searchWidgetWidthItem()
    {
      return mSearchWidgetWidthItem;
    }

    /**
      Set SearchWidgetHeight
    */
    static
    void setSearchWidgetHeight( int v )
    {
      if (!self()->isSearchWidgetHeightImmutable())
        self()->mSearchWidgetHeight = v;
    }

    /**
      Get SearchWidgetHeight
    */
    static
    int searchWidgetHeight()
    {
      return self()->mSearchWidgetHeight;
    }

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

    /**
      Get Item object corresponding to SearchWidgetHeight()
    */
    ItemInt *searchWidgetHeightItem()
    {
      return mSearchWidgetHeightItem;
    }

    /**
      Set ConfigureDialogWidth
    */
    static
    void setConfigureDialogWidth( int v )
    {
      if (!self()->isConfigureDialogWidthImmutable())
        self()->mConfigureDialogWidth = v;
    }

    /**
      Get ConfigureDialogWidth
    */
    static
    int configureDialogWidth()
    {
      return self()->mConfigureDialogWidth;
    }

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

    /**
      Get Item object corresponding to ConfigureDialogWidth()
    */
    ItemInt *configureDialogWidthItem()
    {
      return mConfigureDialogWidthItem;
    }

    /**
      Set ConfigureDialogHeight
    */
    static
    void setConfigureDialogHeight( int v )
    {
      if (!self()->isConfigureDialogHeightImmutable())
        self()->mConfigureDialogHeight = v;
    }

    /**
      Get ConfigureDialogHeight
    */
    static
    int configureDialogHeight()
    {
      return self()->mConfigureDialogHeight;
    }

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

    /**
      Get Item object corresponding to ConfigureDialogHeight()
    */
    ItemInt *configureDialogHeightItem()
    {
      return mConfigureDialogHeightItem;
    }

    /**
      Set FolderViewWidth
    */
    static
    void setFolderViewWidth( int v )
    {
      if (!self()->isFolderViewWidthImmutable())
        self()->mFolderViewWidth = v;
    }

    /**
      Get FolderViewWidth
    */
    static
    int folderViewWidth()
    {
      return self()->mFolderViewWidth;
    }

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

    /**
      Get Item object corresponding to FolderViewWidth()
    */
    ItemInt *folderViewWidthItem()
    {
      return mFolderViewWidthItem;
    }

    /**
      Set FolderViewHeight
    */
    static
    void setFolderViewHeight( int v )
    {
      if (!self()->isFolderViewHeightImmutable())
        self()->mFolderViewHeight = v;
    }

    /**
      Get FolderViewHeight
    */
    static
    int folderViewHeight()
    {
      return self()->mFolderViewHeight;
    }

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

    /**
      Get Item object corresponding to FolderViewHeight()
    */
    ItemInt *folderViewHeightItem()
    {
      return mFolderViewHeightItem;
    }

    /**
      Set FolderTreeHeight
    */
    static
    void setFolderTreeHeight( int v )
    {
      if (!self()->isFolderTreeHeightImmutable())
        self()->mFolderTreeHeight = v;
    }

    /**
      Get FolderTreeHeight
    */
    static
    int folderTreeHeight()
    {
      return self()->mFolderTreeHeight;
    }

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

    /**
      Get Item object corresponding to FolderTreeHeight()
    */
    ItemInt *folderTreeHeightItem()
    {
      return mFolderTreeHeightItem;
    }

    /**
      Set SearchAndHeaderHeight
    */
    static
    void setSearchAndHeaderHeight( int v )
    {
      if (!self()->isSearchAndHeaderHeightImmutable())
        self()->mSearchAndHeaderHeight = v;
    }

    /**
      Get SearchAndHeaderHeight
    */
    static
    int searchAndHeaderHeight()
    {
      return self()->mSearchAndHeaderHeight;
    }

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

    /**
      Get Item object corresponding to SearchAndHeaderHeight()
    */
    ItemInt *searchAndHeaderHeightItem()
    {
      return mSearchAndHeaderHeightItem;
    }

    /**
      Set SearchAndHeaderWidth
    */
    static
    void setSearchAndHeaderWidth( int v )
    {
      if (!self()->isSearchAndHeaderWidthImmutable())
        self()->mSearchAndHeaderWidth = v;
    }

    /**
      Get SearchAndHeaderWidth
    */
    static
    int searchAndHeaderWidth()
    {
      return self()->mSearchAndHeaderWidth;
    }

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

    /**
      Get Item object corresponding to SearchAndHeaderWidth()
    */
    ItemInt *searchAndHeaderWidthItem()
    {
      return mSearchAndHeaderWidthItem;
    }

    /**
      Set ReaderWindowWidth
    */
    static
    void setReaderWindowWidth( int v )
    {
      if (!self()->isReaderWindowWidthImmutable())
        self()->mReaderWindowWidth = v;
    }

    /**
      Get ReaderWindowWidth
    */
    static
    int readerWindowWidth()
    {
      return self()->mReaderWindowWidth;
    }

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

    /**
      Get Item object corresponding to ReaderWindowWidth()
    */
    ItemInt *readerWindowWidthItem()
    {
      return mReaderWindowWidthItem;
    }

    /**
      Set ReaderWindowHeight
    */
    static
    void setReaderWindowHeight( int v )
    {
      if (!self()->isReaderWindowHeightImmutable())
        self()->mReaderWindowHeight = v;
    }

    /**
      Get ReaderWindowHeight
    */
    static
    int readerWindowHeight()
    {
      return self()->mReaderWindowHeight;
    }

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

    /**
      Get Item object corresponding to ReaderWindowHeight()
    */
    ItemInt *readerWindowHeightItem()
    {
      return mReaderWindowHeightItem;
    }

    /**
      Set Message preview pane:
    */
    static
    void setReaderWindowMode( int v )
    {
      if (!self()->isReaderWindowModeImmutable())
        self()->mReaderWindowMode = v;
    }

    /**
      Get Message preview pane:
    */
    static
    int readerWindowMode()
    {
      return self()->mReaderWindowMode;
    }

    /**
      Is Message preview pane: Immutable
    */
    static
    bool isReaderWindowModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "readerWindowMode" ) );
    }

    /**
      Get Item object corresponding to readerWindowMode()
    */
    ItemEnum *readerWindowModeItem()
    {
      return mReaderWindowModeItem;
    }

    /**
      Set Folder list:
    */
    static
    void setFolderList( int v )
    {
      if (!self()->isFolderListImmutable())
        self()->mFolderList = v;
    }

    /**
      Get Folder list:
    */
    static
    int folderList()
    {
      return self()->mFolderList;
    }

    /**
      Is Folder list: Immutable
    */
    static
    bool isFolderListImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FolderList" ) );
    }

    /**
      Get Item object corresponding to FolderList()
    */
    ItemEnum *folderListItem()
    {
      return mFolderListItem;
    }

    /**
      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;
    }

    /**
      Set LastSearchCollectionId
    */
    static
    void setLastSearchCollectionId( qint64 v )
    {
      if (!self()->isLastSearchCollectionIdImmutable())
        self()->mLastSearchCollectionId = v;
    }

    /**
      Get LastSearchCollectionId
    */
    static
    qint64 lastSearchCollectionId()
    {
      return self()->mLastSearchCollectionId;
    }

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

    /**
      Get Item object corresponding to LastSearchCollectionId()
    */
    ItemLongLong *lastSearchCollectionIdItem()
    {
      return mLastSearchCollectionIdItem;
    }

    /**
      Set Specifies the policy used when displaying policy
    */
    static
    void setToolTipDisplayPolicy( int v )
    {
      if (!self()->isToolTipDisplayPolicyImmutable())
        self()->mToolTipDisplayPolicy = v;
    }

    /**
      Get Specifies the policy used when displaying policy
    */
    static
    int toolTipDisplayPolicy()
    {
      return self()->mToolTipDisplayPolicy;
    }

    /**
      Is Specifies the policy used when displaying policy Immutable
    */
    static
    bool isToolTipDisplayPolicyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ToolTipDisplayPolicy" ) );
    }

    /**
      Get Item object corresponding to ToolTipDisplayPolicy()
    */
    ItemInt *toolTipDisplayPolicyItem()
    {
      return mToolTipDisplayPolicyItem;
    }

    /**
      Set CollectionWidth
    */
    static
    void setCollectionWidth( int v )
    {
      if (!self()->isCollectionWidthImmutable())
        self()->mCollectionWidth = v;
    }

    /**
      Get CollectionWidth
    */
    static
    int collectionWidth()
    {
      return self()->mCollectionWidth;
    }

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

    /**
      Get Item object corresponding to CollectionWidth()
    */
    ItemInt *collectionWidthItem()
    {
      return mCollectionWidthItem;
    }

    /**
      Set SubjectWidth
    */
    static
    void setSubjectWidth( int v )
    {
      if (!self()->isSubjectWidthImmutable())
        self()->mSubjectWidth = v;
    }

    /**
      Get SubjectWidth
    */
    static
    int subjectWidth()
    {
      return self()->mSubjectWidth;
    }

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

    /**
      Get Item object corresponding to SubjectWidth()
    */
    ItemInt *subjectWidthItem()
    {
      return mSubjectWidthItem;
    }

    /**
      Set SenderWidth
    */
    static
    void setSenderWidth( int v )
    {
      if (!self()->isSenderWidthImmutable())
        self()->mSenderWidth = v;
    }

    /**
      Get SenderWidth
    */
    static
    int senderWidth()
    {
      return self()->mSenderWidth;
    }

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

    /**
      Get Item object corresponding to SenderWidth()
    */
    ItemInt *senderWidthItem()
    {
      return mSenderWidthItem;
    }

    /**
      Set ReceiverWidth
    */
    static
    void setReceiverWidth( int v )
    {
      if (!self()->isReceiverWidthImmutable())
        self()->mReceiverWidth = v;
    }

    /**
      Get ReceiverWidth
    */
    static
    int receiverWidth()
    {
      return self()->mReceiverWidth;
    }

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

    /**
      Get Item object corresponding to ReceiverWidth()
    */
    ItemInt *receiverWidthItem()
    {
      return mReceiverWidthItem;
    }

    /**
      Set DateWidth
    */
    static
    void setDateWidth( int v )
    {
      if (!self()->isDateWidthImmutable())
        self()->mDateWidth = v;
    }

    /**
      Get DateWidth
    */
    static
    int dateWidth()
    {
      return self()->mDateWidth;
    }

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

    /**
      Get Item object corresponding to DateWidth()
    */
    ItemInt *dateWidthItem()
    {
      return mDateWidthItem;
    }

    /**
      Set FolderWidth
    */
    static
    void setFolderWidth( int v )
    {
      if (!self()->isFolderWidthImmutable())
        self()->mFolderWidth = v;
    }

    /**
      Get FolderWidth
    */
    static
    int folderWidth()
    {
      return self()->mFolderWidth;
    }

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

    /**
      Get Item object corresponding to FolderWidth()
    */
    ItemInt *folderWidthItem()
    {
      return mFolderWidthItem;
    }

    /**
      Set EnabledUndoSend
    */
    static
    void setEnabledUndoSend( bool v )
    {
      if (!self()->isEnabledUndoSendImmutable())
        self()->mEnabledUndoSend = v;
    }

    /**
      Get EnabledUndoSend
    */
    static
    bool enabledUndoSend()
    {
      return self()->mEnabledUndoSend;
    }

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

    /**
      Get Item object corresponding to EnabledUndoSend()
    */
    ItemBool *enabledUndoSendItem()
    {
      return mEnabledUndoSendItem;
    }

    /**
      Set UndoSendDelay
    */
    static
    void setUndoSendDelay( int v )
    {
      if (!self()->isUndoSendDelayImmutable())
        self()->mUndoSendDelay = v;
    }

    /**
      Get UndoSendDelay
    */
    static
    int undoSendDelay()
    {
      return self()->mUndoSendDelay;
    }

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

    /**
      Get Item object corresponding to UndoSendDelay()
    */
    ItemInt *undoSendDelayItem()
    {
      return mUndoSendDelayItem;
    }

    /**
      Set EnabledActivities
    */
    static
    void setEnabledActivities( bool v )
    {
      if (!self()->isEnabledActivitiesImmutable())
        self()->mEnabledActivities = v;
    }

    /**
      Get EnabledActivities
    */
    static
    bool enabledActivities()
    {
      return self()->mEnabledActivities;
    }

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

    /**
      Get Item object corresponding to EnabledActivities()
    */
    ItemBool *enabledActivitiesItem()
    {
      return mEnabledActivitiesItem;
    }

  protected:
    GlobalSettingsBase();
    friend class GlobalSettingsBaseHelper;


    // Behaviour
    int mActionEnterFolder;
    int mNetworkState;
    int mLoopOnGotoUnread;
    bool mEnableFolderDnD;
    bool mShowPopupAfterDnD;
    bool mExcludeImportantMailFromExpiry;
    bool mAllowLocalFlags;
    int mSendOnCheck;

    // FolderSelectionDialog
    qint64 mLastSelectedFolder;

    // General
    bool mPlasmaActivitySupport;
    bool mWarnBeforeExpire;
    bool mSystemTrayEnabled;
    bool mStartInTray;
    bool mShowUnreadInTaskbar;
    QString mExternalEditor;
    bool mUseExternalEditor;
    int mCustomMessageHeadersCount;
    int mCloseToQuotaThreshold;
    bool mEmptyTrashOnExit;
    bool mDeleteMessageWithoutConfirmation;
    bool mStartSpecificFolderAtStartup;
    qint64 mStartupFolder;
    bool mCheckCollectionsIndexing;
    bool mAutoExpiring;
    bool mFirstStart;
    bool mShowMenuBar;
    bool mReaderShowMenuBar;
    bool mComposerShowMenuBar;
    bool mAskEnableUnifiedMailboxes;

    // Internal
    QString mPreviousNewFeaturesMD5;

    // UserInterface
    bool mEnableFolderQuickSearch;

    // Composer
    bool mForwardingInlineByDefault;
    bool mTooManyRecipients;
    int mRecipientThreshold;
    uint mPreviousIdentity;
    QString mPreviousFcc;
    QString mPreviousDictionary;
    QString mCurrentTransport;
    bool mUseHtmlMarkup;
    bool mAlwaysEncryptDrafts;
    bool mConfirmBeforeSend;
    bool mConfirmBeforeSendWhenUseShortcut;
    bool mCheckSpellingBeforeSend;
    bool mRequestMDN;
    int mHeaders;
    int mCompletionMode;
    bool mAutoSpellChecking;
    bool mShowForgottenAttachmentWarning;
    QStringList mAttachmentKeywords;
    int mAutosaveInterval;
    QStringList mCustomTemplates;
    bool mShowSnippetManager;
    QList<int> mSnippetSplitterPosition;
    bool mCryptoStoreEncrypted;
    QStringList mRecentUrls;
    QStringList mRecentEncodings;
    bool mShowCryptoLabelIndicator;
    bool mCheckSendDefaultActionShortcut;

    // Fonts
    QFont mComposerFont;

    // Geometry
    QSize mComposerSize;
    QSize mIdentityDialogSize;
    int mSearchWidgetWidth;
    int mSearchWidgetHeight;
    int mConfigureDialogWidth;
    int mConfigureDialogHeight;
    int mFolderViewWidth;
    int mFolderViewHeight;
    int mFolderTreeHeight;
    int mSearchAndHeaderHeight;
    int mSearchAndHeaderWidth;
    int mReaderWindowWidth;
    int mReaderWindowHeight;
    int mReaderWindowMode;
    int mFolderList;

    // GlobalTemplates
    QString mTemplateNewMessage;
    QString mTemplateReply;
    QString mTemplateReplyAll;
    QString mTemplateForward;
    QString mQuoteString;

    // Search
    qint64 mLastSearchCollectionId;

    // MainFolderView
    int mToolTipDisplayPolicy;

    // SearchDialog
    int mCollectionWidth;
    int mSubjectWidth;
    int mSenderWidth;
    int mReceiverWidth;
    int mDateWidth;
    int mFolderWidth;

    // UndoSend
    bool mEnabledUndoSend;
    int mUndoSendDelay;

    // Activities
    bool mEnabledActivities;

  private:
    ItemEnum *mActionEnterFolderItem;
    ItemEnum *mNetworkStateItem;
    ItemEnum *mLoopOnGotoUnreadItem;
    ItemBool *mEnableFolderDnDItem;
    ItemBool *mShowPopupAfterDnDItem;
    ItemBool *mExcludeImportantMailFromExpiryItem;
    ItemBool *mAllowLocalFlagsItem;
    ItemEnum *mSendOnCheckItem;
    ItemLongLong *mLastSelectedFolderItem;
    ItemBool *mPlasmaActivitySupportItem;
    ItemBool *mWarnBeforeExpireItem;
    ItemBool *mSystemTrayEnabledItem;
    ItemBool *mStartInTrayItem;
    ItemBool *mShowUnreadInTaskbarItem;
    ItemString *mExternalEditorItem;
    ItemBool *mUseExternalEditorItem;
    ItemInt *mCustomMessageHeadersCountItem;
    ItemInt *mCloseToQuotaThresholdItem;
    ItemBool *mEmptyTrashOnExitItem;
    ItemBool *mDeleteMessageWithoutConfirmationItem;
    ItemBool *mStartSpecificFolderAtStartupItem;
    ItemLongLong *mStartupFolderItem;
    ItemBool *mCheckCollectionsIndexingItem;
    ItemBool *mAutoExpiringItem;
    ItemBool *mFirstStartItem;
    ItemBool *mShowMenuBarItem;
    ItemBool *mReaderShowMenuBarItem;
    ItemBool *mComposerShowMenuBarItem;
    ItemBool *mAskEnableUnifiedMailboxesItem;
    ItemString *mPreviousNewFeaturesMD5Item;
    ItemBool *mEnableFolderQuickSearchItem;
    ItemBool *mForwardingInlineByDefaultItem;
    ItemBool *mTooManyRecipientsItem;
    ItemInt *mRecipientThresholdItem;
    ItemUInt *mPreviousIdentityItem;
    ItemString *mPreviousFccItem;
    ItemString *mPreviousDictionaryItem;
    ItemString *mCurrentTransportItem;
    ItemBool *mUseHtmlMarkupItem;
    ItemBool *mAlwaysEncryptDraftsItem;
    ItemBool *mConfirmBeforeSendItem;
    ItemBool *mConfirmBeforeSendWhenUseShortcutItem;
    ItemBool *mCheckSpellingBeforeSendItem;
    ItemBool *mRequestMDNItem;
    ItemInt *mHeadersItem;
    ItemInt *mCompletionModeItem;
    ItemBool *mAutoSpellCheckingItem;
    ItemBool *mShowForgottenAttachmentWarningItem;
    ItemStringList *mAttachmentKeywordsItem;
    ItemInt *mAutosaveIntervalItem;
    ItemStringList *mCustomTemplatesItem;
    ItemBool *mShowSnippetManagerItem;
    ItemIntList *mSnippetSplitterPositionItem;
    ItemBool *mCryptoStoreEncryptedItem;
    ItemStringList *mRecentUrlsItem;
    ItemStringList *mRecentEncodingsItem;
    ItemBool *mShowCryptoLabelIndicatorItem;
    ItemBool *mCheckSendDefaultActionShortcutItem;
    ItemFont *mComposerFontItem;
    ItemSize *mComposerSizeItem;
    ItemSize *mIdentityDialogSizeItem;
    ItemInt *mSearchWidgetWidthItem;
    ItemInt *mSearchWidgetHeightItem;
    ItemInt *mConfigureDialogWidthItem;
    ItemInt *mConfigureDialogHeightItem;
    ItemInt *mFolderViewWidthItem;
    ItemInt *mFolderViewHeightItem;
    ItemInt *mFolderTreeHeightItem;
    ItemInt *mSearchAndHeaderHeightItem;
    ItemInt *mSearchAndHeaderWidthItem;
    ItemInt *mReaderWindowWidthItem;
    ItemInt *mReaderWindowHeightItem;
    ItemEnum *mReaderWindowModeItem;
    ItemEnum *mFolderListItem;
    ItemString *mTemplateNewMessageItem;
    ItemString *mTemplateReplyItem;
    ItemString *mTemplateReplyAllItem;
    ItemString *mTemplateForwardItem;
    ItemString *mQuoteStringItem;
    ItemLongLong *mLastSearchCollectionIdItem;
    ItemInt *mToolTipDisplayPolicyItem;
    ItemInt *mCollectionWidthItem;
    ItemInt *mSubjectWidthItem;
    ItemInt *mSenderWidthItem;
    ItemInt *mReceiverWidthItem;
    ItemInt *mDateWidthItem;
    ItemInt *mFolderWidthItem;
    ItemBool *mEnabledUndoSendItem;
    ItemInt *mUndoSendDelayItem;
    ItemBool *mEnabledActivitiesItem;
};

#endif

