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

#include <kgpginterface.h>

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

#include <QFontDatabase>
#include <kgpg.h>

class KGpgSettings : public KConfigSkeleton
{
  public:
    class EnumPhotoProperties
    {
      public:
      enum type { Disable, Small, Medium, Big, COUNT };
    };
    class EnumTrustLevel
    {
      public:
      enum type { Unknown, Undefined, Marginal, Full, Ultimate, COUNT };
    };
    class EnumLeftClick
    {
      public:
      enum type { KeyManager, Editor, COUNT };
    };
    class EnumEncryptedDropEvent
    {
      public:
      enum type { DecryptAndSave, DecryptAndOpen, Ask, COUNT };
    };
    class EnumUnencryptedDropEvent
    {
      public:
      enum type { Encrypt, Sign, Ask, COUNT };
    };
    class EnumSignMenu
    {
      public:
      enum type { Disabled, AllFiles, COUNT };
    };
    class EnumDecryptMenu
    {
      public:
      enum type { Disabled, AllFiles, EncryptedFiles, COUNT };
    };
    class EnumEmailSorting
    {
      public:
      enum type { Alphabetical, TLDfirst, DomainFirst, FQDNFirst, COUNT };
    };
    class EnumMailUats
    {
      public:
      enum type { All, First, None, COUNT };
    };

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

    /**
      Set Custom decryption command.
    */
    static
    void setCustomDecrypt( const QString & v )
    {
      if (!self()->isCustomDecryptImmutable())
        self()->mCustomDecrypt = v;
    }

    /**
      Get Custom decryption command.
    */
    static
    QString customDecrypt()
    {
      return self()->mCustomDecrypt;
    }

    /**
      Is Custom decryption command. Immutable
    */
    static
    bool isCustomDecryptImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomDecrypt" ) );
    }

    /**
      Set Custom encryption options
    */
    static
    void setCustomEncryptionOptions( const QString & v )
    {
      if (!self()->isCustomEncryptionOptionsImmutable())
        self()->mCustomEncryptionOptions = v;
    }

    /**
      Get Custom encryption options
    */
    static
    QString customEncryptionOptions()
    {
      return self()->mCustomEncryptionOptions;
    }

    /**
      Is Custom encryption options Immutable
    */
    static
    bool isCustomEncryptionOptionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomEncryptionOptions" ) );
    }

    /**
      Set Allow custom encryption options
    */
    static
    void setAllowCustomEncryptionOptions( bool v )
    {
      if (!self()->isAllowCustomEncryptionOptionsImmutable())
        self()->mAllowCustomEncryptionOptions = v;
    }

    /**
      Get Allow custom encryption options
    */
    static
    bool allowCustomEncryptionOptions()
    {
      return self()->mAllowCustomEncryptionOptions;
    }

    /**
      Is Allow custom encryption options Immutable
    */
    static
    bool isAllowCustomEncryptionOptionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AllowCustomEncryptionOptions" ) );
    }

    /**
      Set File encryption key.
    */
    static
    void setFileEncryptionKey( const QString & v )
    {
      if (!self()->isFileEncryptionKeyImmutable())
        self()->mFileEncryptionKey = v;
    }

    /**
      Get File encryption key.
    */
    static
    QString fileEncryptionKey()
    {
      return self()->mFileEncryptionKey;
    }

    /**
      Is File encryption key. Immutable
    */
    static
    bool isFileEncryptionKeyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FileEncryptionKey" ) );
    }

    /**
      Set Encrypt files
    */
    static
    void setEncryptFilesTo( bool v )
    {
      if (!self()->isEncryptFilesToImmutable())
        self()->mEncryptFilesTo = v;
    }

    /**
      Get Encrypt files
    */
    static
    bool encryptFilesTo()
    {
      return self()->mEncryptFilesTo;
    }

    /**
      Is Encrypt files Immutable
    */
    static
    bool isEncryptFilesToImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EncryptFilesTo" ) );
    }

    /**
      Set Use ASCII armored encryption.
    */
    static
    void setAsciiArmor( bool v )
    {
      if (!self()->isAsciiArmorImmutable())
        self()->mAsciiArmor = v;
    }

    /**
      Get Use ASCII armored encryption.
    */
    static
    bool asciiArmor()
    {
      return self()->mAsciiArmor;
    }

    /**
      Is Use ASCII armored encryption. Immutable
    */
    static
    bool isAsciiArmorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AsciiArmor" ) );
    }

    /**
      Set Allow encryption with untrusted keys.
    */
    static
    void setAllowUntrustedKeys( bool v )
    {
      if (!self()->isAllowUntrustedKeysImmutable())
        self()->mAllowUntrustedKeys = v;
    }

    /**
      Get Allow encryption with untrusted keys.
    */
    static
    bool allowUntrustedKeys()
    {
      return self()->mAllowUntrustedKeys;
    }

    /**
      Is Allow encryption with untrusted keys. Immutable
    */
    static
    bool isAllowUntrustedKeysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AllowUntrustedKeys" ) );
    }

    /**
      Set Allow untrusted keys to become members of key groups.
    */
    static
    void setAllowUntrustedGroupMembers( bool v )
    {
      if (!self()->isAllowUntrustedGroupMembersImmutable())
        self()->mAllowUntrustedGroupMembers = v;
    }

    /**
      Get Allow untrusted keys to become members of key groups.
    */
    static
    bool allowUntrustedGroupMembers()
    {
      return self()->mAllowUntrustedGroupMembers;
    }

    /**
      Is Allow untrusted keys to become members of key groups. Immutable
    */
    static
    bool isAllowUntrustedGroupMembersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AllowUntrustedGroupMembers" ) );
    }

    /**
      Set Hide the user ID.
    */
    static
    void setHideUserID( bool v )
    {
      if (!self()->isHideUserIDImmutable())
        self()->mHideUserID = v;
    }

    /**
      Get Hide the user ID.
    */
    static
    bool hideUserID()
    {
      return self()->mHideUserID;
    }

    /**
      Is Hide the user ID. Immutable
    */
    static
    bool isHideUserIDImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideUserID" ) );
    }

    /**
      Set Enable PGP 6 compatibility.
    */
    static
    void setPgpCompatibility( bool v )
    {
      if (!self()->isPgpCompatibilityImmutable())
        self()->mPgpCompatibility = v;
    }

    /**
      Get Enable PGP 6 compatibility.
    */
    static
    bool pgpCompatibility()
    {
      return self()->mPgpCompatibility;
    }

    /**
      Is Enable PGP 6 compatibility. Immutable
    */
    static
    bool isPgpCompatibilityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PgpCompatibility" ) );
    }

    /**
      Set Use *.pgp extension for encrypted files.
    */
    static
    void setPgpExtension( bool v )
    {
      if (!self()->isPgpExtensionImmutable())
        self()->mPgpExtension = v;
    }

    /**
      Get Use *.pgp extension for encrypted files.
    */
    static
    bool pgpExtension()
    {
      return self()->mPgpExtension;
    }

    /**
      Is Use *.pgp extension for encrypted files. Immutable
    */
    static
    bool isPgpExtensionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PgpExtension" ) );
    }

    /**
      Set The path of the gpg configuration file.
    */
    static
    void setGpgConfigPath( const QString & v )
    {
      if (!self()->isGpgConfigPathImmutable())
        self()->mGpgConfigPath = v;
    }

    /**
      Get The path of the gpg configuration file.
    */
    static
    QString gpgConfigPath()
    {
      return self()->mGpgConfigPath;
    }

    /**
      Is The path of the gpg configuration file. Immutable
    */
    static
    bool isGpgConfigPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GpgConfigPath" ) );
    }

    /**
      Set The path of the gpg binary used by KGpg.
    */
    static
    void setGpgBinaryPath( const QString & v )
    {
      if (!self()->isGpgBinaryPathImmutable())
        self()->mGpgBinaryPath = v;
    }

    /**
      Get The path of the gpg binary used by KGpg.
    */
    static
    QString gpgBinaryPath()
    {
      return self()->mGpgBinaryPath;
    }

    /**
      Is The path of the gpg binary used by KGpg. Immutable
    */
    static
    bool isGpgBinaryPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GpgBinaryPath" ) );
    }

    /**
      Set photo properties
    */
    static
    void setPhotoProperties( int v )
    {
      if (!self()->isPhotoPropertiesImmutable())
        self()->mPhotoProperties = v;
    }

    /**
      Get photo properties
    */
    static
    int photoProperties()
    {
      return self()->mPhotoProperties;
    }

    /**
      Is photo properties Immutable
    */
    static
    bool isPhotoPropertiesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PhotoProperties" ) );
    }

    /**
      Set Is the first time the application runs.
    */
    static
    void setFirstRun( bool v )
    {
      if (!self()->isFirstRunImmutable())
        self()->mFirstRun = v;
    }

    /**
      Get Is the first time the application runs.
    */
    static
    bool firstRun()
    {
      return self()->mFirstRun;
    }

    /**
      Is Is the first time the application runs. Immutable
    */
    static
    bool isFirstRunImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FirstRun" ) );
    }

    /**
      Set The size of the editor window.
    */
    static
    void setEditorGeometry( const QSize & v )
    {
      if (!self()->isEditorGeometryImmutable())
        self()->mEditorGeometry = v;
    }

    /**
      Get The size of the editor window.
    */
    static
    QSize editorGeometry()
    {
      return self()->mEditorGeometry;
    }

    /**
      Is The size of the editor window. Immutable
    */
    static
    bool isEditorGeometryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EditorGeometry" ) );
    }

    /**
      Set Show the trust value in key manager.
    */
    static
    void setShowTrust( bool v )
    {
      if (!self()->isShowTrustImmutable())
        self()->mShowTrust = v;
    }

    /**
      Get Show the trust value in key manager.
    */
    static
    bool showTrust()
    {
      return self()->mShowTrust;
    }

    /**
      Is Show the trust value in key manager. Immutable
    */
    static
    bool isShowTrustImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowTrust" ) );
    }

    /**
      Set Show the expiration value in key manager.
    */
    static
    void setShowExpi( bool v )
    {
      if (!self()->isShowExpiImmutable())
        self()->mShowExpi = v;
    }

    /**
      Get Show the expiration value in key manager.
    */
    static
    bool showExpi()
    {
      return self()->mShowExpi;
    }

    /**
      Is Show the expiration value in key manager. Immutable
    */
    static
    bool isShowExpiImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowExpi" ) );
    }

    /**
      Set Show the size value in key manager.
    */
    static
    void setShowSize( bool v )
    {
      if (!self()->isShowSizeImmutable())
        self()->mShowSize = v;
    }

    /**
      Get Show the size value in key manager.
    */
    static
    bool showSize()
    {
      return self()->mShowSize;
    }

    /**
      Is Show the size value in key manager. Immutable
    */
    static
    bool isShowSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSize" ) );
    }

    /**
      Set Show the creation value in key manager.
    */
    static
    void setShowCreat( bool v )
    {
      if (!self()->isShowCreatImmutable())
        self()->mShowCreat = v;
    }

    /**
      Get Show the creation value in key manager.
    */
    static
    bool showCreat()
    {
      return self()->mShowCreat;
    }

    /**
      Is Show the creation value in key manager. Immutable
    */
    static
    bool isShowCreatImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowCreat" ) );
    }

    /**
      Set Show only secret keys in key manager.
    */
    static
    void setShowSecret( bool v )
    {
      if (!self()->isShowSecretImmutable())
        self()->mShowSecret = v;
    }

    /**
      Get Show only secret keys in key manager.
    */
    static
    bool showSecret()
    {
      return self()->mShowSecret;
    }

    /**
      Is Show only secret keys in key manager. Immutable
    */
    static
    bool isShowSecretImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSecret" ) );
    }

    /**
      Set Show long key id in key manager.
    */
    static
    void setShowLongKeyId( bool v )
    {
      if (!self()->isShowLongKeyIdImmutable())
        self()->mShowLongKeyId = v;
    }

    /**
      Get Show long key id in key manager.
    */
    static
    bool showLongKeyId()
    {
      return self()->mShowLongKeyId;
    }

    /**
      Is Show long key id in key manager. Immutable
    */
    static
    bool isShowLongKeyIdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowLongKeyId" ) );
    }

    /**
      Set Show only keys with at least that trust level in key manager.
    */
    static
    void setTrustLevel( int v )
    {
      if (!self()->isTrustLevelImmutable())
        self()->mTrustLevel = v;
    }

    /**
      Get Show only keys with at least that trust level in key manager.
    */
    static
    int trustLevel()
    {
      return self()->mTrustLevel;
    }

    /**
      Is Show only keys with at least that trust level in key manager. Immutable
    */
    static
    bool isTrustLevelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TrustLevel" ) );
    }

    /**
      Set Use the mouse selection instead of the clipboard.
    */
    static
    void setUseMouseSelection( bool v )
    {
      if (!self()->isUseMouseSelectionImmutable())
        self()->mUseMouseSelection = v;
    }

    /**
      Get Use the mouse selection instead of the clipboard.
    */
    static
    bool useMouseSelection()
    {
      return self()->mUseMouseSelection;
    }

    /**
      Is Use the mouse selection instead of the clipboard. Immutable
    */
    static
    bool isUseMouseSelectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseMouseSelection" ) );
    }

    /**
      Set Start KGpg automatically at KDE startup.
    */
    static
    void setAutoStart( bool v )
    {
      if (!self()->isAutoStartImmutable())
        self()->mAutoStart = v;
    }

    /**
      Get Start KGpg automatically at KDE startup.
    */
    static
    bool autoStart()
    {
      return self()->mAutoStart;
    }

    /**
      Is Start KGpg automatically at KDE startup. Immutable
    */
    static
    bool isAutoStartImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoStart" ) );
    }

    /**
      Set Display a warning before creating temporary files during remote file operations.
    */
    static
    void setRemoteFileWarn( bool v )
    {
      if (!self()->isRemoteFileWarnImmutable())
        self()->mRemoteFileWarn = v;
    }

    /**
      Get Display a warning before creating temporary files during remote file operations.
    */
    static
    bool remoteFileWarn()
    {
      return self()->mRemoteFileWarn;
    }

    /**
      Is Display a warning before creating temporary files during remote file operations. Immutable
    */
    static
    bool isRemoteFileWarnImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RemoteFileWarn" ) );
    }

    /**
      Set Choose default left-click behavior
    */
    static
    void setLeftClick( int v )
    {
      if (!self()->isLeftClickImmutable())
        self()->mLeftClick = v;
    }

    /**
      Get Choose default left-click behavior
    */
    static
    int leftClick()
    {
      return self()->mLeftClick;
    }

    /**
      Is Choose default left-click behavior Immutable
    */
    static
    bool isLeftClickImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LeftClick" ) );
    }

    /**
      Set Handle encrypted drops
    */
    static
    void setEncryptedDropEvent( int v )
    {
      if (!self()->isEncryptedDropEventImmutable())
        self()->mEncryptedDropEvent = v;
    }

    /**
      Get Handle encrypted drops
    */
    static
    int encryptedDropEvent()
    {
      return self()->mEncryptedDropEvent;
    }

    /**
      Is Handle encrypted drops Immutable
    */
    static
    bool isEncryptedDropEventImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EncryptedDropEvent" ) );
    }

    /**
      Set Handle unencrypted drops
    */
    static
    void setUnencryptedDropEvent( int v )
    {
      if (!self()->isUnencryptedDropEventImmutable())
        self()->mUnencryptedDropEvent = v;
    }

    /**
      Get Handle unencrypted drops
    */
    static
    int unencryptedDropEvent()
    {
      return self()->mUnencryptedDropEvent;
    }

    /**
      Is Handle unencrypted drops Immutable
    */
    static
    bool isUnencryptedDropEventImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UnencryptedDropEvent" ) );
    }

    /**
      Set Show the "sign file" service menu.
    */
    static
    void setSignMenu( int v )
    {
      if (!self()->isSignMenuImmutable())
        self()->mSignMenu = v;
    }

    /**
      Get Show the "sign file" service menu.
    */
    static
    int signMenu()
    {
      return self()->mSignMenu;
    }

    /**
      Is Show the "sign file" service menu. Immutable
    */
    static
    bool isSignMenuImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SignMenu" ) );
    }

    /**
      Set Show the "decrypt file" service menu.
    */
    static
    void setDecryptMenu( int v )
    {
      if (!self()->isDecryptMenuImmutable())
        self()->mDecryptMenu = v;
    }

    /**
      Get Show the "decrypt file" service menu.
    */
    static
    int decryptMenu()
    {
      return self()->mDecryptMenu;
    }

    /**
      Is Show the "decrypt file" service menu. Immutable
    */
    static
    bool isDecryptMenuImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DecryptMenu" ) );
    }

    /**
      Set Show the systray icon
    */
    static
    void setShowSystray( bool v )
    {
      if (!self()->isShowSystrayImmutable())
        self()->mShowSystray = v;
    }

    /**
      Get Show the systray icon
    */
    static
    bool showSystray()
    {
      return self()->mShowSystray;
    }

    /**
      Is Show the systray icon Immutable
    */
    static
    bool isShowSystrayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSystray" ) );
    }

    /**
      Set The number of recently opened files shown in the editor menu.
    */
    static
    void setRecentFiles( uint v )
    {
      if (!self()->isRecentFilesImmutable())
        self()->mRecentFiles = v;
    }

    /**
      Get The number of recently opened files shown in the editor menu.
    */
    static
    uint recentFiles()
    {
      return self()->mRecentFiles;
    }

    /**
      Is The number of recently opened files shown in the editor menu. Immutable
    */
    static
    bool isRecentFilesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RecentFiles" ) );
    }

    /**
      Set Color used for trusted keys.
    */
    static
    void setColorGood( const QColor & v )
    {
      if (!self()->isColorGoodImmutable())
        self()->mColorGood = v;
    }

    /**
      Get Color used for trusted keys.
    */
    static
    QColor colorGood()
    {
      return self()->mColorGood;
    }

    /**
      Is Color used for trusted keys. Immutable
    */
    static
    bool isColorGoodImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ColorGood" ) );
    }

    /**
      Set Color used for revoked keys.
    */
    static
    void setColorRev( const QColor & v )
    {
      if (!self()->isColorRevImmutable())
        self()->mColorRev = v;
    }

    /**
      Get Color used for revoked keys.
    */
    static
    QColor colorRev()
    {
      return self()->mColorRev;
    }

    /**
      Is Color used for revoked keys. Immutable
    */
    static
    bool isColorRevImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ColorRev" ) );
    }

    /**
      Set Color used for unknown keys.
    */
    static
    void setColorUnknown( const QColor & v )
    {
      if (!self()->isColorUnknownImmutable())
        self()->mColorUnknown = v;
    }

    /**
      Get Color used for unknown keys.
    */
    static
    QColor colorUnknown()
    {
      return self()->mColorUnknown;
    }

    /**
      Is Color used for unknown keys. Immutable
    */
    static
    bool isColorUnknownImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ColorUnknown" ) );
    }

    /**
      Set Color used for untrusted keys.
    */
    static
    void setColorBad( const QColor & v )
    {
      if (!self()->isColorBadImmutable())
        self()->mColorBad = v;
    }

    /**
      Get Color used for untrusted keys.
    */
    static
    QColor colorBad()
    {
      return self()->mColorBad;
    }

    /**
      Is Color used for untrusted keys. Immutable
    */
    static
    bool isColorBadImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ColorBad" ) );
    }

    /**
      Set Color used for ultimately trusted keys.
    */
    static
    void setColorUltimate( const QColor & v )
    {
      if (!self()->isColorUltimateImmutable())
        self()->mColorUltimate = v;
    }

    /**
      Get Color used for ultimately trusted keys.
    */
    static
    QColor colorUltimate()
    {
      return self()->mColorUltimate;
    }

    /**
      Is Color used for ultimately trusted keys. Immutable
    */
    static
    bool isColorUltimateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ColorUltimate" ) );
    }

    /**
      Set Color used for marginally trusted keys.
    */
    static
    void setColorMarginal( const QColor & v )
    {
      if (!self()->isColorMarginalImmutable())
        self()->mColorMarginal = v;
    }

    /**
      Get Color used for marginally trusted keys.
    */
    static
    QColor colorMarginal()
    {
      return self()->mColorMarginal;
    }

    /**
      Is Color used for marginally trusted keys. Immutable
    */
    static
    bool isColorMarginalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ColorMarginal" ) );
    }

    /**
      Set Color used for expired keys.
    */
    static
    void setColorExpired( const QColor & v )
    {
      if (!self()->isColorExpiredImmutable())
        self()->mColorExpired = v;
    }

    /**
      Get Color used for expired keys.
    */
    static
    QColor colorExpired()
    {
      return self()->mColorExpired;
    }

    /**
      Is Color used for expired keys. Immutable
    */
    static
    bool isColorExpiredImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ColorExpired" ) );
    }

    /**
      Set Font
    */
    static
    void setFont( const QFont & v )
    {
      if (!self()->isFontImmutable())
        self()->mFont = v;
    }

    /**
      Get Font
    */
    static
    QFont font()
    {
      return self()->mFont;
    }

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

    /**
      Set EmailSorting
    */
    static
    void setEmailSorting( int v )
    {
      if (!self()->isEmailSortingImmutable())
        self()->mEmailSorting = v;
    }

    /**
      Get EmailSorting
    */
    static
    int emailSorting()
    {
      return self()->mEmailSorting;
    }

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

    /**
      Set Key servers used by KGpg. The first server in the list is the default server.
    */
    static
    void setKeyServers( const QStringList & v )
    {
      if (!self()->isKeyServersImmutable())
        self()->mKeyServers = v;
    }

    /**
      Get Key servers used by KGpg. The first server in the list is the default server.
    */
    static
    QStringList keyServers()
    {
      return self()->mKeyServers;
    }

    /**
      Is Key servers used by KGpg. The first server in the list is the default server. Immutable
    */
    static
    bool isKeyServersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KeyServers" ) );
    }

    /**
      Set List of URLs that show details and analysis of the given key. The first server in the list is the default server.
    */
    static
    void setInfoServers( const QStringList & v )
    {
      if (!self()->isInfoServersImmutable())
        self()->mInfoServers = v;
    }

    /**
      Get List of URLs that show details and analysis of the given key. The first server in the list is the default server.
    */
    static
    QStringList infoServers()
    {
      return self()->mInfoServers;
    }

    /**
      Is List of URLs that show details and analysis of the given key. The first server in the list is the default server. Immutable
    */
    static
    bool isInfoServersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "InfoServers" ) );
    }

    /**
      Set Use HTTP proxy when available.
    */
    static
    void setUseProxy( bool v )
    {
      if (!self()->isUseProxyImmutable())
        self()->mUseProxy = v;
    }

    /**
      Get Use HTTP proxy when available.
    */
    static
    bool useProxy()
    {
      return self()->mUseProxy;
    }

    /**
      Is Use HTTP proxy when available. Immutable
    */
    static
    bool isUseProxyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseProxy" ) );
    }

    /**
      Set This is the text of the email sent by the "Sign and Mail User ID" action.
    */
    static
    void setEmailTemplate( const QString & v )
    {
      if (!self()->isEmailTemplateImmutable())
        self()->mEmailTemplate = v;
    }

    /**
      Get This is the text of the email sent by the "Sign and Mail User ID" action.
    */
    static
    QString emailTemplate()
    {
      return self()->mEmailTemplate;
    }

    /**
      Is This is the text of the email sent by the "Sign and Mail User ID" action. Immutable
    */
    static
    bool isEmailTemplateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EmailTemplate" ) );
    }

    /**
      Set Mail_Uats
    */
    static
    void setMailUats( int v )
    {
      if (!self()->isMailUatsImmutable())
        self()->mMailUats = v;
    }

    /**
      Get Mail_Uats
    */
    static
    int mailUats()
    {
      return self()->mMailUats;
    }

    /**
      Is Mail_Uats Immutable
    */
    static
    bool isMailUatsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MailUats" ) );
    }

  protected:
    KGpgSettings();
    friend class KGpgSettingsHelper;


    // Decryption
    QString mCustomDecrypt;

    // Encryption
    QString mCustomEncryptionOptions;
    bool mAllowCustomEncryptionOptions;
    QString mFileEncryptionKey;
    bool mEncryptFilesTo;
    bool mAsciiArmor;
    bool mAllowUntrustedKeys;
    bool mAllowUntrustedGroupMembers;
    bool mHideUserID;
    bool mPgpCompatibility;
    bool mPgpExtension;

    // GPG Settings
    QString mGpgConfigPath;
    QString mGpgBinaryPath;

    // General Options
    int mPhotoProperties;
    bool mFirstRun;
    QSize mEditorGeometry;
    bool mShowTrust;
    bool mShowExpi;
    bool mShowSize;
    bool mShowCreat;
    bool mShowSecret;
    bool mShowLongKeyId;
    int mTrustLevel;

    // User Interface
    bool mUseMouseSelection;
    bool mAutoStart;
    bool mRemoteFileWarn;
    int mLeftClick;
    int mEncryptedDropEvent;
    int mUnencryptedDropEvent;
    int mSignMenu;
    int mDecryptMenu;
    bool mShowSystray;
    uint mRecentFiles;

    // Key Colors
    QColor mColorGood;
    QColor mColorRev;
    QColor mColorUnknown;
    QColor mColorBad;
    QColor mColorUltimate;
    QColor mColorMarginal;
    QColor mColorExpired;

    // Text Font
    QFont mFont;

    // Key List
    int mEmailSorting;

    // Servers
    QStringList mKeyServers;
    QStringList mInfoServers;

    // Key Servers
    bool mUseProxy;

    // Key Signing
    QString mEmailTemplate;
    int mMailUats;
    // Include custom additions
    #include "kgpgsettings_addons.h"
};

#endif

