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

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

class Prefs : public KConfigSkeleton
{
  public:

    static Prefs *self();
    ~Prefs();

    /**
      Set The tile set to use.
    */
    static
    void setTileSet( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "TileSet" ) ))
        self()->mTileSet = v;
    }

    /**
      Get The tile set to use.
    */
    static
    QString tileSet()
    {
      return self()->mTileSet;
    }

    /**
      Set The background to use.
    */
    static
    void setBackground( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Background" ) ))
        self()->mBackground = v;
    }

    /**
      Get The background to use.
    */
    static
    QString background()
    {
      return self()->mBackground;
    }

    /**
      Set ChineseStyle
    */
    static
    void setChineseStyle( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "ChineseStyle" ) ))
        self()->mChineseStyle = v;
    }

    /**
      Get ChineseStyle
    */
    static
    bool chineseStyle()
    {
      return self()->mChineseStyle;
    }

    /**
      Set TilesCanSlide
    */
    static
    void setTilesCanSlide( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "TilesCanSlide" ) ))
        self()->mTilesCanSlide = v;
    }

    /**
      Get TilesCanSlide
    */
    static
    bool tilesCanSlide()
    {
      return self()->mTilesCanSlide;
    }

    /**
      Set Solvable
    */
    static
    void setSolvable( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "Solvable" ) ))
        self()->mSolvable = v;
    }

    /**
      Get Solvable
    */
    static
    bool solvable()
    {
      return self()->mSolvable;
    }

    /**
      Set Gravity
    */
    static
    void setGravity( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "Gravity" ) ))
        self()->mGravity = v;
    }

    /**
      Get Gravity
    */
    static
    bool gravity()
    {
      return self()->mGravity;
    }

    /**
      Set Sounds
    */
    static
    void setSounds( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "Sounds" ) ))
        self()->mSounds = v;
    }

    /**
      Get Sounds
    */
    static
    bool sounds()
    {
      return self()->mSounds;
    }

    /**
      Set Speed
    */
    static
    void setSpeed( int v )
    {
      if (v < 0)
      {
        qDebug() << "setSpeed: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 4)
      {
        qDebug() << "setSpeed: value " << v << " is greater than the maximum value of 4";
        v = 4;
      }

      if (!self()->isImmutable( QStringLiteral( "Speed" ) ))
        self()->mSpeed = v;
    }

    /**
      Get Speed
    */
    static
    int speed()
    {
      return self()->mSpeed;
    }

    /**
      Set Size
    */
    static
    void setSize( int v )
    {
      if (v < 0)
      {
        qDebug() << "setSize: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 5)
      {
        qDebug() << "setSize: value " << v << " is greater than the maximum value of 5";
        v = 5;
      }

      if (!self()->isImmutable( QStringLiteral( "Size" ) ))
        self()->mSize = v;
    }

    /**
      Get Size
    */
    static
    int size()
    {
      return self()->mSize;
    }

    /**
      Set Level
    */
    static
    void setLevel( int v )
    {
      if (v < 0)
      {
        qDebug() << "setLevel: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

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

      if (!self()->isImmutable( QStringLiteral( "Level" ) ))
        self()->mLevel = v;
    }

    /**
      Get Level
    */
    static
    int level()
    {
      return self()->mLevel;
    }

  protected:
    Prefs();
    friend class PrefsHelper;


    // General
    QString mTileSet;
    QString mBackground;

    // Game
    bool mChineseStyle;
    bool mTilesCanSlide;
    bool mSolvable;
    bool mGravity;
    bool mSounds;
    int mSpeed;
    int mSize;
    int mLevel;

  private:
};

#endif

