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

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

class SettingsBase : public KConfigSkeleton
{
  public:

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

    /**
      Set Default hostname for multiplayer games.
    */
    static
    void setHostname( const QString & v )
    {
      if (!self()->isHostnameImmutable())
        self()->mHostname = v;
    }

    /**
      Get Default hostname for multiplayer games.
    */
    static
    QString hostname()
    {
      return self()->mHostname;
    }

    /**
      Is Default hostname for multiplayer games. Immutable
    */
    static
    bool isHostnameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Hostname" ) );
    }

    /**
      Set Default port for multiplayer games.
    */
    static
    void setPort( int v )
    {
      if (!self()->isPortImmutable())
        self()->mPort = v;
    }

    /**
      Get Default port for multiplayer games.
    */
    static
    int port()
    {
      return self()->mPort;
    }

    /**
      Is Default port for multiplayer games. Immutable
    */
    static
    bool isPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Port" ) );
    }

    /**
      Set User nickname.
    */
    static
    void setNickname( const QString & v )
    {
      if (!self()->isNicknameImmutable())
        self()->mNickname = v;
    }

    /**
      Get User nickname.
    */
    static
    QString nickname()
    {
      return self()->mNickname;
    }

    /**
      Is User nickname. Immutable
    */
    static
    bool isNicknameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Nickname" ) );
    }

    /**
      Set Whether sound effects should be played.
    */
    static
    void setEnableSounds( bool v )
    {
      if (!self()->isEnableSoundsImmutable())
        self()->mEnableSounds = v;
    }

    /**
      Get Whether sound effects should be played.
    */
    static
    bool enableSounds()
    {
      return self()->mEnableSounds;
    }

    /**
      Is Whether sound effects should be played. Immutable
    */
    static
    bool isEnableSoundsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnableSounds" ) );
    }

    /**
      Set Allow the ships to be adjacent without one empty space between them.
    */
    static
    void setAdjacentShips( bool v )
    {
      if (!self()->isAdjacentShipsImmutable())
        self()->mAdjacentShips = v;
    }

    /**
      Get Allow the ships to be adjacent without one empty space between them.
    */
    static
    bool adjacentShips()
    {
      return self()->mAdjacentShips;
    }

    /**
      Is Allow the ships to be adjacent without one empty space between them. Immutable
    */
    static
    bool isAdjacentShipsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AdjacentShips" ) );
    }

    /**
      Set Allow multiple ships of any size, default: 4 of 1, 3 of 2, 2 of 3, 1 of 4.
    */
    static
    void setSeveralShips( bool v )
    {
      if (!self()->isSeveralShipsImmutable())
        self()->mSeveralShips = v;
    }

    /**
      Get Allow multiple ships of any size, default: 4 of 1, 3 of 2, 2 of 3, 1 of 4.
    */
    static
    bool severalShips()
    {
      return self()->mSeveralShips;
    }

    /**
      Is Allow multiple ships of any size, default: 4 of 1, 3 of 2, 2 of 3, 1 of 4. Immutable
    */
    static
    bool isSeveralShipsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SeveralShips" ) );
    }

  protected:
    SettingsBase();
    friend class SettingsBaseHelper;


    // network
    QString mHostname;
    int mPort;

    // general
    QString mNickname;
    bool mEnableSounds;
    bool mAdjacentShips;
    bool mSeveralShips;
};

#endif

