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

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

#include <MainQtWidget.h>

class SettingsClass : public KConfigSkeleton
{
  public:

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

    /**
      Set Active exercise.
    */
    static
    void setActiveExercise( int v )
    {
      if (!self()->isActiveExerciseImmutable())
        self()->mActiveExercise = v;
    }

    /**
      Get Active exercise.
    */
    static
    int activeExercise()
    {
      return self()->mActiveExercise;
    }

    /**
      Is Active exercise. Immutable
    */
    static
    bool isActiveExerciseImmutable()
    {
      return self()->isImmutable( QStringLiteral( "activeExercise" ) );
    }

    /**
      Set Enable Addition
    */
    static
    void setAddadd( bool v )
    {
      if (!self()->isAddaddImmutable())
        self()->mAddadd = v;
    }

    /**
      Get Enable Addition
    */
    static
    bool addadd()
    {
      return self()->mAddadd;
    }

    /**
      Is Enable Addition Immutable
    */
    static
    bool isAddaddImmutable()
    {
      return self()->isImmutable( QStringLiteral( "addadd" ) );
    }

    /**
      Set Enable Subtraction
    */
    static
    void setAddsub( bool v )
    {
      if (!self()->isAddsubImmutable())
        self()->mAddsub = v;
    }

    /**
      Get Enable Subtraction
    */
    static
    bool addsub()
    {
      return self()->mAddsub;
    }

    /**
      Is Enable Subtraction Immutable
    */
    static
    bool isAddsubImmutable()
    {
      return self()->isImmutable( QStringLiteral( "addsub" ) );
    }

    /**
      Set Enable Division
    */
    static
    void setAdddiv( bool v )
    {
      if (!self()->isAdddivImmutable())
        self()->mAdddiv = v;
    }

    /**
      Get Enable Division
    */
    static
    bool adddiv()
    {
      return self()->mAdddiv;
    }

    /**
      Is Enable Division Immutable
    */
    static
    bool isAdddivImmutable()
    {
      return self()->isImmutable( QStringLiteral( "adddiv" ) );
    }

    /**
      Set Enable Multiplication
    */
    static
    void setAddmult( bool v )
    {
      if (!self()->isAddmultImmutable())
        self()->mAddmult = v;
    }

    /**
      Get Enable Multiplication
    */
    static
    bool addmult()
    {
      return self()->mAddmult;
    }

    /**
      Is Enable Multiplication Immutable
    */
    static
    bool isAddmultImmutable()
    {
      return self()->isImmutable( QStringLiteral( "addmult" ) );
    }

    /**
      Set Enable Multiplication/Division
    */
    static
    void setMuldiv( bool v )
    {
      if (!self()->isMuldivImmutable())
        self()->mMuldiv = v;
    }

    /**
      Get Enable Multiplication/Division
    */
    static
    bool muldiv()
    {
      return self()->mMuldiv;
    }

    /**
      Is Enable Multiplication/Division Immutable
    */
    static
    bool isMuldivImmutable()
    {
      return self()->isImmutable( QStringLiteral( "muldiv" ) );
    }

    /**
      Set Number of fractions
    */
    static
    void setNumber_ratios( uint v )
    {
      if (!self()->isNumber_ratiosImmutable())
        self()->mNumber_ratios = v;
    }

    /**
      Get Number of fractions
    */
    static
    uint number_ratios()
    {
      return self()->mNumber_ratios;
    }

    /**
      Is Number of fractions Immutable
    */
    static
    bool isNumber_ratiosImmutable()
    {
      return self()->isImmutable( QStringLiteral( "number_ratios" ) );
    }

    /**
      Set Max. main denominator
    */
    static
    void setMax_main_denominator( uint v )
    {
      if (!self()->isMax_main_denominatorImmutable())
        self()->mMax_main_denominator = v;
    }

    /**
      Get Max. main denominator
    */
    static
    uint max_main_denominator()
    {
      return self()->mMax_main_denominator;
    }

    /**
      Is Max. main denominator Immutable
    */
    static
    bool isMax_main_denominatorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "max_main_denominator" ) );
    }

    /**
      Set Answer reduced fractions
    */
    static
    void setReduceForm( uint v )
    {
      if (!self()->isReduceFormImmutable())
        self()->mReduceForm = v;
    }

    /**
      Get Answer reduced fractions
    */
    static
    uint reduceForm()
    {
      return self()->mReduceForm;
    }

    /**
      Is Answer reduced fractions Immutable
    */
    static
    bool isReduceFormImmutable()
    {
      return self()->isImmutable( QStringLiteral( "reduceForm" ) );
    }

    /**
      Set Mixed number
    */
    static
    void setSolutionMixed( bool v )
    {
      if (!self()->isSolutionMixedImmutable())
        self()->mSolutionMixed = v;
    }

    /**
      Get Mixed number
    */
    static
    bool solutionMixed()
    {
      return self()->mSolutionMixed;
    }

    /**
      Is Mixed number Immutable
    */
    static
    bool isSolutionMixedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "solutionMixed" ) );
    }

    /**
      Set Mixed number
    */
    static
    void setAnswerMixed( bool v )
    {
      if (!self()->isAnswerMixedImmutable())
        self()->mAnswerMixed = v;
    }

    /**
      Get Mixed number
    */
    static
    bool answerMixed()
    {
      return self()->mAnswerMixed;
    }

    /**
      Is Mixed number Immutable
    */
    static
    bool isAnswerMixedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "answerMixed" ) );
    }

    /**
      Set Mixed number
    */
    static
    void setQuestionMixed( bool v )
    {
      if (!self()->isQuestionMixedImmutable())
        self()->mQuestionMixed = v;
    }

    /**
      Get Mixed number
    */
    static
    bool questionMixed()
    {
      return self()->mQuestionMixed;
    }

    /**
      Is Mixed number Immutable
    */
    static
    bool isQuestionMixedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "questionMixed" ) );
    }

    /**
      Set Number of correctly solved tasks
    */
    static
    void setCorrect( int v )
    {
      if (!self()->isCorrectImmutable())
        self()->mCorrect = v;
    }

    /**
      Get Number of correctly solved tasks
    */
    static
    int correct()
    {
      return self()->mCorrect;
    }

    /**
      Is Number of correctly solved tasks Immutable
    */
    static
    bool isCorrectImmutable()
    {
      return self()->isImmutable( QStringLiteral( "correct" ) );
    }

    /**
      Set Number of solved tasks
    */
    static
    void setCount( int v )
    {
      if (!self()->isCountImmutable())
        self()->mCount = v;
    }

    /**
      Get Number of solved tasks
    */
    static
    int count()
    {
      return self()->mCount;
    }

    /**
      Is Number of solved tasks Immutable
    */
    static
    bool isCountImmutable()
    {
      return self()->isImmutable( QStringLiteral( "count" ) );
    }

    /**
      Set Number of skipped tasks
    */
    static
    void setSkipped( int v )
    {
      if (!self()->isSkippedImmutable())
        self()->mSkipped = v;
    }

    /**
      Get Number of skipped tasks
    */
    static
    int skipped()
    {
      return self()->mSkipped;
    }

    /**
      Is Number of skipped tasks Immutable
    */
    static
    bool isSkippedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "skipped" ) );
    }

    /**
      Set Color of the numbers in the task view
    */
    static
    void setNumberColor( const QColor & v )
    {
      if (!self()->isNumberColorImmutable())
        self()->mNumberColor = v;
    }

    /**
      Get Color of the numbers in the task view
    */
    static
    QColor numberColor()
    {
      return self()->mNumberColor;
    }

    /**
      Is Color of the numbers in the task view Immutable
    */
    static
    bool isNumberColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "numberColor" ) );
    }

    /**
      Set Color of the operation signs in the task view
    */
    static
    void setOperationColor( const QColor & v )
    {
      if (!self()->isOperationColorImmutable())
        self()->mOperationColor = v;
    }

    /**
      Get Color of the operation signs in the task view
    */
    static
    QColor operationColor()
    {
      return self()->mOperationColor;
    }

    /**
      Is Color of the operation signs in the task view Immutable
    */
    static
    bool isOperationColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "operationColor" ) );
    }

    /**
      Set Color of the fraction bars in the task view
    */
    static
    void setFractionBarColor( const QColor & v )
    {
      if (!self()->isFractionBarColorImmutable())
        self()->mFractionBarColor = v;
    }

    /**
      Get Color of the fraction bars in the task view
    */
    static
    QColor fractionBarColor()
    {
      return self()->mFractionBarColor;
    }

    /**
      Is Color of the fraction bars in the task view Immutable
    */
    static
    bool isFractionBarColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fractionBarColor" ) );
    }

    /**
      Set Font used for the task view
    */
    static
    void setTaskFont( const QFont & v )
    {
      if (!self()->isTaskFontImmutable())
        self()->mTaskFont = v;
    }

    /**
      Get Font used for the task view
    */
    static
    QFont taskFont()
    {
      return self()->mTaskFont;
    }

    /**
      Is Font used for the task view Immutable
    */
    static
    bool isTaskFontImmutable()
    {
      return self()->isImmutable( QStringLiteral( "taskFont" ) );
    }

    /**
      Set Enable showing the result also as a mixed number
    */
    static
    void setShowSpecialRatioNotation( bool v )
    {
      if (!self()->isShowSpecialRatioNotationImmutable())
        self()->mShowSpecialRatioNotation = v;
    }

    /**
      Get Enable showing the result also as a mixed number
    */
    static
    bool showSpecialRatioNotation()
    {
      return self()->mShowSpecialRatioNotation;
    }

    /**
      Is Enable showing the result also as a mixed number Immutable
    */
    static
    bool isShowSpecialRatioNotationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showSpecialRatioNotation" ) );
    }

  protected:
    SettingsClass();
    friend class SettingsClassHelper;


    // General
    int mActiveExercise;

    // Task
    bool mAddadd;
    bool mAddsub;
    bool mAdddiv;
    bool mAddmult;
    bool mMuldiv;
    uint mNumber_ratios;
    uint mMax_main_denominator;
    uint mReduceForm;
    bool mSolutionMixed;
    bool mAnswerMixed;
    bool mQuestionMixed;

    // Statistics
    int mCorrect;
    int mCount;
    int mSkipped;

    // TaskViewer
    QColor mNumberColor;
    QColor mOperationColor;
    QColor mFractionBarColor;
    QFont mTaskFont;
    bool mShowSpecialRatioNotation;
};

#endif

