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

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

class Preferences : public KConfigSkeleton
{
  public:
    class EnumAnimationSpeed
    {
      public:
      enum type { Slow, Normal, Fast, COUNT };
    };

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

    /**
      Set The speed of the animations.
    */
    static
    void setAnimationSpeed( int v )
    {
      if (!self()->isAnimationSpeedImmutable())
        self()->mAnimationSpeed = v;
    }

    /**
      Get The speed of the animations.
    */
    static
    int animationSpeed()
    {
      return self()->mAnimationSpeed;
    }

    /**
      Is The speed of the animations. Immutable
    */
    static
    bool isAnimationSpeedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnimationSpeed" ) );
    }

    /**
      Set Width of saved background
    */
    static
    void setSavedBackgroundWidth( int v )
    {
      if (!self()->isSavedBackgroundWidthImmutable())
        self()->mSavedBackgroundWidth = v;
    }

    /**
      Get Width of saved background
    */
    static
    int savedBackgroundWidth()
    {
      return self()->mSavedBackgroundWidth;
    }

    /**
      Is Width of saved background Immutable
    */
    static
    bool isSavedBackgroundWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SavedBackgroundWidth" ) );
    }

    /**
      Set Height of saved background
    */
    static
    void setSavedBackgroundHeight( int v )
    {
      if (!self()->isSavedBackgroundHeightImmutable())
        self()->mSavedBackgroundHeight = v;
    }

    /**
      Get Height of saved background
    */
    static
    int savedBackgroundHeight()
    {
      return self()->mSavedBackgroundHeight;
    }

    /**
      Is Height of saved background Immutable
    */
    static
    bool isSavedBackgroundHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SavedBackgroundHeight" ) );
    }

    /**
      Set Last played levelset
    */
    static
    void setLastPlayedLevelSet( const QString & v )
    {
      if (!self()->isLastPlayedLevelSetImmutable())
        self()->mLastPlayedLevelSet = v;
    }

    /**
      Get Last played levelset
    */
    static
    QString lastPlayedLevelSet()
    {
      return self()->mLastPlayedLevelSet;
    }

    /**
      Is Last played levelset Immutable
    */
    static
    bool isLastPlayedLevelSetImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LastPlayedLevelSet" ) );
    }

  protected:
    Preferences();
    friend class PreferencesHelper;


    // Game
    int mAnimationSpeed;

    // General
    int mSavedBackgroundWidth;
    int mSavedBackgroundHeight;
    QString mLastPlayedLevelSet;
};

#endif

