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

#include <qdir.h>

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

class Prefs : public KCoreConfigSkeleton
{
  public:

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

    /**
      Set Level
    */
    static
    void setCurrentLevel( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "CurrentLevel" ) ))
        self()->mCurrentLevel = v;
    }

    /**
      Get Level
    */
    static
    int currentLevel()
    {
      return self()->mCurrentLevel;
    }

    /**
      Set LevelFile
    */
    static
    void setLevelFile( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "LevelFile" ) ))
        self()->mLevelFile = v;
    }

    /**
      Get LevelFile
    */
    static
    QString levelFile()
    {
      return self()->mLevelFile;
    }

    /**
      Set The language selected by the user
    */
    static
    void setSelectedLanguage( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "SelectedLanguage" ) ))
        self()->mSelectedLanguage = v;
    }

    /**
      Get The language selected by the user
    */
    static
    QString selectedLanguage()
    {
      return self()->mSelectedLanguage;
    }

    /**
      Set Background theme name
    */
    static
    void setTheme( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Theme" ) ))
        self()->mTheme = v;
    }

    /**
      Get Background theme name
    */
    static
    QString theme()
    {
      return self()->mTheme;
    }

    /**
      Set Check this if you do not want to discover each instance of the same letter.
    */
    static
    void setOneLetter( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "OneLetter" ) ))
        self()->mOneLetter = v;
    }

    /**
      Get Check this if you do not want to discover each instance of the same letter.
    */
    static
    bool oneLetter()
    {
      return self()->mOneLetter;
    }

    /**
      Set Enable Animations
    */
    static
    void setEnableAnimations( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "EnableAnimations" ) ))
        self()->mEnableAnimations = v;
    }

    /**
      Get Enable Animations
    */
    static
    bool enableAnimations()
    {
      return self()->mEnableAnimations;
    }

    /**
      Set If checked, sounds will be played for New Game and Win Game
    */
    static
    void setSound( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "Sound" ) ))
        self()->mSound = v;
    }

    /**
      Get If checked, sounds will be played for New Game and Win Game
    */
    static
    bool sound()
    {
      return self()->mSound;
    }

    /**
      Set If checked, hints will always been displayed. If this is not checked (default)
            hints will be displayed only per word when the user chooses to show the hint.
    */
    static
    void setHint( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "Hint" ) ))
        self()->mHint = v;
    }

    /**
      Get If checked, hints will always been displayed. If this is not checked (default)
            hints will be displayed only per word when the user chooses to show the hint.
    */
    static
    bool hint()
    {
      return self()->mHint;
    }

    /**
      Set This setting allows you to set in seconds how much time is available for resolving the word.
    */
    static
    void setResolveTime( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "resolveTime" ) ))
        self()->mResolveTime = v;
    }

    /**
      Get This setting allows you to set in seconds how much time is available for resolving the word.
    */
    static
    int resolveTime()
    {
      return self()->mResolveTime;
    }

    /**
      Set Type accented letters separately from normal letters
    */
    static
    void setAccentedLetters( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "AccentedLetters" ) ))
        self()->mAccentedLetters = v;
    }

    /**
      Get Type accented letters separately from normal letters
    */
    static
    bool accentedLetters()
    {
      return self()->mAccentedLetters;
    }

    /**
      Set The Providers path for KHangMan
    */
    static
    void setProvidersUrl( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "ProvidersUrl" ) ))
        self()->mProvidersUrl = v;
    }

    /**
      Get The Providers path for KHangMan
    */
    static
    QString providersUrl()
    {
      return self()->mProvidersUrl;
    }

  protected:
    Prefs();
    friend class PrefsHelper;


    // Language
    int mCurrentLevel;
    QString mLevelFile;
    QString mSelectedLanguage;

    // Look
    QString mTheme;

    // General
    bool mOneLetter;
    bool mEnableAnimations;
    bool mSound;
    bool mHint;
    int mResolveTime;

    // Advanced
    bool mAccentedLetters;

    // KNewStuff
    QString mProvidersUrl;

  private:
};

#endif

