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

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

class Settings : public KConfigSkeleton
{
  public:

    static Settings *self();
    ~Settings();

    /**
      Set printMulti
    */
    static
    void setPrintMulti( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "PrintMulti" ) ))
        self()->mPrintMulti = v;
    }

    /**
      Get printMulti
    */
    static
    bool printMulti()
    {
      return self()->mPrintMulti;
    }

    /**
      Set showHighlights
    */
    static
    void setShowHighlights( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "ShowHighlights" ) ))
        self()->mShowHighlights = v;
    }

    /**
      Get showHighlights
    */
    static
    bool showHighlights()
    {
      return self()->mShowHighlights;
    }

    /**
      Set showErrors
    */
    static
    void setShowErrors( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "ShowErrors" ) ))
        self()->mShowErrors = v;
    }

    /**
      Get showErrors
    */
    static
    bool showErrors()
    {
      return self()->mShowErrors;
    }

    /**
      Set showHighlights3D
    */
    static
    void setShowHighlights3D( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "ShowHighlights3D" ) ))
        self()->mShowHighlights3D = v;
    }

    /**
      Get showHighlights3D
    */
    static
    bool showHighlights3D()
    {
      return self()->mShowHighlights3D;
    }

    /**
      Set mathdokuSize
    */
    static
    void setMathdokuSize( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "MathdokuSize" ) ))
        self()->mMathdokuSize = v;
    }

    /**
      Get mathdokuSize
    */
    static
    int mathdokuSize()
    {
      return self()->mMathdokuSize;
    }

    /**
      Set overallSize3D
    */
    static
    void setOverallSize3D( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "OverallSize3D" ) ))
        self()->mOverallSize3D = v;
    }

    /**
      Get overallSize3D
    */
    static
    int overallSize3D()
    {
      return self()->mOverallSize3D;
    }

    /**
      Set selectionSize3D
    */
    static
    void setSelectionSize3D( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "SelectionSize3D" ) ))
        self()->mSelectionSize3D = v;
    }

    /**
      Get selectionSize3D
    */
    static
    int selectionSize3D()
    {
      return self()->mSelectionSize3D;
    }

    /**
      Set highlightedSize3D
    */
    static
    void setHighlightedSize3D( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "HighlightedSize3D" ) ))
        self()->mHighlightedSize3D = v;
    }

    /**
      Get highlightedSize3D
    */
    static
    int highlightedSize3D()
    {
      return self()->mHighlightedSize3D;
    }

    /**
      Set outerCellSize3D
    */
    static
    void setOuterCellSize3D( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "OuterCellSize3D" ) ))
        self()->mOuterCellSize3D = v;
    }

    /**
      Get outerCellSize3D
    */
    static
    int outerCellSize3D()
    {
      return self()->mOuterCellSize3D;
    }

    /**
      Set darkenOuterCells3D
    */
    static
    void setDarkenOuterCells3D( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "DarkenOuterCells3D" ) ))
        self()->mDarkenOuterCells3D = v;
    }

    /**
      Get darkenOuterCells3D
    */
    static
    bool darkenOuterCells3D()
    {
      return self()->mDarkenOuterCells3D;
    }

    /**
      Set The graphical theme to be used.
    */
    static
    void setTheme( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Theme" ) ))
        self()->mTheme = v;
    }

    /**
      Get The graphical theme to be used.
    */
    static
    QString theme()
    {
      return self()->mTheme;
    }

    /**
      Set Select the themes you want to use
    */
    static
    void setSymbols( const QStringList & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Symbols" ) ))
        self()->mSymbols = v;
    }

    /**
      Get Select the themes you want to use
    */
    static
    QStringList symbols()
    {
      return self()->mSymbols;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // Options
    bool mPrintMulti;
    bool mShowHighlights;
    bool mShowErrors;
    bool mShowHighlights3D;
    int mMathdokuSize;
    int mOverallSize3D;
    int mSelectionSize3D;
    int mHighlightedSize3D;
    int mOuterCellSize3D;
    bool mDarkenOuterCells3D;

    // Themes
    QString mTheme;
    QStringList mSymbols;

  private:
};

#endif

