// This file is generated by kconfig_compiler_kf6 from ksnakeduel.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:
    class EnumGameType
    {
      public:
      enum type { PlayerVSComputer, PlayerVSPlayer, Snake, COUNT };
    };

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

    /**
      Set The graphical theme to be used.
    */
    static
    void setTheme( const QString & v )
    {
      if (!self()->isThemeImmutable())
        self()->mTheme = v;
    }

    /**
      Get The graphical theme to be used.
    */
    static
    QString theme()
    {
      return self()->mTheme;
    }

    /**
      Is The graphical theme to be used. Immutable
    */
    static
    bool isThemeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Theme" ) );
    }

    /**
      Set Whether to disable acceleration.
    */
    static
    void setAcceleratorBlocked( bool v )
    {
      if (!self()->isAcceleratorBlockedImmutable())
        self()->mAcceleratorBlocked = v;
    }

    /**
      Get Whether to disable acceleration.
    */
    static
    bool acceleratorBlocked()
    {
      return self()->mAcceleratorBlocked;
    }

    /**
      Is Whether to disable acceleration. Immutable
    */
    static
    bool isAcceleratorBlockedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AcceleratorBlocked" ) );
    }

    /**
      Set The name of player 1.
    */
    static
    void setNamePlayer1( const QString & v )
    {
      if (!self()->isNamePlayer1Immutable())
        self()->mNamePlayer1 = v;
    }

    /**
      Get The name of player 1.
    */
    static
    QString namePlayer1()
    {
      return self()->mNamePlayer1;
    }

    /**
      Is The name of player 1. Immutable
    */
    static
    bool isNamePlayer1Immutable()
    {
      return self()->isImmutable( QStringLiteral( "NamePlayer1" ) );
    }

    /**
      Set The name of player 2.
    */
    static
    void setNamePlayer2( const QString & v )
    {
      if (!self()->isNamePlayer2Immutable())
        self()->mNamePlayer2 = v;
    }

    /**
      Get The name of player 2.
    */
    static
    QString namePlayer2()
    {
      return self()->mNamePlayer2;
    }

    /**
      Is The name of player 2. Immutable
    */
    static
    bool isNamePlayer2Immutable()
    {
      return self()->isImmutable( QStringLiteral( "NamePlayer2" ) );
    }

    /**
      Set Type of the game
    */
    static
    void setGameType( int v )
    {
      if (!self()->isGameTypeImmutable())
        self()->mGameType = v;
    }

    /**
      Get Type of the game
    */
    static
    int gameType()
    {
      return self()->mGameType;
    }

    /**
      Is Type of the game Immutable
    */
    static
    bool isGameTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GameType" ) );
    }

    /**
      Set Rounds
    */
    static
    void setRounds( int v )
    {
      if (!self()->isRoundsImmutable())
        self()->mRounds = v;
    }

    /**
      Get Rounds
    */
    static
    int rounds()
    {
      return self()->mRounds;
    }

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

  protected:
    Settings();
    friend class SettingsHelper;


    // General
    QString mTheme;

    // Game
    bool mAcceleratorBlocked;
    QString mNamePlayer1;
    QString mNamePlayer2;
    int mGameType;
    int mRounds;
};

#endif

