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

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

#include <KLocalizedString>

class Prefs : public KConfigSkeleton
{
  public:

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

    /**
      Set Network connection port
    */
    static
    void setPort( int v )
    {
      if (!self()->isPortImmutable())
        self()->mPort = v;
    }

    /**
      Get Network connection port
    */
    static
    int port()
    {
      return self()->mPort;
    }

    /**
      Is Network connection port Immutable
    */
    static
    bool isPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "port" ) );
    }

    /**
      Set Game name
    */
    static
    void setGamename( const QString & v )
    {
      if (!self()->isGamenameImmutable())
        self()->mGamename = v;
    }

    /**
      Get Game name
    */
    static
    QString gamename()
    {
      return self()->mGamename;
    }

    /**
      Is Game name Immutable
    */
    static
    bool isGamenameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "gamename" ) );
    }

    /**
      Set Network connection host
    */
    static
    void setHost( const QString & v )
    {
      if (!self()->isHostImmutable())
        self()->mHost = v;
    }

    /**
      Get Network connection host
    */
    static
    QString host()
    {
      return self()->mHost;
    }

    /**
      Is Network connection host Immutable
    */
    static
    bool isHostImmutable()
    {
      return self()->isImmutable( QStringLiteral( "host" ) );
    }

    /**
      Set Change the strength of the computer player.
    */
    static
    void setLevel( int v )
    {
      if (v < 1)
      {
        qDebug() << "setLevel: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

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

      if (!self()->isLevelImmutable())
        self()->mLevel = v;
    }

    /**
      Get Change the strength of the computer player.
    */
    static
    int level()
    {
      return self()->mLevel;
    }

    /**
      Is Change the strength of the computer player. Immutable
    */
    static
    bool isLevelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "level" ) );
    }

    /**
      Set Player 1 name
    */
    static
    void setName1( const QString & v )
    {
      if (!self()->isName1Immutable())
        self()->mName1 = v;
    }

    /**
      Get Player 1 name
    */
    static
    QString name1()
    {
      return self()->mName1;
    }

    /**
      Is Player 1 name Immutable
    */
    static
    bool isName1Immutable()
    {
      return self()->isImmutable( QStringLiteral( "Name1" ) );
    }

    /**
      Set Player 2 name
    */
    static
    void setName2( const QString & v )
    {
      if (!self()->isName2Immutable())
        self()->mName2 = v;
    }

    /**
      Get Player 2 name
    */
    static
    QString name2()
    {
      return self()->mName2;
    }

    /**
      Is Player 2 name Immutable
    */
    static
    bool isName2Immutable()
    {
      return self()->isImmutable( QStringLiteral( "Name2" ) );
    }

    /**
      Set input0mouse
    */
    static
    void setInput0mouse( bool v )
    {
      if (!self()->isInput0mouseImmutable())
        self()->mInput0mouse = v;
    }

    /**
      Get input0mouse
    */
    static
    bool input0mouse()
    {
      return self()->mInput0mouse;
    }

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

    /**
      Set input0key
    */
    static
    void setInput0key( bool v )
    {
      if (!self()->isInput0keyImmutable())
        self()->mInput0key = v;
    }

    /**
      Get input0key
    */
    static
    bool input0key()
    {
      return self()->mInput0key;
    }

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

    /**
      Set input0ai
    */
    static
    void setInput0ai( bool v )
    {
      if (!self()->isInput0aiImmutable())
        self()->mInput0ai = v;
    }

    /**
      Get input0ai
    */
    static
    bool input0ai()
    {
      return self()->mInput0ai;
    }

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

    /**
      Set input1mouse
    */
    static
    void setInput1mouse( bool v )
    {
      if (!self()->isInput1mouseImmutable())
        self()->mInput1mouse = v;
    }

    /**
      Get input1mouse
    */
    static
    bool input1mouse()
    {
      return self()->mInput1mouse;
    }

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

    /**
      Set input1key
    */
    static
    void setInput1key( bool v )
    {
      if (!self()->isInput1keyImmutable())
        self()->mInput1key = v;
    }

    /**
      Get input1key
    */
    static
    bool input1key()
    {
      return self()->mInput1key;
    }

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

    /**
      Set input1ai
    */
    static
    void setInput1ai( bool v )
    {
      if (!self()->isInput1aiImmutable())
        self()->mInput1ai = v;
    }

    /**
      Get input1ai
    */
    static
    bool input1ai()
    {
      return self()->mInput1ai;
    }

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

    /**
      Set startcolourred
    */
    static
    void setStartcolourred( bool v )
    {
      if (!self()->isStartcolourredImmutable())
        self()->mStartcolourred = v;
    }

    /**
      Get startcolourred
    */
    static
    bool startcolourred()
    {
      return self()->mStartcolourred;
    }

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

    /**
      Set startcolouryellow
    */
    static
    void setStartcolouryellow( bool v )
    {
      if (!self()->isStartcolouryellowImmutable())
        self()->mStartcolouryellow = v;
    }

    /**
      Get startcolouryellow
    */
    static
    bool startcolouryellow()
    {
      return self()->mStartcolouryellow;
    }

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

    /**
      Set learning
    */
    static
    void setLearning( bool v )
    {
      if (!self()->isLearningImmutable())
        self()->mLearning = v;
    }

    /**
      Get learning
    */
    static
    bool learning()
    {
      return self()->mLearning;
    }

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

    /**
      Set ailock
    */
    static
    void setAilock( bool v )
    {
      if (!self()->isAilockImmutable())
        self()->mAilock = v;
    }

    /**
      Get ailock
    */
    static
    bool ailock()
    {
      return self()->mAilock;
    }

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

  protected:
    Prefs();
    friend class PrefsHelper;


    // Parameter
    int mPort;
    QString mGamename;
    QString mHost;
    int mLevel;
    QString mName1;
    QString mName2;
    bool mInput0mouse;
    bool mInput0key;
    bool mInput0ai;
    bool mInput1mouse;
    bool mInput1key;
    bool mInput1ai;
    bool mStartcolourred;
    bool mStartcolouryellow;
    bool mLearning;
    bool mAilock;
};

#endif

