// This file is generated by kconfig_compiler_kf6 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() override;

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

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

    /**
      Is This setting stores the currently selected Vocabulary. Immutable
    */
    static
    bool isCurrentVocabularyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "currentVocabulary" ) );
    }

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

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

    /**
      Is This setting allows you to decide one-player or two-player mode Immutable
    */
    static
    bool isSinglePlayerModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "singlePlayerMode" ) );
    }

    /**
      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()->isHintHideTimeImmutable())
        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;
    }

    /**
      Is This setting allows you to set in seconds how long Kanagram's hint bubble is shown. Immutable
    */
    static
    bool isHintHideTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "hintHideTime" ) );
    }

    /**
      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()->isResolveTimeImmutable())
        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;
    }

    /**
      Is This setting allows you to set in seconds how much time is available for resolving the anagram. Immutable
    */
    static
    bool isResolveTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "resolveTime" ) );
    }

    /**
      Set This setting allows you to set in seconds the time interval of the score timer.
    */
    static
    void setScoreTime( const QString & v )
    {
      if (!self()->isScoreTimeImmutable())
        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;
    }

    /**
      Is This setting allows you to set in seconds the time interval of the score timer. Immutable
    */
    static
    bool isScoreTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "scoreTime" ) );
    }

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

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

    /**
      Is This setting allows you to set the score associated with a correct answer. Immutable
    */
    static
    bool isCorrectAnswerScoreImmutable()
    {
      return self()->isImmutable( QStringLiteral( "correctAnswerScore" ) );
    }

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

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

    /**
      Is This setting allows you to set the score associated with an incorrect answer. Immutable
    */
    static
    bool isIncorrectAnswerScoreImmutable()
    {
      return self()->isImmutable( QStringLiteral( "incorrectAnswerScore" ) );
    }

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

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

    /**
      Is This setting allows you to set the score associated with reveal answer. Immutable
    */
    static
    bool isRevealAnswerScoreImmutable()
    {
      return self()->isImmutable( QStringLiteral( "revealAnswerScore" ) );
    }

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

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

    /**
      Is This setting allows you to set the score associated with a skipped word. Immutable
    */
    static
    bool isSkippedWordScoreImmutable()
    {
      return self()->isImmutable( QStringLiteral( "skippedWordScore" ) );
    }

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

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

    /**
      Is Turns sounds on/off. Immutable
    */
    static
    bool isUseSoundsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useSounds" ) );
    }

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

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

    /**
      Is Use uppercase. Immutable
    */
    static
    bool isUppercaseOnlyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "uppercaseOnly" ) );
    }

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

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

    /**
      Is Turns pronunciations on/off. Immutable
    */
    static
    bool isEnablePronunciationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "enablePronunciation" ) );
    }

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

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

    /**
      Is Set the default translation Immutable
    */
    static
    bool isDataLanguageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "dataLanguage" ) );
    }

  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;
};

#endif

