// This file is generated by kconfig_compiler_kf5 from ksquares.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 Number of Players
    */
    static
    void setNumOfPlayers( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "NumOfPlayers" ) ))
        self()->mNumOfPlayers = v;
    }

    /**
      Get Number of Players
    */
    static
    int numOfPlayers()
    {
      return self()->mNumOfPlayers;
    }

    /**
      Set Player Names
    */
    static
    void setPlayerNames( const QStringList & v )
    {
      if (!self()->isImmutable( QStringLiteral( "PlayerNames" ) ))
        self()->mPlayerNames = v;
    }

    /**
      Get Player Names
    */
    static
    QStringList playerNames()
    {
      return self()->mPlayerNames;
    }

    /**
      Set Human or AI
    */
    static
    void setHumanList( const QList<int> & v )
    {
      if (!self()->isImmutable( QStringLiteral( "HumanList" ) ))
        self()->mHumanList = v;
    }

    /**
      Get Human or AI
    */
    static
    QList<int> humanList()
    {
      return self()->mHumanList;
    }

    /**
      Set Width of board
    */
    static
    void setBoardWidth( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "BoardWidth" ) ))
        self()->mBoardWidth = v;
    }

    /**
      Get Width of board
    */
    static
    int boardWidth()
    {
      return self()->mBoardWidth;
    }

    /**
      Set Height of board
    */
    static
    void setBoardHeight( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "BoardHeight" ) ))
        self()->mBoardHeight = v;
    }

    /**
      Get Height of board
    */
    static
    int boardHeight()
    {
      return self()->mBoardHeight;
    }

    /**
      Set Quick start the game
    */
    static
    void setQuickStart( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "QuickStart" ) ))
        self()->mQuickStart = v;
    }

    /**
      Get Quick start the game
    */
    static
    int quickStart()
    {
      return self()->mQuickStart;
    }

    /**
      Set Difficulty
    */
    static
    void setDifficulty( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "Difficulty" ) ))
        self()->mDifficulty = v;
    }

    /**
      Get Difficulty
    */
    static
    int difficulty()
    {
      return self()->mDifficulty;
    }

    /**
      Set Line Color
    */
    static
    void setLineColor( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "LineColor" ) ))
        self()->mLineColor = v;
    }

    /**
      Get Line Color
    */
    static
    QColor lineColor()
    {
      return self()->mLineColor;
    }

    /**
      Set Indicator Line Color
    */
    static
    void setIndicatorLineColor( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "IndicatorLineColor" ) ))
        self()->mIndicatorLineColor = v;
    }

    /**
      Get Indicator Line Color
    */
    static
    QColor indicatorLineColor()
    {
      return self()->mIndicatorLineColor;
    }


    /**
      Get Highlight Color
    */
    static
    QColor highlightColor()
    {
      return self()->mHighlightColor;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // Game Settings
    int mNumOfPlayers;
    QStringList mPlayerNames;
    QList<int> mHumanList;
    int mBoardWidth;
    int mBoardHeight;
    int mQuickStart;

    // AI
    int mDifficulty;

    // Display
    QColor mLineColor;
    QColor mIndicatorLineColor;
    QColor mHighlightColor;

  private:
};

#endif

