// This file is generated by kconfig_compiler_kf6 from kmahjongg.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() override;

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

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

    /**
      Is The tile-set to use. Immutable
    */
    static
    bool isTileSetImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TileSet" ) );
    }

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

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

    /**
      Is The background to use. Immutable
    */
    static
    bool isBackgroundImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Background" ) );
    }

    /**
      Set The layout of the tiles.
    */
    static
    void setLayout( const QString & v )
    {
      if (!self()->isLayoutImmutable())
        self()->mLayout = v;
    }

    /**
      Get The layout of the tiles.
    */
    static
    QString layout()
    {
      return self()->mLayout;
    }

    /**
      Is The layout of the tiles. Immutable
    */
    static
    bool isLayoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Layout" ) );
    }

    /**
      Set Angle
    */
    static
    void setAngle( int v )
    {
      if (!self()->isAngleImmutable())
        self()->mAngle = v;
    }

    /**
      Get Angle
    */
    static
    int angle()
    {
      return self()->mAngle;
    }

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

    /**
      Set Whether the removed tiles will be shown on the board.
    */
    static
    void setRemovedTiles( bool v )
    {
      if (!self()->isRemovedTilesImmutable())
        self()->mRemovedTiles = v;
    }

    /**
      Get Whether the removed tiles will be shown on the board.
    */
    static
    bool removedTiles()
    {
      return self()->mRemovedTiles;
    }

    /**
      Is Whether the removed tiles will be shown on the board. Immutable
    */
    static
    bool isRemovedTilesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RemovedTiles" ) );
    }

    /**
      Set Whether a random layout is chosen on startup.
    */
    static
    void setRandomLayout( bool v )
    {
      if (!self()->isRandomLayoutImmutable())
        self()->mRandomLayout = v;
    }

    /**
      Get Whether a random layout is chosen on startup.
    */
    static
    bool randomLayout()
    {
      return self()->mRandomLayout;
    }

    /**
      Is Whether a random layout is chosen on startup. Immutable
    */
    static
    bool isRandomLayoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RandomLayout" ) );
    }

    /**
      Set Whether all games should be solvable.
    */
    static
    void setSolvableGames( bool v )
    {
      if (!self()->isSolvableGamesImmutable())
        self()->mSolvableGames = v;
    }

    /**
      Get Whether all games should be solvable.
    */
    static
    bool solvableGames()
    {
      return self()->mSolvableGames;
    }

    /**
      Is Whether all games should be solvable. Immutable
    */
    static
    bool isSolvableGamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SolvableGames" ) );
    }

    /**
      Set Whether matching tiles are shown.
    */
    static
    void setShowMatchingTiles( bool v )
    {
      if (!self()->isShowMatchingTilesImmutable())
        self()->mShowMatchingTiles = v;
    }

    /**
      Get Whether matching tiles are shown.
    */
    static
    bool showMatchingTiles()
    {
      return self()->mShowMatchingTiles;
    }

    /**
      Is Whether matching tiles are shown. Immutable
    */
    static
    bool isShowMatchingTilesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowMatchingTiles" ) );
    }

    /**
      Set EditorGeometry
    */
    static
    void setEditorGeometry( const QRect & v )
    {
      if (!self()->isEditorGeometryImmutable())
        self()->mEditorGeometry = v;
    }

    /**
      Get EditorGeometry
    */
    static
    QRect editorGeometry()
    {
      return self()->mEditorGeometry;
    }

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

  protected:
    Prefs();
    friend class PrefsHelper;


    // General
    QString mTileSet;
    QString mBackground;
    QString mLayout;
    int mAngle;
    bool mRemovedTiles;
    bool mRandomLayout;
    bool mSolvableGames;
    bool mShowMatchingTiles;
    QRect mEditorGeometry;
};

#endif

