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

#include <qapplication.h>
#include "textautocorrectioncore_export.h"

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

namespace TextAutoCorrectionCore {

class TEXTAUTOCORRECTIONCORE_EXPORT TextAutoCorrectionSettingsBase : public KConfigSkeleton
{
  public:

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

    /**
      Set enabled
    */
    static
    void setEnabled( bool v )
    {
      if (!self()->isEnabledImmutable())
        self()->mEnabled = v;
    }

    /**
      Get enabled
    */
    static
    bool enabled()
    {
      return self()->mEnabled;
    }

    /**
      Is enabled Immutable
    */
    static
    bool isEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Enabled" ) );
    }

    /**
      Get Item object corresponding to Enabled()
    */
    ItemBool *enabledItem()
    {
      return mEnabledItem;
    }

    /**
      Set upper-case-first-char-of-sentence
    */
    static
    void setUppercaseFirstCharOfSentence( bool v )
    {
      if (!self()->isUppercaseFirstCharOfSentenceImmutable())
        self()->mUppercaseFirstCharOfSentence = v;
    }

    /**
      Get upper-case-first-char-of-sentence
    */
    static
    bool uppercaseFirstCharOfSentence()
    {
      return self()->mUppercaseFirstCharOfSentence;
    }

    /**
      Is upper-case-first-char-of-sentence Immutable
    */
    static
    bool isUppercaseFirstCharOfSentenceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UppercaseFirstCharOfSentence" ) );
    }

    /**
      Get Item object corresponding to UppercaseFirstCharOfSentence()
    */
    ItemBool *uppercaseFirstCharOfSentenceItem()
    {
      return mUppercaseFirstCharOfSentenceItem;
    }

    /**
      Set fix-two-upper-case-chars
    */
    static
    void setFixTwoUppercaseChars( bool v )
    {
      if (!self()->isFixTwoUppercaseCharsImmutable())
        self()->mFixTwoUppercaseChars = v;
    }

    /**
      Get fix-two-upper-case-chars
    */
    static
    bool fixTwoUppercaseChars()
    {
      return self()->mFixTwoUppercaseChars;
    }

    /**
      Is fix-two-upper-case-chars Immutable
    */
    static
    bool isFixTwoUppercaseCharsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FixTwoUppercaseChars" ) );
    }

    /**
      Get Item object corresponding to FixTwoUppercaseChars()
    */
    ItemBool *fixTwoUppercaseCharsItem()
    {
      return mFixTwoUppercaseCharsItem;
    }

    /**
      Set single-spaces
    */
    static
    void setSingleSpaces( bool v )
    {
      if (!self()->isSingleSpacesImmutable())
        self()->mSingleSpaces = v;
    }

    /**
      Get single-spaces
    */
    static
    bool singleSpaces()
    {
      return self()->mSingleSpaces;
    }

    /**
      Is single-spaces Immutable
    */
    static
    bool isSingleSpacesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SingleSpaces" ) );
    }

    /**
      Get Item object corresponding to SingleSpaces()
    */
    ItemBool *singleSpacesItem()
    {
      return mSingleSpacesItem;
    }

    /**
      Set auto-fractions
    */
    static
    void setAutoFractions( bool v )
    {
      if (!self()->isAutoFractionsImmutable())
        self()->mAutoFractions = v;
    }

    /**
      Get auto-fractions
    */
    static
    bool autoFractions()
    {
      return self()->mAutoFractions;
    }

    /**
      Is auto-fractions Immutable
    */
    static
    bool isAutoFractionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoFractions" ) );
    }

    /**
      Get Item object corresponding to AutoFractions()
    */
    ItemBool *autoFractionsItem()
    {
      return mAutoFractionsItem;
    }

    /**
      Set capitalize-week-days
    */
    static
    void setCapitalizeWeekDays( bool v )
    {
      if (!self()->isCapitalizeWeekDaysImmutable())
        self()->mCapitalizeWeekDays = v;
    }

    /**
      Get capitalize-week-days
    */
    static
    bool capitalizeWeekDays()
    {
      return self()->mCapitalizeWeekDays;
    }

    /**
      Is capitalize-week-days Immutable
    */
    static
    bool isCapitalizeWeekDaysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CapitalizeWeekDays" ) );
    }

    /**
      Get Item object corresponding to CapitalizeWeekDays()
    */
    ItemBool *capitalizeWeekDaysItem()
    {
      return mCapitalizeWeekDaysItem;
    }

    /**
      Set advanced-autocorrect
    */
    static
    void setAdvancedAutocorrect( bool v )
    {
      if (!self()->isAdvancedAutocorrectImmutable())
        self()->mAdvancedAutocorrect = v;
    }

    /**
      Get advanced-autocorrect
    */
    static
    bool advancedAutocorrect()
    {
      return self()->mAdvancedAutocorrect;
    }

    /**
      Is advanced-autocorrect Immutable
    */
    static
    bool isAdvancedAutocorrectImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AdvancedAutocorrect" ) );
    }

    /**
      Get Item object corresponding to AdvancedAutocorrect()
    */
    ItemBool *advancedAutocorrectItem()
    {
      return mAdvancedAutocorrectItem;
    }

    /**
      Set replace-double-quotes
    */
    static
    void setReplaceDoubleQuotes( bool v )
    {
      if (!self()->isReplaceDoubleQuotesImmutable())
        self()->mReplaceDoubleQuotes = v;
    }

    /**
      Get replace-double-quotes
    */
    static
    bool replaceDoubleQuotes()
    {
      return self()->mReplaceDoubleQuotes;
    }

    /**
      Is replace-double-quotes Immutable
    */
    static
    bool isReplaceDoubleQuotesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplaceDoubleQuotes" ) );
    }

    /**
      Get Item object corresponding to ReplaceDoubleQuotes()
    */
    ItemBool *replaceDoubleQuotesItem()
    {
      return mReplaceDoubleQuotesItem;
    }

    /**
      Set replace-single-quotes
    */
    static
    void setReplaceSingleQuotes( bool v )
    {
      if (!self()->isReplaceSingleQuotesImmutable())
        self()->mReplaceSingleQuotes = v;
    }

    /**
      Get replace-single-quotes
    */
    static
    bool replaceSingleQuotes()
    {
      return self()->mReplaceSingleQuotes;
    }

    /**
      Is replace-single-quotes Immutable
    */
    static
    bool isReplaceSingleQuotesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplaceSingleQuotes" ) );
    }

    /**
      Get Item object corresponding to ReplaceSingleQuotes()
    */
    ItemBool *replaceSingleQuotesItem()
    {
      return mReplaceSingleQuotesItem;
    }

    /**
      Set autoformat-url
    */
    static
    void setAutoFormatUrl( bool v )
    {
      if (!self()->isAutoFormatUrlImmutable())
        self()->mAutoFormatUrl = v;
    }

    /**
      Get autoformat-url
    */
    static
    bool autoFormatUrl()
    {
      return self()->mAutoFormatUrl;
    }

    /**
      Is autoformat-url Immutable
    */
    static
    bool isAutoFormatUrlImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoFormatUrl" ) );
    }

    /**
      Get Item object corresponding to AutoFormatUrl()
    */
    ItemBool *autoFormatUrlItem()
    {
      return mAutoFormatUrlItem;
    }

    /**
      Set auto-bold-underline
    */
    static
    void setAutoBoldUnderline( bool v )
    {
      if (!self()->isAutoBoldUnderlineImmutable())
        self()->mAutoBoldUnderline = v;
    }

    /**
      Get auto-bold-underline
    */
    static
    bool autoBoldUnderline()
    {
      return self()->mAutoBoldUnderline;
    }

    /**
      Is auto-bold-underline Immutable
    */
    static
    bool isAutoBoldUnderlineImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoBoldUnderline" ) );
    }

    /**
      Get Item object corresponding to AutoBoldUnderline()
    */
    ItemBool *autoBoldUnderlineItem()
    {
      return mAutoBoldUnderlineItem;
    }

    /**
      Set super-script
    */
    static
    void setSuperScript( bool v )
    {
      if (!self()->isSuperScriptImmutable())
        self()->mSuperScript = v;
    }

    /**
      Get super-script
    */
    static
    bool superScript()
    {
      return self()->mSuperScript;
    }

    /**
      Is super-script Immutable
    */
    static
    bool isSuperScriptImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SuperScript" ) );
    }

    /**
      Get Item object corresponding to SuperScript()
    */
    ItemBool *superScriptItem()
    {
      return mSuperScriptItem;
    }

    /**
      Set add-non-breaking-space
    */
    static
    void setAddNonBreakingSpaceInFrench( bool v )
    {
      if (!self()->isAddNonBreakingSpaceInFrenchImmutable())
        self()->mAddNonBreakingSpaceInFrench = v;
    }

    /**
      Get add-non-breaking-space
    */
    static
    bool addNonBreakingSpaceInFrench()
    {
      return self()->mAddNonBreakingSpaceInFrench;
    }

    /**
      Is add-non-breaking-space Immutable
    */
    static
    bool isAddNonBreakingSpaceInFrenchImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AddNonBreakingSpaceInFrench" ) );
    }

    /**
      Get Item object corresponding to AddNonBreakingSpaceInFrench()
    */
    ItemBool *addNonBreakingSpaceInFrenchItem()
    {
      return mAddNonBreakingSpaceInFrenchItem;
    }

    /**
      Set replace-double-quotes-by-french-quotes
    */
    static
    void setReplaceDoubleQuotesByFrenchQuotes( bool v )
    {
      if (!self()->isReplaceDoubleQuotesByFrenchQuotesImmutable())
        self()->mReplaceDoubleQuotesByFrenchQuotes = v;
    }

    /**
      Get replace-double-quotes-by-french-quotes
    */
    static
    bool replaceDoubleQuotesByFrenchQuotes()
    {
      return self()->mReplaceDoubleQuotesByFrenchQuotes;
    }

    /**
      Is replace-double-quotes-by-french-quotes Immutable
    */
    static
    bool isReplaceDoubleQuotesByFrenchQuotesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplaceDoubleQuotesByFrenchQuotes" ) );
    }

    /**
      Get Item object corresponding to ReplaceDoubleQuotesByFrenchQuotes()
    */
    ItemBool *replaceDoubleQuotesByFrenchQuotesItem()
    {
      return mReplaceDoubleQuotesByFrenchQuotesItem;
    }

    /**
      Set typographic-single-quotes
    */
    static
    void setTypographicSingleQuotes( const QString & v )
    {
      if (!self()->isTypographicSingleQuotesImmutable())
        self()->mTypographicSingleQuotes = v;
    }

    /**
      Get typographic-single-quotes
    */
    static
    QString typographicSingleQuotes()
    {
      return self()->mTypographicSingleQuotes;
    }

    /**
      Is typographic-single-quotes Immutable
    */
    static
    bool isTypographicSingleQuotesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TypographicSingleQuotes" ) );
    }

    /**
      Get Item object corresponding to TypographicSingleQuotes()
    */
    ItemString *typographicSingleQuotesItem()
    {
      return mTypographicSingleQuotesItem;
    }

    /**
      Set typographic-double-quotes
    */
    static
    void setTypographicDoubleQuotes( const QString & v )
    {
      if (!self()->isTypographicDoubleQuotesImmutable())
        self()->mTypographicDoubleQuotes = v;
    }

    /**
      Get typographic-double-quotes
    */
    static
    QString typographicDoubleQuotes()
    {
      return self()->mTypographicDoubleQuotes;
    }

    /**
      Is typographic-double-quotes Immutable
    */
    static
    bool isTypographicDoubleQuotesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TypographicDoubleQuotes" ) );
    }

    /**
      Get Item object corresponding to TypographicDoubleQuotes()
    */
    ItemString *typographicDoubleQuotesItem()
    {
      return mTypographicDoubleQuotesItem;
    }

    /**
      Set custom-writable-path
    */
    static
    void setCustomWritablePath( const QString & v )
    {
      if (!self()->isCustomWritablePathImmutable())
        self()->mCustomWritablePath = v;
    }

    /**
      Get custom-writable-path
    */
    static
    QString customWritablePath()
    {
      return self()->mCustomWritablePath;
    }

    /**
      Is custom-writable-path Immutable
    */
    static
    bool isCustomWritablePathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomWritablePath" ) );
    }

    /**
      Get Item object corresponding to CustomWritablePath()
    */
    ItemString *customWritablePathItem()
    {
      return mCustomWritablePathItem;
    }

    /**
      Set custom-system-path
    */
    static
    void setCustomSystemPath( const QString & v )
    {
      if (!self()->isCustomSystemPathImmutable())
        self()->mCustomSystemPath = v;
    }

    /**
      Get custom-system-path
    */
    static
    QString customSystemPath()
    {
      return self()->mCustomSystemPath;
    }

    /**
      Is custom-system-path Immutable
    */
    static
    bool isCustomSystemPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomSystemPath" ) );
    }

    /**
      Get Item object corresponding to CustomSystemPath()
    */
    ItemString *customSystemPathItem()
    {
      return mCustomSystemPathItem;
    }

  protected:
    TextAutoCorrectionSettingsBase();
    friend class TextAutoCorrectionSettingsBaseHelper;


    // Autocorrect
    bool mEnabled;
    bool mUppercaseFirstCharOfSentence;
    bool mFixTwoUppercaseChars;
    bool mSingleSpaces;
    bool mAutoFractions;
    bool mCapitalizeWeekDays;
    bool mAdvancedAutocorrect;
    bool mReplaceDoubleQuotes;
    bool mReplaceSingleQuotes;
    bool mAutoFormatUrl;
    bool mAutoBoldUnderline;
    bool mSuperScript;
    bool mAddNonBreakingSpaceInFrench;
    bool mReplaceDoubleQuotesByFrenchQuotes;
    QString mTypographicSingleQuotes;
    QString mTypographicDoubleQuotes;
    QString mCustomWritablePath;
    QString mCustomSystemPath;

  private:
    ItemBool *mEnabledItem;
    ItemBool *mUppercaseFirstCharOfSentenceItem;
    ItemBool *mFixTwoUppercaseCharsItem;
    ItemBool *mSingleSpacesItem;
    ItemBool *mAutoFractionsItem;
    ItemBool *mCapitalizeWeekDaysItem;
    ItemBool *mAdvancedAutocorrectItem;
    ItemBool *mReplaceDoubleQuotesItem;
    ItemBool *mReplaceSingleQuotesItem;
    ItemBool *mAutoFormatUrlItem;
    ItemBool *mAutoBoldUnderlineItem;
    ItemBool *mSuperScriptItem;
    ItemBool *mAddNonBreakingSpaceInFrenchItem;
    ItemBool *mReplaceDoubleQuotesByFrenchQuotesItem;
    ItemString *mTypographicSingleQuotesItem;
    ItemString *mTypographicDoubleQuotesItem;
    ItemString *mCustomWritablePathItem;
    ItemString *mCustomSystemPathItem;
};

}

#endif

