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

#include <drawyconfig_export.h>

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

class DRAWYCONFIG_EXPORT DrawyGlobalConfig : public KConfigSkeleton
{
  public:

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

    /**
      Set StrokeWidth
    */
    static
    void setStrokeWidth( int v )
    {
      if (!self()->isStrokeWidthImmutable())
        self()->mStrokeWidth = v;
    }

    /**
      Get StrokeWidth
    */
    static
    int strokeWidth()
    {
      return self()->mStrokeWidth;
    }

    /**
      Is StrokeWidth Immutable
    */
    static
    bool isStrokeWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StrokeWidth" ) );
    }

    /**
      Get Item object corresponding to StrokeWidth()
    */
    ItemInt *strokeWidthItem()
    {
      return mStrokeWidthItem;
    }

    /**
      Set FontSize
    */
    static
    void setFontSize( int v )
    {
      if (!self()->isFontSizeImmutable())
        self()->mFontSize = v;
    }

    /**
      Get FontSize
    */
    static
    int fontSize()
    {
      return self()->mFontSize;
    }

    /**
      Is FontSize Immutable
    */
    static
    bool isFontSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FontSize" ) );
    }

    /**
      Get Item object corresponding to FontSize()
    */
    ItemInt *fontSizeItem()
    {
      return mFontSizeItem;
    }

    /**
      Set EraserSize
    */
    static
    void setEraserSize( int v )
    {
      if (!self()->isEraserSizeImmutable())
        self()->mEraserSize = v;
    }

    /**
      Get EraserSize
    */
    static
    int eraserSize()
    {
      return self()->mEraserSize;
    }

    /**
      Is EraserSize Immutable
    */
    static
    bool isEraserSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EraserSize" ) );
    }

    /**
      Get Item object corresponding to EraserSize()
    */
    ItemInt *eraserSizeItem()
    {
      return mEraserSizeItem;
    }

    /**
      Set Delay
    */
    static
    void setDelay( int v )
    {
      if (!self()->isDelayImmutable())
        self()->mDelay = v;
    }

    /**
      Get Delay
    */
    static
    int delay()
    {
      return self()->mDelay;
    }

    /**
      Is Delay Immutable
    */
    static
    bool isDelayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Delay" ) );
    }

    /**
      Get Item object corresponding to Delay()
    */
    ItemInt *delayItem()
    {
      return mDelayItem;
    }

    /**
      Set Path
    */
    static
    void setPath( const QString & v )
    {
      if (!self()->isPathImmutable())
        self()->mPath = v;
    }

    /**
      Get Path
    */
    static
    QString path()
    {
      return self()->mPath;
    }

    /**
      Is Path Immutable
    */
    static
    bool isPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Path" ) );
    }

    /**
      Get Item object corresponding to Path()
    */
    ItemPath *pathItem()
    {
      return mPathItem;
    }

    /**
      Set AutoSaveEnabled
    */
    static
    void setAutoSaveEnabled( bool v )
    {
      if (!self()->isAutoSaveEnabledImmutable())
        self()->mAutoSaveEnabled = v;
    }

    /**
      Get AutoSaveEnabled
    */
    static
    bool autoSaveEnabled()
    {
      return self()->mAutoSaveEnabled;
    }

    /**
      Is AutoSaveEnabled Immutable
    */
    static
    bool isAutoSaveEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoSaveEnabled" ) );
    }

    /**
      Get Item object corresponding to AutoSaveEnabled()
    */
    ItemBool *autoSaveEnabledItem()
    {
      return mAutoSaveEnabledItem;
    }

    /**
      Set EnabledInFullScreen
    */
    static
    void setEnabledInFullScreen( bool v )
    {
      if (!self()->isEnabledInFullScreenImmutable())
        self()->mEnabledInFullScreen = v;
    }

    /**
      Get EnabledInFullScreen
    */
    static
    bool enabledInFullScreen()
    {
      return self()->mEnabledInFullScreen;
    }

    /**
      Is EnabledInFullScreen Immutable
    */
    static
    bool isEnabledInFullScreenImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnabledInFullScreen" ) );
    }

    /**
      Get Item object corresponding to EnabledInFullScreen()
    */
    ItemBool *enabledInFullScreenItem()
    {
      return mEnabledInFullScreenItem;
    }

    /**
      Set Streamline
    */
    static
    void setStreamline( double v )
    {
      if (!self()->isStreamlineImmutable())
        self()->mStreamline = v;
    }

    /**
      Get Streamline
    */
    static
    double streamline()
    {
      return self()->mStreamline;
    }

    /**
      Is Streamline Immutable
    */
    static
    bool isStreamlineImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Streamline" ) );
    }

    /**
      Get Item object corresponding to Streamline()
    */
    ItemDouble *streamlineItem()
    {
      return mStreamlineItem;
    }

    /**
      Set Thinning
    */
    static
    void setThinning( double v )
    {
      if (!self()->isThinningImmutable())
        self()->mThinning = v;
    }

    /**
      Get Thinning
    */
    static
    double thinning()
    {
      return self()->mThinning;
    }

    /**
      Is Thinning Immutable
    */
    static
    bool isThinningImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Thinning" ) );
    }

    /**
      Get Item object corresponding to Thinning()
    */
    ItemDouble *thinningItem()
    {
      return mThinningItem;
    }

    /**
      Set Smoothing
    */
    static
    void setSmoothing( double v )
    {
      if (!self()->isSmoothingImmutable())
        self()->mSmoothing = v;
    }

    /**
      Get Smoothing
    */
    static
    double smoothing()
    {
      return self()->mSmoothing;
    }

    /**
      Is Smoothing Immutable
    */
    static
    bool isSmoothingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Smoothing" ) );
    }

    /**
      Get Item object corresponding to Smoothing()
    */
    ItemDouble *smoothingItem()
    {
      return mSmoothingItem;
    }

    /**
      Set BackgroundColorLight
    */
    static
    void setBackgroundColorLight( const QColor & v )
    {
      if (!self()->isBackgroundColorLightImmutable())
        self()->mBackgroundColorLight = v;
    }

    /**
      Get BackgroundColorLight
    */
    static
    QColor backgroundColorLight()
    {
      return self()->mBackgroundColorLight;
    }

    /**
      Is BackgroundColorLight Immutable
    */
    static
    bool isBackgroundColorLightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BackgroundColorLight" ) );
    }

    /**
      Get Item object corresponding to BackgroundColorLight()
    */
    ItemColor *backgroundColorLightItem()
    {
      return mBackgroundColorLightItem;
    }

    /**
      Set BackgroundColorDark
    */
    static
    void setBackgroundColorDark( const QColor & v )
    {
      if (!self()->isBackgroundColorDarkImmutable())
        self()->mBackgroundColorDark = v;
    }

    /**
      Get BackgroundColorDark
    */
    static
    QColor backgroundColorDark()
    {
      return self()->mBackgroundColorDark;
    }

    /**
      Is BackgroundColorDark Immutable
    */
    static
    bool isBackgroundColorDarkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BackgroundColorDark" ) );
    }

    /**
      Get Item object corresponding to BackgroundColorDark()
    */
    ItemColor *backgroundColorDarkItem()
    {
      return mBackgroundColorDarkItem;
    }

    /**
      Set ForegroundColorLight
    */
    static
    void setForegroundColorLight( const QColor & v )
    {
      if (!self()->isForegroundColorLightImmutable())
        self()->mForegroundColorLight = v;
    }

    /**
      Get ForegroundColorLight
    */
    static
    QColor foregroundColorLight()
    {
      return self()->mForegroundColorLight;
    }

    /**
      Is ForegroundColorLight Immutable
    */
    static
    bool isForegroundColorLightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ForegroundColorLight" ) );
    }

    /**
      Get Item object corresponding to ForegroundColorLight()
    */
    ItemColor *foregroundColorLightItem()
    {
      return mForegroundColorLightItem;
    }

    /**
      Set ForegroundColorDark
    */
    static
    void setForegroundColorDark( const QColor & v )
    {
      if (!self()->isForegroundColorDarkImmutable())
        self()->mForegroundColorDark = v;
    }

    /**
      Get ForegroundColorDark
    */
    static
    QColor foregroundColorDark()
    {
      return self()->mForegroundColorDark;
    }

    /**
      Is ForegroundColorDark Immutable
    */
    static
    bool isForegroundColorDarkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ForegroundColorDark" ) );
    }

    /**
      Get Item object corresponding to ForegroundColorDark()
    */
    ItemColor *foregroundColorDarkItem()
    {
      return mForegroundColorDarkItem;
    }

    /**
      Set FirstColorLight
    */
    static
    void setFirstColorLight( const QColor & v )
    {
      if (!self()->isFirstColorLightImmutable())
        self()->mFirstColorLight = v;
    }

    /**
      Get FirstColorLight
    */
    static
    QColor firstColorLight()
    {
      return self()->mFirstColorLight;
    }

    /**
      Is FirstColorLight Immutable
    */
    static
    bool isFirstColorLightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FirstColorLight" ) );
    }

    /**
      Get Item object corresponding to FirstColorLight()
    */
    ItemColor *firstColorLightItem()
    {
      return mFirstColorLightItem;
    }

    /**
      Set FirstColorDark
    */
    static
    void setFirstColorDark( const QColor & v )
    {
      if (!self()->isFirstColorDarkImmutable())
        self()->mFirstColorDark = v;
    }

    /**
      Get FirstColorDark
    */
    static
    QColor firstColorDark()
    {
      return self()->mFirstColorDark;
    }

    /**
      Is FirstColorDark Immutable
    */
    static
    bool isFirstColorDarkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FirstColorDark" ) );
    }

    /**
      Get Item object corresponding to FirstColorDark()
    */
    ItemColor *firstColorDarkItem()
    {
      return mFirstColorDarkItem;
    }

    /**
      Set SecondColorLight
    */
    static
    void setSecondColorLight( const QColor & v )
    {
      if (!self()->isSecondColorLightImmutable())
        self()->mSecondColorLight = v;
    }

    /**
      Get SecondColorLight
    */
    static
    QColor secondColorLight()
    {
      return self()->mSecondColorLight;
    }

    /**
      Is SecondColorLight Immutable
    */
    static
    bool isSecondColorLightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SecondColorLight" ) );
    }

    /**
      Get Item object corresponding to SecondColorLight()
    */
    ItemColor *secondColorLightItem()
    {
      return mSecondColorLightItem;
    }

    /**
      Set SecondColorDark
    */
    static
    void setSecondColorDark( const QColor & v )
    {
      if (!self()->isSecondColorDarkImmutable())
        self()->mSecondColorDark = v;
    }

    /**
      Get SecondColorDark
    */
    static
    QColor secondColorDark()
    {
      return self()->mSecondColorDark;
    }

    /**
      Is SecondColorDark Immutable
    */
    static
    bool isSecondColorDarkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SecondColorDark" ) );
    }

    /**
      Get Item object corresponding to SecondColorDark()
    */
    ItemColor *secondColorDarkItem()
    {
      return mSecondColorDarkItem;
    }

    /**
      Set ThirdColorLight
    */
    static
    void setThirdColorLight( const QColor & v )
    {
      if (!self()->isThirdColorLightImmutable())
        self()->mThirdColorLight = v;
    }

    /**
      Get ThirdColorLight
    */
    static
    QColor thirdColorLight()
    {
      return self()->mThirdColorLight;
    }

    /**
      Is ThirdColorLight Immutable
    */
    static
    bool isThirdColorLightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ThirdColorLight" ) );
    }

    /**
      Get Item object corresponding to ThirdColorLight()
    */
    ItemColor *thirdColorLightItem()
    {
      return mThirdColorLightItem;
    }

    /**
      Set ThirdColorDark
    */
    static
    void setThirdColorDark( const QColor & v )
    {
      if (!self()->isThirdColorDarkImmutable())
        self()->mThirdColorDark = v;
    }

    /**
      Get ThirdColorDark
    */
    static
    QColor thirdColorDark()
    {
      return self()->mThirdColorDark;
    }

    /**
      Is ThirdColorDark Immutable
    */
    static
    bool isThirdColorDarkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ThirdColorDark" ) );
    }

    /**
      Get Item object corresponding to ThirdColorDark()
    */
    ItemColor *thirdColorDarkItem()
    {
      return mThirdColorDarkItem;
    }

    /**
      Set FourthColorLight
    */
    static
    void setFourthColorLight( const QColor & v )
    {
      if (!self()->isFourthColorLightImmutable())
        self()->mFourthColorLight = v;
    }

    /**
      Get FourthColorLight
    */
    static
    QColor fourthColorLight()
    {
      return self()->mFourthColorLight;
    }

    /**
      Is FourthColorLight Immutable
    */
    static
    bool isFourthColorLightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FourthColorLight" ) );
    }

    /**
      Get Item object corresponding to FourthColorLight()
    */
    ItemColor *fourthColorLightItem()
    {
      return mFourthColorLightItem;
    }

    /**
      Set FourthColorDark
    */
    static
    void setFourthColorDark( const QColor & v )
    {
      if (!self()->isFourthColorDarkImmutable())
        self()->mFourthColorDark = v;
    }

    /**
      Get FourthColorDark
    */
    static
    QColor fourthColorDark()
    {
      return self()->mFourthColorDark;
    }

    /**
      Is FourthColorDark Immutable
    */
    static
    bool isFourthColorDarkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FourthColorDark" ) );
    }

    /**
      Get Item object corresponding to FourthColorDark()
    */
    ItemColor *fourthColorDarkItem()
    {
      return mFourthColorDarkItem;
    }

  protected:
    DrawyGlobalConfig();
    friend class DrawyGlobalConfigHelper;


    // Properties
    int mStrokeWidth;
    int mFontSize;
    int mEraserSize;

    // AutoSave
    int mDelay;
    QString mPath;
    bool mAutoSaveEnabled;

    // PowerManager
    bool mEnabledInFullScreen;

    // Freehand
    double mStreamline;
    double mThinning;
    double mSmoothing;

    // Canvas
    QColor mBackgroundColorLight;
    QColor mBackgroundColorDark;

    // Palette
    QColor mForegroundColorLight;
    QColor mForegroundColorDark;
    QColor mFirstColorLight;
    QColor mFirstColorDark;
    QColor mSecondColorLight;
    QColor mSecondColorDark;
    QColor mThirdColorLight;
    QColor mThirdColorDark;
    QColor mFourthColorLight;
    QColor mFourthColorDark;

  private:
    ItemInt *mStrokeWidthItem;
    ItemInt *mFontSizeItem;
    ItemInt *mEraserSizeItem;
    ItemInt *mDelayItem;
    ItemPath *mPathItem;
    ItemBool *mAutoSaveEnabledItem;
    ItemBool *mEnabledInFullScreenItem;
    ItemDouble *mStreamlineItem;
    ItemDouble *mThinningItem;
    ItemDouble *mSmoothingItem;
    ItemColor *mBackgroundColorLightItem;
    ItemColor *mBackgroundColorDarkItem;
    ItemColor *mForegroundColorLightItem;
    ItemColor *mForegroundColorDarkItem;
    ItemColor *mFirstColorLightItem;
    ItemColor *mFirstColorDarkItem;
    ItemColor *mSecondColorLightItem;
    ItemColor *mSecondColorDarkItem;
    ItemColor *mThirdColorLightItem;
    ItemColor *mThirdColorDarkItem;
    ItemColor *mFourthColorLightItem;
    ItemColor *mFourthColorDarkItem;
};

#endif

