// This file is generated by kconfig_compiler from kmymoney.kcfg.
// All changes you do to this file will be lost.
#ifndef KMYMONEYSETTINGS_H
#define KMYMONEYSETTINGS_H

#include <kconfigskeleton.h>
#include <kdebug.h>

class KMyMoneySettings : public KConfigSkeleton
{
  public:

    static KMyMoneySettings *self();
    ~KMyMoneySettings();

    /**
      Set Always show a No. field in transaction form
    */
    static
    void setAlwaysShowNrField( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "AlwaysShowNrField" ) ))
        self()->mAlwaysShowNrField = v;
    }

    /**
      Get Always show a No. field in transaction form
    */
    static
    bool alwaysShowNrField()
    {
      return self()->mAlwaysShowNrField;
    }

    /**
      Set Auto fill with previous transaction data
    */
    static
    void setAutoFillTransaction( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "AutoFillTransaction" ) ))
        self()->mAutoFillTransaction = v;
    }

    /**
      Get Auto fill with previous transaction data
    */
    static
    int autoFillTransaction()
    {
      return self()->mAutoFillTransaction;
    }

    /**
      Set Treat two transactions as identical, if amount differs by less than
    */
    static
    void setAutoFillDifference( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "AutoFillDifference" ) ))
        self()->mAutoFillDifference = v;
    }

    /**
      Get Treat two transactions as identical, if amount differs by less than
    */
    static
    int autoFillDifference()
    {
      return self()->mAutoFillDifference;
    }

    /**
      Set When auto fill with previous transaction data use the memos
    */
    static
    void setAutoFillUseMemos( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "AutoFillUseMemos" ) ))
        self()->mAutoFillUseMemos = v;
    }

    /**
      Get When auto fill with previous transaction data use the memos
    */
    static
    bool autoFillUseMemos()
    {
      return self()->mAutoFillUseMemos;
    }

    /**
      Set Auto increment check number
    */
    static
    void setAutoIncCheckNumber( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "AutoIncCheckNumber" ) ))
        self()->mAutoIncCheckNumber = v;
    }

    /**
      Get Auto increment check number
    */
    static
    bool autoIncCheckNumber()
    {
      return self()->mAutoIncCheckNumber;
    }

    /**
      Set Autosave file periodically
    */
    static
    void setAutoSaveFile( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "AutoSaveFile" ) ))
        self()->mAutoSaveFile = v;
    }

    /**
      Get Autosave file periodically
    */
    static
    bool autoSaveFile()
    {
      return self()->mAutoSaveFile;
    }

    /**
      Set Automatically find which transactions match the given reconciliation data
    */
    static
    void setAutoReconciliation( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "AutoReconciliation" ) ))
        self()->mAutoReconciliation = v;
    }

    /**
      Get Automatically find which transactions match the given reconciliation data
    */
    static
    bool autoReconciliation()
    {
      return self()->mAutoReconciliation;
    }

    /**
      Set Number of backup files to keep
    */
    static
    void setAutoBackupCopies( int v )
    {
      if (v < 0)
      {
        kDebug() << "setAutoBackupCopies: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 20)
      {
        kDebug() << "setAutoBackupCopies: value " << v << " is greater than the maximum value of 20";
        v = 20;
      }

      if (!self()->isImmutable( QString::fromLatin1( "AutoBackupCopies" ) ))
        self()->mAutoBackupCopies = v;
    }

    /**
      Get Number of backup files to keep
    */
    static
    int autoBackupCopies()
    {
      return self()->mAutoBackupCopies;
    }

    /**
      Set Autosave interval in minutes
    */
    static
    void setAutoSavePeriod( int v )
    {
      if (v < 0)
      {
        kDebug() << "setAutoSavePeriod: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 60)
      {
        kDebug() << "setAutoSavePeriod: value " << v << " is greater than the maximum value of 60";
        v = 60;
      }

      if (!self()->isImmutable( QString::fromLatin1( "AutoSavePeriod" ) ))
        self()->mAutoSavePeriod = v;
    }

    /**
      Get Autosave interval in minutes
    */
    static
    int autoSavePeriod()
    {
      return self()->mAutoSavePeriod;
    }

    /**
      Set Autosave file upon close
    */
    static
    void setAutoSaveOnClose( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "AutoSaveOnClose" ) ))
        self()->mAutoSaveOnClose = v;
    }

    /**
      Get Autosave file upon close
    */
    static
    bool autoSaveOnClose()
    {
      return self()->mAutoSaveOnClose;
    }

    /**
      Set Check schedules upon startup
    */
    static
    void setCheckSchedule( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "CheckSchedule" ) ))
        self()->mCheckSchedule = v;
    }

    /**
      Get Check schedules upon startup
    */
    static
    bool checkSchedule()
    {
      return self()->mCheckSchedule;
    }

    /**
      Set Enter transactions this number of days in advance
    */
    static
    void setCheckSchedulePreview( int v )
    {
      if (v < 0)
      {
        kDebug() << "setCheckSchedulePreview: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 999)
      {
        kDebug() << "setCheckSchedulePreview: value " << v << " is greater than the maximum value of 999";
        v = 999;
      }

      if (!self()->isImmutable( QString::fromLatin1( "CheckSchedulePreview" ) ))
        self()->mCheckSchedulePreview = v;
    }

    /**
      Get Enter transactions this number of days in advance
    */
    static
    int checkSchedulePreview()
    {
      return self()->mCheckSchedulePreview;
    }

    /**
      Set Name of external calculator program
    */
    static
    void setExternalCalculator( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ExternalCalculator" ) ))
        self()->mExternalCalculator = v;
    }

    /**
      Get Name of external calculator program
    */
    static
    QString externalCalculator()
    {
      return self()->mExternalCalculator;
    }

    /**
      Set Name of region used for non-processing days
    */
    static
    void setHolidayRegion( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "HolidayRegion" ) ))
        self()->mHolidayRegion = v;
    }

    /**
      Get Name of region used for non-processing days
    */
    static
    QString holidayRegion()
    {
      return self()->mHolidayRegion;
    }

    /**
      Set Number of days to preview schedules in ledger
    */
    static
    void setSchedulePreview( int v )
    {
      if (v < 0)
      {
        kDebug() << "setSchedulePreview: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 999)
      {
        kDebug() << "setSchedulePreview: value " << v << " is greater than the maximum value of 999";
        v = 999;
      }

      if (!self()->isImmutable( QString::fromLatin1( "SchedulePreview" ) ))
        self()->mSchedulePreview = v;
    }

    /**
      Get Number of days to preview schedules in ledger
    */
    static
    int schedulePreview()
    {
      return self()->mSchedulePreview;
    }

    /**
      Set Insert transaction type into No. field for new transactions
    */
    static
    void setCopyTypeToNr( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "CopyTypeToNr" ) ))
        self()->mCopyTypeToNr = v;
    }

    /**
      Get Insert transaction type into No. field for new transactions
    */
    static
    bool copyTypeToNr()
    {
      return self()->mCopyTypeToNr;
    }

    /**
      Set Keep changes when selecting a different transaction/split
    */
    static
    void setFocusChangeIsEnter( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FocusChangeIsEnter" ) ))
        self()->mFocusChangeIsEnter = v;
    }

    /**
      Get Keep changes when selecting a different transaction/split
    */
    static
    bool focusChangeIsEnter()
    {
      return self()->mFocusChangeIsEnter;
    }

    /**
      Set Using the Enter key moves between the fields
    */
    static
    void setEnterMovesBetweenFields( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "EnterMovesBetweenFields" ) ))
        self()->mEnterMovesBetweenFields = v;
    }

    /**
      Get Using the Enter key moves between the fields
    */
    static
    bool enterMovesBetweenFields()
    {
      return self()->mEnterMovesBetweenFields;
    }

    /**
      Set Use the ledger lens
    */
    static
    void setLedgerLens( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "LedgerLens" ) ))
        self()->mLedgerLens = v;
    }

    /**
      Get Use the ledger lens
    */
    static
    bool ledgerLens()
    {
      return self()->mLedgerLens;
    }

    /**
      Set Price Precision
    */
    static
    void setPricePrecision( int v )
    {
      if (v < 4)
      {
        kDebug() << "setPricePrecision: value " << v << " is less than the minimum value of 4";
        v = 4;
      }

      if (v > 10)
      {
        kDebug() << "setPricePrecision: value " << v << " is greater than the maximum value of 10";
        v = 10;
      }

      if (!self()->isImmutable( QString::fromLatin1( "PricePrecision" ) ))
        self()->mPricePrecision = v;
    }

    /**
      Get Price Precision
    */
    static
    int pricePrecision()
    {
      return self()->mPricePrecision;
    }

    /**
      Set Update price history
    */
    static
    void setPriceHistoryUpdate( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "PriceHistoryUpdate" ) ))
        self()->mPriceHistoryUpdate = v;
    }

    /**
      Get Update price history
    */
    static
    bool priceHistoryUpdate()
    {
      return self()->mPriceHistoryUpdate;
    }

    /**
      Set Show transaction form
    */
    static
    void setTransactionForm( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "TransactionForm" ) ))
        self()->mTransactionForm = v;
    }

    /**
      Get Show transaction form
    */
    static
    bool transactionForm()
    {
      return self()->mTransactionForm;
    }

    /**
      Set Start with last selected view or homepage
    */
    static
    void setStartLastViewSelected( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "StartLastViewSelected" ) ))
        self()->mStartLastViewSelected = v;
    }

    /**
      Get Start with last selected view or homepage
    */
    static
    int startLastViewSelected()
    {
      return self()->mStartLastViewSelected;
    }

    /**
      Set The last selected view
    */
    static
    void setLastViewSelected( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "LastViewSelected" ) ))
        self()->mLastViewSelected = v;
    }

    /**
      Get The last selected view
    */
    static
    int lastViewSelected()
    {
      return self()->mLastViewSelected;
    }

    /**
      Set Use GPG to encrypt data file
    */
    static
    void setWriteDataEncrypted( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "WriteDataEncrypted" ) ))
        self()->mWriteDataEncrypted = v;
    }

    /**
      Get Use GPG to encrypt data file
    */
    static
    bool writeDataEncrypted()
    {
      return self()->mWriteDataEncrypted;
    }

    /**
      Set Also encrypt against recover key
    */
    static
    void setEncryptRecover( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "EncryptRecover" ) ))
        self()->mEncryptRecover = v;
    }

    /**
      Get Also encrypt against recover key
    */
    static
    bool encryptRecover()
    {
      return self()->mEncryptRecover;
    }

    /**
      Set GPG User ID (deprecated)
    */
    static
    void setGpgRecipient( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "GpgRecipient" ) ))
        self()->mGpgRecipient = v;
    }

    /**
      Get GPG User ID (deprecated)
    */
    static
    QString gpgRecipient()
    {
      return self()->mGpgRecipient;
    }

    /**
      Set GPG User ID
    */
    static
    void setGpgRecipientList( const QStringList & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "GpgRecipientList" ) ))
        self()->mGpgRecipientList = v;
    }

    /**
      Get GPG User ID
    */
    static
    QStringList gpgRecipientList()
    {
      return self()->mGpgRecipientList;
    }

    /**
      Set Run in expert (accountant) mode
    */
    static
    void setExpertMode( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ExpertMode" ) ))
        self()->mExpertMode = v;
    }

    /**
      Get Run in expert (accountant) mode
    */
    static
    bool expertMode()
    {
      return self()->mExpertMode;
    }

    /**
      Set Show splash screen during startup
    */
    static
    void setShowSplash( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowSplash" ) ))
        self()->mShowSplash = v;
    }

    /**
      Get Show splash screen during startup
    */
    static
    bool showSplash()
    {
      return self()->mShowSplash;
    }

    /**
      Set Synchronize account in ledger and investment view
    */
    static
    void setSyncLedgerInvestment( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "syncLedgerInvestment" ) ))
        self()->mSyncLedgerInvestment = v;
    }

    /**
      Get Synchronize account in ledger and investment view
    */
    static
    bool syncLedgerInvestment()
    {
      return self()->mSyncLedgerInvestment;
    }

    /**
      Set The type of the KMyMoney view
    */
    static
    void setViewType( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "viewType" ) ))
        self()->mViewType = v;
    }

    /**
      Get The type of the KMyMoney view
    */
    static
    int viewType()
    {
      return self()->mViewType;
    }

    /**
      Set First time switch to start new user wizard
    */
    static
    void setFirstTimeRun( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "firstTimeRun" ) ))
        self()->mFirstTimeRun = v;
    }

    /**
      Get First time switch to start new user wizard
    */
    static
    bool firstTimeRun()
    {
      return self()->mFirstTimeRun;
    }

    /**
      Set Show title bar on each view
    */
    static
    void setShowTitleBar( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showTitleBar" ) ))
        self()->mShowTitleBar = v;
    }

    /**
      Get Show title bar on each view
    */
    static
    bool showTitleBar()
    {
      return self()->mShowTitleBar;
    }

    /**
      Set Match strings in auto-completion only from the first letter on. A substring behind the first letter is not found.
    */
    static
    void setStringMatchFromStart( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "stringMatchFromStart" ) ))
        self()->mStringMatchFromStart = v;
    }

    /**
      Get Match strings in auto-completion only from the first letter on. A substring behind the first letter is not found.
    */
    static
    bool stringMatchFromStart()
    {
      return self()->mStringMatchFromStart;
    }

    /**
      Set Tab order of edit widgets in transaction form
    */
    static
    void setStdTransactionFormTabOrder( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "stdTransactionFormTabOrder" ) ))
        self()->mStdTransactionFormTabOrder = v;
    }

    /**
      Get Tab order of edit widgets in transaction form
    */
    static
    QString stdTransactionFormTabOrder()
    {
      return self()->mStdTransactionFormTabOrder;
    }

    /**
      Set Tab order of edit widgets in register
    */
    static
    void setStdTransactionRegisterTabOrder( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "stdTransactionRegisterTabOrder" ) ))
        self()->mStdTransactionRegisterTabOrder = v;
    }

    /**
      Get Tab order of edit widgets in register
    */
    static
    QString stdTransactionRegisterTabOrder()
    {
      return self()->mStdTransactionRegisterTabOrder;
    }

    /**
      Set Order of items on homepage
    */
    static
    void setItemList( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ItemList" ) ))
        self()->mItemList = v;
    }

    /**
      Get Order of items on homepage
    */
    static
    QString itemList()
    {
      return self()->mItemList;
    }

    /**
      Set Percentage of default font size used for home view HTML page
    */
    static
    void setFontSizePercentage( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FontSizePercentage" ) ))
        self()->mFontSizePercentage = v;
    }

    /**
      Get Percentage of default font size used for home view HTML page
    */
    static
    int fontSizePercentage()
    {
      return self()->mFontSizePercentage;
    }

    /**
      Set Remember (manually adjusted) font size in home view on program end.
    */
    static
    void setRememberFontSize( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "RememberFontSize" ) ))
        self()->mRememberFontSize = v;
    }

    /**
      Get Remember (manually adjusted) font size in home view on program end.
    */
    static
    bool rememberFontSize()
    {
      return self()->mRememberFontSize;
    }

    /**
      Set Show account limit information on the Homepage
    */
    static
    void setShowLimitInfo( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowLimitInfo" ) ))
        self()->mShowLimitInfo = v;
    }

    /**
      Get Show account limit information on the Homepage
    */
    static
    bool showLimitInfo()
    {
      return self()->mShowLimitInfo;
    }

    /**
      Set Show balance-status of mapped online accounts on the Homepage
    */
    static
    void setShowBalanceStatusOfOnlineAccounts( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowBalanceStatusOfOnlineAccounts" ) ))
        self()->mShowBalanceStatusOfOnlineAccounts = v;
    }

    /**
      Get Show balance-status of mapped online accounts on the Homepage
    */
    static
    bool showBalanceStatusOfOnlineAccounts()
    {
      return self()->mShowBalanceStatusOfOnlineAccounts;
    }

    /**
      Set Show number of not marked transactions per account on the Homepage [!M]
    */
    static
    void setShowCountOfUnmarkedTransactions( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowCountOfUnmarkedTransactions" ) ))
        self()->mShowCountOfUnmarkedTransactions = v;
    }

    /**
      Get Show number of not marked transactions per account on the Homepage [!M]
    */
    static
    bool showCountOfUnmarkedTransactions()
    {
      return self()->mShowCountOfUnmarkedTransactions;
    }

    /**
      Set Show number of cleared transactions per account on the Homepage [C]
    */
    static
    void setShowCountOfClearedTransactions( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowCountOfClearedTransactions" ) ))
        self()->mShowCountOfClearedTransactions = v;
    }

    /**
      Get Show number of cleared transactions per account on the Homepage [C]
    */
    static
    bool showCountOfClearedTransactions()
    {
      return self()->mShowCountOfClearedTransactions;
    }

    /**
      Set Show number of not reconciled (not marked + cleared) transactions per account on the Homepage [!R]
    */
    static
    void setShowCountOfNotReconciledTransactions( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowCountOfNotReconciledTransactions" ) ))
        self()->mShowCountOfNotReconciledTransactions = v;
    }

    /**
      Get Show number of not reconciled (not marked + cleared) transactions per account on the Homepage [!R]
    */
    static
    bool showCountOfNotReconciledTransactions()
    {
      return self()->mShowCountOfNotReconciledTransactions;
    }

    /**
      Set Hide unused categories
    */
    static
    void setHideUnusedCategory( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "HideUnusedCategory" ) ))
        self()->mHideUnusedCategory = v;
    }

    /**
      Get Hide unused categories
    */
    static
    bool hideUnusedCategory()
    {
      return self()->mHideUnusedCategory;
    }

    /**
      Set Hide closed accounts
    */
    static
    void setHideClosedAccounts( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "HideClosedAccounts" ) ))
        self()->mHideClosedAccounts = v;
    }

    /**
      Get Hide closed accounts
    */
    static
    bool hideClosedAccounts()
    {
      return self()->mHideClosedAccounts;
    }

    /**
      Set Show categories in the accounts view
    */
    static
    void setShowCategoriesInAccountsView( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowCategoriesInAccountsView" ) ))
        self()->mShowCategoriesInAccountsView = v;
    }

    /**
      Get Show categories in the accounts view
    */
    static
    bool showCategoriesInAccountsView()
    {
      return self()->mShowCategoriesInAccountsView;
    }

    /**
      Set Hide finished schedules
    */
    static
    void setHideFinishedSchedules( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "HideFinishedSchedules" ) ))
        self()->mHideFinishedSchedules = v;
    }

    /**
      Get Hide finished schedules
    */
    static
    bool hideFinishedSchedules()
    {
      return self()->mHideFinishedSchedules;
    }

    /**
      Set Hide reconciled transactions
    */
    static
    void setHideReconciledTransactions( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "HideReconciledTransactions" ) ))
        self()->mHideReconciledTransactions = v;
    }

    /**
      Get Hide reconciled transactions
    */
    static
    bool hideReconciledTransactions()
    {
      return self()->mHideReconciledTransactions;
    }

    /**
      Set Show all register entries in full detail
    */
    static
    void setShowRegisterDetailed( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowRegisterDetailed" ) ))
        self()->mShowRegisterDetailed = v;
    }

    /**
      Get Show all register entries in full detail
    */
    static
    bool showRegisterDetailed()
    {
      return self()->mShowRegisterDetailed;
    }

    /**
      Set Show a grid in the register
    */
    static
    void setShowGrid( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowGrid" ) ))
        self()->mShowGrid = v;
    }

    /**
      Get Show a grid in the register
    */
    static
    bool showGrid()
    {
      return self()->mShowGrid;
    }

    /**
      Set Show fancy group markers
    */
    static
    void setShowFancyMarker( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowFancyMarker" ) ))
        self()->mShowFancyMarker = v;
    }

    /**
      Get Show fancy group markers
    */
    static
    bool showFancyMarker()
    {
      return self()->mShowFancyMarker;
    }

    /**
      Set Show fancy markers for previous and current fiscal year
    */
    static
    void setShowFiscalMarker( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "ShowFiscalMarker" ) ))
        self()->mShowFiscalMarker = v;
    }

    /**
      Get Show fancy markers for previous and current fiscal year
    */
    static
    bool showFiscalMarker()
    {
      return self()->mShowFiscalMarker;
    }

    /**
      Set Starting month of the fiscal year
    */
    static
    void setFiscalYearBegin( int v )
    {
      if (v < 0)
      {
        kDebug() << "setFiscalYearBegin: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 11)
      {
        kDebug() << "setFiscalYearBegin: value " << v << " is greater than the maximum value of 11";
        v = 11;
      }

      if (!self()->isImmutable( QString::fromLatin1( "FiscalYearBegin" ) ))
        self()->mFiscalYearBegin = v;
    }

    /**
      Get Starting month of the fiscal year
    */
    static
    int fiscalYearBegin()
    {
      return self()->mFiscalYearBegin;
    }

    /**
      Set Starting day of the fiscal year
    */
    static
    void setFiscalYearBeginDay( int v )
    {
      if (v < 1)
      {
        kDebug() << "setFiscalYearBeginDay: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 28)
      {
        kDebug() << "setFiscalYearBeginDay: value " << v << " is greater than the maximum value of 28";
        v = 28;
      }

      if (!self()->isImmutable( QString::fromLatin1( "FiscalYearBeginDay" ) ))
        self()->mFiscalYearBeginDay = v;
    }

    /**
      Get Starting day of the fiscal year
    */
    static
    int fiscalYearBeginDay()
    {
      return self()->mFiscalYearBeginDay;
    }

    /**
      Set Start date
    */
    static
    void setStartDate( const QDateTime & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "StartDate" ) ))
        self()->mStartDate = v;
    }

    /**
      Get Start date
    */
    static
    QDateTime startDate()
    {
      return self()->mStartDate;
    }

    /**
      Set Use system colors
    */
    static
    void setUseSystemColors( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "useSystemColors" ) ))
        self()->mUseSystemColors = v;
    }

    /**
      Get Use system colors
    */
    static
    bool useSystemColors()
    {
      return self()->mUseSystemColors;
    }

    /**
      Set List color
    */
    static
    void setListColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "listColor" ) ))
        self()->mListColor = v;
    }

    /**
      Get List color
    */
    static
    QColor listColor()
    {
      return self()->mListColor;
    }

    /**
      Set List background color
    */
    static
    void setListBGColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "listBGColor" ) ))
        self()->mListBGColor = v;
    }

    /**
      Get List background color
    */
    static
    QColor listBGColor()
    {
      return self()->mListBGColor;
    }

    /**
      Set List grid color
    */
    static
    void setListGridColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "listGridColor" ) ))
        self()->mListGridColor = v;
    }

    /**
      Get List grid color
    */
    static
    QColor listGridColor()
    {
      return self()->mListGridColor;
    }

    /**
      Set Background color for imported transactions
    */
    static
    void setImportedTransactionColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "importedTransactionColor" ) ))
        self()->mImportedTransactionColor = v;
    }

    /**
      Get Background color for imported transactions
    */
    static
    QColor importedTransactionColor()
    {
      return self()->mImportedTransactionColor;
    }

    /**
      Set Background color for matched transactions
    */
    static
    void setMatchedTransactionColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "matchedTransactionColor" ) ))
        self()->mMatchedTransactionColor = v;
    }

    /**
      Get Background color for matched transactions
    */
    static
    QColor matchedTransactionColor()
    {
      return self()->mMatchedTransactionColor;
    }

    /**
      Set List color for erroneous transactions
    */
    static
    void setListErroneousTransactionColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "listErroneousTransactionColor" ) ))
        self()->mListErroneousTransactionColor = v;
    }

    /**
      Get List color for erroneous transactions
    */
    static
    QColor listErroneousTransactionColor()
    {
      return self()->mListErroneousTransactionColor;
    }

    /**
      Set List color for missing conversion rate
    */
    static
    void setListMissingConversionRate( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "listMissingConversionRate" ) ))
        self()->mListMissingConversionRate = v;
    }

    /**
      Get List color for missing conversion rate
    */
    static
    QColor listMissingConversionRate()
    {
      return self()->mListMissingConversionRate;
    }

    /**
      Set List color for negative values
    */
    static
    void setListNegativeValueColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "listNegativeValueColor" ) ))
        self()->mListNegativeValueColor = v;
    }

    /**
      Get List color for negative values
    */
    static
    QColor listNegativeValueColor()
    {
      return self()->mListNegativeValueColor;
    }

    /**
      Set Background color for group marker
    */
    static
    void setGroupMarkerColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "groupMarkerColor" ) ))
        self()->mGroupMarkerColor = v;
    }

    /**
      Get Background color for group marker
    */
    static
    QColor groupMarkerColor()
    {
      return self()->mGroupMarkerColor;
    }

    /**
      Set Background color for required fields
    */
    static
    void setRequiredFieldColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "requiredFieldColor" ) ))
        self()->mRequiredFieldColor = v;
    }

    /**
      Get Background color for required fields
    */
    static
    QColor requiredFieldColor()
    {
      return self()->mRequiredFieldColor;
    }

    /**
      Set Use system font
    */
    static
    void setUseSystemFont( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "useSystemFont" ) ))
        self()->mUseSystemFont = v;
    }

    /**
      Get Use system font
    */
    static
    bool useSystemFont()
    {
      return self()->mUseSystemFont;
    }

    /**
      Set Cell font
    */
    static
    void setListCellFont( const QFont & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "listCellFont" ) ))
        self()->mListCellFont = v;
    }

    /**
      Get Cell font
    */
    static
    QFont listCellFont()
    {
      return self()->mListCellFont;
    }

    /**
      Set Header font
    */
    static
    void setListHeaderFont( const QFont & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "listHeaderFont" ) ))
        self()->mListHeaderFont = v;
    }

    /**
      Get Header font
    */
    static
    QFont listHeaderFont()
    {
      return self()->mListHeaderFont;
    }

    /**
      Set Sort order of register in normal view
    */
    static
    void setSortNormalView( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "sortNormalView" ) ))
        self()->mSortNormalView = v;
    }

    /**
      Get Sort order of register in normal view
    */
    static
    QString sortNormalView()
    {
      return self()->mSortNormalView;
    }

    /**
      Set Sort order of register in normal view
    */
    static
    void setSortReconcileView( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "sortReconcileView" ) ))
        self()->mSortReconcileView = v;
    }

    /**
      Get Sort order of register in normal view
    */
    static
    QString sortReconcileView()
    {
      return self()->mSortReconcileView;
    }

    /**
      Set Sort order of register in search dialog
    */
    static
    void setSortSearchView( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "sortSearchView" ) ))
        self()->mSortSearchView = v;
    }

    /**
      Get Sort order of register in search dialog
    */
    static
    QString sortSearchView()
    {
      return self()->mSortSearchView;
    }

    /**
      Set Default reconciliation state for transactions entered during reconciliation
    */
    static
    void setDefaultReconciliationState( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "defaultReconciliationState" ) ))
        self()->mDefaultReconciliationState = v;
    }

    /**
      Get Default reconciliation state for transactions entered during reconciliation
    */
    static
    int defaultReconciliationState()
    {
      return self()->mDefaultReconciliationState;
    }

    /**
      Set Number of days (plus/minus) to search for matching transactions
    */
    static
    void setMatchInterval( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "matchInterval" ) ))
        self()->mMatchInterval = v;
    }

    /**
      Get Number of days (plus/minus) to search for matching transactions
    */
    static
    int matchInterval()
    {
      return self()->mMatchInterval;
    }

    /**
      Set During import, ask for a new payee's default category
    */
    static
    void setAskForPayeeCategory( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "askForPayeeCategory" ) ))
        self()->mAskForPayeeCategory = v;
    }

    /**
      Get During import, ask for a new payee's default category
    */
    static
    bool askForPayeeCategory()
    {
      return self()->mAskForPayeeCategory;
    }

    /**
      Set Method to calculate forecast
    */
    static
    void setForecastMethod( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "forecastMethod" ) ))
        self()->mForecastMethod = v;
    }

    /**
      Get Method to calculate forecast
    */
    static
    int forecastMethod()
    {
      return self()->mForecastMethod;
    }

    /**
      Set Days to forecast
    */
    static
    void setForecastDays( int v )
    {
      if (v < 1)
      {
        kDebug() << "setForecastDays: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 999)
      {
        kDebug() << "setForecastDays: value " << v << " is greater than the maximum value of 999";
        v = 999;
      }

      if (!self()->isImmutable( QString::fromLatin1( "forecastDays" ) ))
        self()->mForecastDays = v;
    }

    /**
      Get Days to forecast
    */
    static
    int forecastDays()
    {
      return self()->mForecastDays;
    }

    /**
      Set Days of normal account cycle
    */
    static
    void setForecastAccountCycle( int v )
    {
      if (v < 1)
      {
        kDebug() << "setForecastAccountCycle: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 999)
      {
        kDebug() << "setForecastAccountCycle: value " << v << " is greater than the maximum value of 999";
        v = 999;
      }

      if (!self()->isImmutable( QString::fromLatin1( "forecastAccountCycle" ) ))
        self()->mForecastAccountCycle = v;
    }

    /**
      Get Days of normal account cycle
    */
    static
    int forecastAccountCycle()
    {
      return self()->mForecastAccountCycle;
    }

    /**
      Set Number of historic cycles to use in forecast
    */
    static
    void setForecastCycles( int v )
    {
      if (v < 1)
      {
        kDebug() << "setForecastCycles: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 999)
      {
        kDebug() << "setForecastCycles: value " << v << " is greater than the maximum value of 999";
        v = 999;
      }

      if (!self()->isImmutable( QString::fromLatin1( "forecastCycles" ) ))
        self()->mForecastCycles = v;
    }

    /**
      Get Number of historic cycles to use in forecast
    */
    static
    int forecastCycles()
    {
      return self()->mForecastCycles;
    }

    /**
      Set Day of month to start forecast
    */
    static
    void setBeginForecastDay( int v )
    {
      if (v < 0)
      {
        kDebug() << "setBeginForecastDay: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 31)
      {
        kDebug() << "setBeginForecastDay: value " << v << " is greater than the maximum value of 31";
        v = 31;
      }

      if (!self()->isImmutable( QString::fromLatin1( "beginForecastDay" ) ))
        self()->mBeginForecastDay = v;
    }

    /**
      Get Day of month to start forecast
    */
    static
    int beginForecastDay()
    {
      return self()->mBeginForecastDay;
    }

    /**
      Set Method to calculate history-based forecast
    */
    static
    void setHistoryMethod( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "historyMethod" ) ))
        self()->mHistoryMethod = v;
    }

    /**
      Get Method to calculate history-based forecast
    */
    static
    int historyMethod()
    {
      return self()->mHistoryMethod;
    }

    /**
      Set Skip opening date when fetching transactions
    */
    static
    void setSkipOpeningDate( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "skipOpeningDate" ) ))
        self()->mSkipOpeningDate = v;
    }

    /**
      Get Skip opening date when fetching transactions
    */
    static
    bool skipOpeningDate()
    {
      return self()->mSkipOpeningDate;
    }

    /**
      Set Include future transaction when using Schedule Forecast
    */
    static
    void setIncludeFutureTransactions( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "includeFutureTransactions" ) ))
        self()->mIncludeFutureTransactions = v;
    }

    /**
      Get Include future transaction when using Schedule Forecast
    */
    static
    bool includeFutureTransactions()
    {
      return self()->mIncludeFutureTransactions;
    }

    /**
      Set Include scheduled transactions when using Schedule Forecast
    */
    static
    void setIncludeScheduledTransactions( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "includeScheduledTransactions" ) ))
        self()->mIncludeScheduledTransactions = v;
    }

    /**
      Get Include scheduled transactions when using Schedule Forecast
    */
    static
    bool includeScheduledTransactions()
    {
      return self()->mIncludeScheduledTransactions;
    }

    /**
      Set additional names for cash account
    */
    static
    void setQifCash( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "qifCash" ) ))
        self()->mQifCash = v;
    }

    /**
      Get additional names for cash account
    */
    static
    QString qifCash()
    {
      return self()->mQifCash;
    }

    /**
      Set additional names for checking account
    */
    static
    void setQifBank( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "qifBank" ) ))
        self()->mQifBank = v;
    }

    /**
      Get additional names for checking account
    */
    static
    QString qifBank()
    {
      return self()->mQifBank;
    }

    /**
      Set additional names for credit card account
    */
    static
    void setQifCreditCard( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "qifCreditCard" ) ))
        self()->mQifCreditCard = v;
    }

    /**
      Get additional names for credit card account
    */
    static
    QString qifCreditCard()
    {
      return self()->mQifCreditCard;
    }

    /**
      Set additional names for asset account
    */
    static
    void setQifAsset( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "qifAsset" ) ))
        self()->mQifAsset = v;
    }

    /**
      Get additional names for asset account
    */
    static
    QString qifAsset()
    {
      return self()->mQifAsset;
    }

    /**
      Set additional names for opening balance payee
    */
    static
    void setQifOpeningBalance( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "qifOpeningBalance" ) ))
        self()->mQifOpeningBalance = v;
    }

    /**
      Get additional names for opening balance payee
    */
    static
    QString qifOpeningBalance()
    {
      return self()->mQifOpeningBalance;
    }

    /**
      Set additional names for invoice accounts
    */
    static
    void setQifInvoice( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "qifInvoice" ) ))
        self()->mQifInvoice = v;
    }

    /**
      Get additional names for invoice accounts
    */
    static
    QString qifInvoice()
    {
      return self()->mQifInvoice;
    }

    /**
      Set Show accounts view expanded when loaded
    */
    static
    void setShowAccountsExpanded( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showAccountsExpanded" ) ))
        self()->mShowAccountsExpanded = v;
    }

    /**
      Get Show accounts view expanded when loaded
    */
    static
    bool showAccountsExpanded()
    {
      return self()->mShowAccountsExpanded;
    }

    /**
      Set Maximum quantity of legend items to display on charts
    */
    static
    void setMaximumLegendItems( int v )
    {
      if (v < 0)
      {
        kDebug() << "setMaximumLegendItems: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

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

      if (!self()->isImmutable( QString::fromLatin1( "MaximumLegendItems" ) ))
        self()->mMaximumLegendItems = v;
    }

    /**
      Get Maximum quantity of legend items to display on charts
    */
    static
    int maximumLegendItems()
    {
      return self()->mMaximumLegendItems;
    }

    /**
      Set Line width for diagrams, in pixels
    */
    static
    void setLineWidth( int v )
    {
      if (v < 0)
      {
        kDebug() << "setLineWidth: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 256)
      {
        kDebug() << "setLineWidth: value " << v << " is greater than the maximum value of 256";
        v = 256;
      }

      if (!self()->isImmutable( QString::fromLatin1( "LineWidth" ) ))
        self()->mLineWidth = v;
    }

    /**
      Get Line width for diagrams, in pixels
    */
    static
    int lineWidth()
    {
      return self()->mLineWidth;
    }

    /**
      Set The palette used to render charts
    */
    static
    void setChartsPalette( int v )
    {
      if (v < 0)
      {
        kDebug() << "setChartsPalette: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 2)
      {
        kDebug() << "setChartsPalette: value " << v << " is greater than the maximum value of 2";
        v = 2;
      }

      if (!self()->isImmutable( QString::fromLatin1( "ChartsPalette" ) ))
        self()->mChartsPalette = v;
    }

    /**
      Get The palette used to render charts
    */
    static
    int chartsPalette()
    {
      return self()->mChartsPalette;
    }

    /**
      Set Name of default CSS file
    */
    static
    void setCssFileDefault( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "CssFileDefault" ) ))
        self()->mCssFileDefault = v;
    }

    /**
      Get Name of default CSS file
    */
    static
    QString cssFileDefault()
    {
      return self()->mCssFileDefault;
    }

  protected:
    KMyMoneySettings();
    friend class KMyMoneySettingsHelper;


    // General Options
    bool mAlwaysShowNrField;
    int mAutoFillTransaction;
    int mAutoFillDifference;
    bool mAutoFillUseMemos;
    bool mAutoIncCheckNumber;
    bool mAutoSaveFile;
    bool mAutoReconciliation;
    int mAutoBackupCopies;
    int mAutoSavePeriod;
    bool mAutoSaveOnClose;
    bool mCheckSchedule;
    int mCheckSchedulePreview;
    QString mExternalCalculator;
    QString mHolidayRegion;
    int mSchedulePreview;
    bool mCopyTypeToNr;
    bool mFocusChangeIsEnter;
    bool mEnterMovesBetweenFields;
    bool mLedgerLens;
    int mPricePrecision;
    bool mPriceHistoryUpdate;
    bool mTransactionForm;
    int mStartLastViewSelected;
    int mLastViewSelected;
    bool mWriteDataEncrypted;
    bool mEncryptRecover;
    QString mGpgRecipient;
    QStringList mGpgRecipientList;
    bool mExpertMode;
    bool mShowSplash;
    bool mSyncLedgerInvestment;
    int mViewType;
    bool mFirstTimeRun;
    bool mShowTitleBar;
    bool mStringMatchFromStart;
    QString mStdTransactionFormTabOrder;
    QString mStdTransactionRegisterTabOrder;

    // Homepage Options
    QString mItemList;
    int mFontSizePercentage;
    bool mRememberFontSize;
    bool mShowLimitInfo;
    bool mShowBalanceStatusOfOnlineAccounts;
    bool mShowCountOfUnmarkedTransactions;
    bool mShowCountOfClearedTransactions;
    bool mShowCountOfNotReconciledTransactions;

    // List Options
    bool mHideUnusedCategory;
    bool mHideClosedAccounts;
    bool mShowCategoriesInAccountsView;
    bool mHideFinishedSchedules;
    bool mHideReconciledTransactions;
    bool mShowRegisterDetailed;
    bool mShowGrid;
    bool mShowFancyMarker;
    bool mShowFiscalMarker;
    int mFiscalYearBegin;
    int mFiscalYearBeginDay;
    QDateTime mStartDate;
    bool mUseSystemColors;
    QColor mListColor;
    QColor mListBGColor;
    QColor mListGridColor;
    QColor mImportedTransactionColor;
    QColor mMatchedTransactionColor;
    QColor mListErroneousTransactionColor;
    QColor mListMissingConversionRate;
    QColor mListNegativeValueColor;
    QColor mGroupMarkerColor;
    QColor mRequiredFieldColor;
    bool mUseSystemFont;
    QFont mListCellFont;
    QFont mListHeaderFont;
    QString mSortNormalView;
    QString mSortReconcileView;
    QString mSortSearchView;
    int mDefaultReconciliationState;

    // Import options
    int mMatchInterval;
    bool mAskForPayeeCategory;

    // Forecast Options
    int mForecastMethod;
    int mForecastDays;
    int mForecastAccountCycle;
    int mForecastCycles;
    int mBeginForecastDay;
    int mHistoryMethod;
    bool mSkipOpeningDate;
    bool mIncludeFutureTransactions;
    bool mIncludeScheduledTransactions;

    // QIF Options
    QString mQifCash;
    QString mQifBank;
    QString mQifCreditCard;
    QString mQifAsset;
    QString mQifOpeningBalance;
    QString mQifInvoice;

    // Account View Settings
    bool mShowAccountsExpanded;

    // Chart Settings
    int mMaximumLegendItems;
    int mLineWidth;
    int mChartsPalette;
    QString mCssFileDefault;

  private:
};

#endif

