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

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

class Settings : public KConfigSkeleton
{
  public:

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

    /**
      Set Autodrop
    */
    static
    void setAutoDropEnabled( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "AutoDropEnabled" ) ))
        self()->mAutoDropEnabled = v;
    }

    /**
      Get Autodrop
    */
    static
    bool autoDropEnabled()
    {
      return self()->mAutoDropEnabled;
    }

    /**
      Get Item object corresponding to AutoDropEnabled()
    */
    ItemBool *autoDropEnabledItem()
    {
      return mAutoDropEnabledItem;
    }

    /**
      Set Solver
    */
    static
    void setSolverEnabled( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "SolverEnabled" ) ))
        self()->mSolverEnabled = v;
    }

    /**
      Get Solver
    */
    static
    bool solverEnabled()
    {
      return self()->mSolverEnabled;
    }

    /**
      Get Item object corresponding to SolverEnabled()
    */
    ItemBool *solverEnabledItem()
    {
      return mSolverEnabledItem;
    }

    /**
      Set PlaySounds
    */
    static
    void setPlaySounds( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "PlaySounds" ) ))
        self()->mPlaySounds = v;
    }

    /**
      Get PlaySounds
    */
    static
    bool playSounds()
    {
      return self()->mPlaySounds;
    }

    /**
      Get Item object corresponding to PlaySounds()
    */
    ItemBool *playSoundsItem()
    {
      return mPlaySoundsItem;
    }

    /**
      Set RememberStateOnExit
    */
    static
    void setRememberStateOnExit( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "RememberStateOnExit" ) ))
        self()->mRememberStateOnExit = v;
    }

    /**
      Get RememberStateOnExit
    */
    static
    bool rememberStateOnExit()
    {
      return self()->mRememberStateOnExit;
    }

    /**
      Get Item object corresponding to RememberStateOnExit()
    */
    ItemBool *rememberStateOnExitItem()
    {
      return mRememberStateOnExitItem;
    }

    /**
      Set Cardname
    */
    static
    void setCardTheme( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "CardTheme" ) ))
        self()->mCardTheme = v;
    }

    /**
      Get Cardname
    */
    static
    QString cardTheme()
    {
      return self()->mCardTheme;
    }

    /**
      Get Cardname default value
    */
    static
    QString defaultCardThemeValue()
    {
        return defaultCardThemeValue_helper();
    }

    /**
      Get Item object corresponding to CardTheme()
    */
    ItemString *cardThemeItem()
    {
      return mCardThemeItem;
    }

    /**
      Set KlondikeEasy
    */
    static
    void setKlondikeIsDrawOne( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "KlondikeIsDrawOne" ) ))
        self()->mKlondikeIsDrawOne = v;
    }

    /**
      Get KlondikeEasy
    */
    static
    bool klondikeIsDrawOne()
    {
      return self()->mKlondikeIsDrawOne;
    }

    /**
      Get Item object corresponding to KlondikeIsDrawOne()
    */
    ItemBool *klondikeIsDrawOneItem()
    {
      return mKlondikeIsDrawOneItem;
    }

    /**
      Set SpiderSuits
    */
    static
    void setSpiderSuitCount( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "SpiderSuitCount" ) ))
        self()->mSpiderSuitCount = v;
    }

    /**
      Get SpiderSuits
    */
    static
    int spiderSuitCount()
    {
      return self()->mSpiderSuitCount;
    }

    /**
      Get Item object corresponding to SpiderSuitCount()
    */
    ItemInt *spiderSuitCountItem()
    {
      return mSpiderSuitCountItem;
    }

    /**
      Set SpiderStackFaceup
    */
    static
    void setSpiderStackFaceup( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "SpiderStackFaceup" ) ))
        self()->mSpiderStackFaceup = v;
    }

    /**
      Get SpiderStackFaceup
    */
    static
    int spiderStackFaceup()
    {
      return self()->mSpiderStackFaceup;
    }

    /**
      Get Item object corresponding to SpiderStackFaceup()
    */
    ItemInt *spiderStackFaceupItem()
    {
      return mSpiderStackFaceupItem;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // General Settings
    bool mAutoDropEnabled;
    bool mSolverEnabled;
    bool mPlaySounds;
    bool mRememberStateOnExit;
    QString mCardTheme;
    static QString defaultCardThemeValue_helper();
    bool mKlondikeIsDrawOne;
    int mSpiderSuitCount;
    int mSpiderStackFaceup;

  private:
    ItemBool *mAutoDropEnabledItem;
    ItemBool *mSolverEnabledItem;
    ItemBool *mPlaySoundsItem;
    ItemBool *mRememberStateOnExitItem;
    ItemString *mCardThemeItem;
    ItemBool *mKlondikeIsDrawOneItem;
    ItemInt *mSpiderSuitCountItem;
    ItemInt *mSpiderStackFaceupItem;
};

#endif

