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

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

class KanagramSettings : public KCoreConfigSkeleton
{
  public:

    static KanagramSettings *self();
    ~KanagramSettings();

    /**
      Set This setting stores the currently selected Vocabulary.
    */
    static
    void setCurrentVocabulary( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "currentVocabulary" ) ))
        self()->mCurrentVocabulary = v;
    }

    /**
      Get This setting stores the currently selected Vocabulary.
    */
    static
    int currentVocabulary()
    {
      return self()->mCurrentVocabulary;
    }

    /**
      Set This setting allows you to decide one-player or two-player mode
    */
    static
    void setSinglePlayerMode( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "singlePlayerMode" ) ))
        self()->mSinglePlayerMode = v;
    }

    /**
      Get This setting allows you to decide one-player or two-player mode
    */
    static
    bool singlePlayerMode()
    {
      return self()->mSinglePlayerMode;
    }

    /**
      Set This setting allows you to set in seconds how long Kanagram's hint bubble is shown.
    */
    static
    void setHintHideTime( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "hintHideTime" ) ))
        self()->mHintHideTime = v;
    }

    /**
      Get This setting allows you to set in seconds how long Kanagram's hint bubble is shown.
    */
    static
    QString hintHideTime()
    {
      return self()->mHintHideTime;
    }

    /**
      Set This setting allows you to set in seconds how much time is available for resolving the anagram.
    */
    static
    void setResolveTime( const QString & 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 anagram.
    */
    static
    QString resolveTime()
    {
      return self()->mResolveTime;
    }

    /**
      Set This setting allows you to set in seconds the time interval of the score timer.
    */
    static
    void setScoreTime( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "scoreTime" ) ))
        self()->mScoreTime = v;
    }

    /**
      Get This setting allows you to set in seconds the time interval of the score timer.
    */
    static
    QString scoreTime()
    {
      return self()->mScoreTime;
    }

    /**
      Set This setting allows you to set the score associated with a correct answer.
    */
    static
    void setCorrectAnswerScore( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "correctAnswerScore" ) ))
        self()->mCorrectAnswerScore = v;
    }

    /**
      Get This setting allows you to set the score associated with a correct answer.
    */
    static
    QString correctAnswerScore()
    {
      return self()->mCorrectAnswerScore;
    }

    /**
      Set This setting allows you to set the score associated with an incorrect answer.
    */
    static
    void setIncorrectAnswerScore( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "incorrectAnswerScore" ) ))
        self()->mIncorrectAnswerScore = v;
    }

    /**
      Get This setting allows you to set the score associated with an incorrect answer.
    */
    static
    QString incorrectAnswerScore()
    {
      return self()->mIncorrectAnswerScore;
    }

    /**
      Set This setting allows you to set the score associated with reveal answer.
    */
    static
    void setRevealAnswerScore( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "revealAnswerScore" ) ))
        self()->mRevealAnswerScore = v;
    }

    /**
      Get This setting allows you to set the score associated with reveal answer.
    */
    static
    QString revealAnswerScore()
    {
      return self()->mRevealAnswerScore;
    }

    /**
      Set This setting allows you to set the score associated with a skipped word.
    */
    static
    void setSkippedWordScore( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "skippedWordScore" ) ))
        self()->mSkippedWordScore = v;
    }

    /**
      Get This setting allows you to set the score associated with a skipped word.
    */
    static
    QString skippedWordScore()
    {
      return self()->mSkippedWordScore;
    }

    /**
      Set Turns sounds on/off.
    */
    static
    void setUseSounds( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "useSounds" ) ))
        self()->mUseSounds = v;
    }

    /**
      Get Turns sounds on/off.
    */
    static
    bool useSounds()
    {
      return self()->mUseSounds;
    }

    /**
      Set Use uppercase.
    */
    static
    void setUppercaseOnly( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "uppercaseOnly" ) ))
        self()->mUppercaseOnly = v;
    }

    /**
      Get Use uppercase.
    */
    static
    bool uppercaseOnly()
    {
      return self()->mUppercaseOnly;
    }

    /**
      Set Turns pronunciations on/off.
    */
    static
    void setEnablePronunciation( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "enablePronunciation" ) ))
        self()->mEnablePronunciation = v;
    }

    /**
      Get Turns pronunciations on/off.
    */
    static
    bool enablePronunciation()
    {
      return self()->mEnablePronunciation;
    }

    /**
      Set Set the default translation
    */
    static
    void setDataLanguage( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "dataLanguage" ) ))
        self()->mDataLanguage = v;
    }

    /**
      Get Set the default translation
    */
    static
    QString dataLanguage()
    {
      return self()->mDataLanguage;
    }

  protected:
    KanagramSettings();
    friend class KanagramSettingsHelper;


    // kanagram
    int mCurrentVocabulary;
    bool mSinglePlayerMode;
    QString mHintHideTime;
    QString mResolveTime;
    QString mScoreTime;
    QString mCorrectAnswerScore;
    QString mIncorrectAnswerScore;
    QString mRevealAnswerScore;
    QString mSkippedWordScore;
    bool mUseSounds;
    bool mUppercaseOnly;
    bool mEnablePronunciation;
    QString mDataLanguage;

  private:
};

#endif

