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

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

class SCConfig : public KConfigSkeleton
{
  public:

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

    /**
      Set Default Subtitles Encoding
    */
    static
    void setDefaultSubtitlesEncoding( const QString & v )
    {
      if (!self()->isDefaultSubtitlesEncodingImmutable())
        self()->mDefaultSubtitlesEncoding = v;
    }

    /**
      Get Default Subtitles Encoding
    */
    static
    QString defaultSubtitlesEncoding()
    {
      return self()->mDefaultSubtitlesEncoding;
    }

    /**
      Is Default Subtitles Encoding Immutable
    */
    static
    bool isDefaultSubtitlesEncodingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DefaultSubtitlesEncoding" ) );
    }

    /**
      Set Line Break Character
    */
    static
    void setTextLineBreak( int v )
    {
      if (!self()->isTextLineBreakImmutable())
        self()->mTextLineBreak = v;
    }

    /**
      Get Line Break Character
    */
    static
    int textLineBreak()
    {
      return self()->mTextLineBreak;
    }

    /**
      Is Line Break Character Immutable
    */
    static
    bool isTextLineBreakImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TextLineBreak" ) );
    }

    /**
      Set Seek Offset On Double Click
    */
    static
    void setSeekOffsetOnDoubleClick( int v )
    {
      if (!self()->isSeekOffsetOnDoubleClickImmutable())
        self()->mSeekOffsetOnDoubleClick = v;
    }

    /**
      Get Seek Offset On Double Click
    */
    static
    int seekOffsetOnDoubleClick()
    {
      return self()->mSeekOffsetOnDoubleClick;
    }

    /**
      Is Seek Offset On Double Click Immutable
    */
    static
    bool isSeekOffsetOnDoubleClickImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SeekOffsetOnDoubleClick" ) );
    }

    /**
      Set Jump to prev/next line offset
    */
    static
    void setJumpLineOffset( int v )
    {
      if (!self()->isJumpLineOffsetImmutable())
        self()->mJumpLineOffset = v;
    }

    /**
      Get Jump to prev/next line offset
    */
    static
    int jumpLineOffset()
    {
      return self()->mJumpLineOffset;
    }

    /**
      Is Jump to prev/next line offset Immutable
    */
    static
    bool isJumpLineOffsetImmutable()
    {
      return self()->isImmutable( QStringLiteral( "JumpLineOffset" ) );
    }

    /**
      Set Unpause On Double Click
    */
    static
    void setUnpauseOnDoubleClick( bool v )
    {
      if (!self()->isUnpauseOnDoubleClickImmutable())
        self()->mUnpauseOnDoubleClick = v;
    }

    /**
      Get Unpause On Double Click
    */
    static
    bool unpauseOnDoubleClick()
    {
      return self()->mUnpauseOnDoubleClick;
    }

    /**
      Is Unpause On Double Click Immutable
    */
    static
    bool isUnpauseOnDoubleClickImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UnpauseOnDoubleClick" ) );
    }

    /**
      Set Automatic Video Load
    */
    static
    void setAutomaticVideoLoad( bool v )
    {
      if (!self()->isAutomaticVideoLoadImmutable())
        self()->mAutomaticVideoLoad = v;
    }

    /**
      Get Automatic Video Load
    */
    static
    bool automaticVideoLoad()
    {
      return self()->mAutomaticVideoLoad;
    }

    /**
      Is Automatic Video Load Immutable
    */
    static
    bool isAutomaticVideoLoadImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutomaticVideoLoad" ) );
    }

    /**
      Set Lines Quick Shift Amount
    */
    static
    void setLinesQuickShiftAmount( int v )
    {
      if (!self()->isLinesQuickShiftAmountImmutable())
        self()->mLinesQuickShiftAmount = v;
    }

    /**
      Get Lines Quick Shift Amount
    */
    static
    int linesQuickShiftAmount()
    {
      return self()->mLinesQuickShiftAmount;
    }

    /**
      Is Lines Quick Shift Amount Immutable
    */
    static
    bool isLinesQuickShiftAmountImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LinesQuickShiftAmount" ) );
    }

    /**
      Set Grabbed Position Compensation
    */
    static
    void setGrabbedPositionCompensation( int v )
    {
      if (!self()->isGrabbedPositionCompensationImmutable())
        self()->mGrabbedPositionCompensation = v;
    }

    /**
      Get Grabbed Position Compensation
    */
    static
    int grabbedPositionCompensation()
    {
      return self()->mGrabbedPositionCompensation;
    }

    /**
      Is Grabbed Position Compensation Immutable
    */
    static
    bool isGrabbedPositionCompensationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GrabbedPositionCompensation" ) );
    }

    /**
      Set Default subtitle line duration
    */
    static
    void setLineDuration( int v )
    {
      if (!self()->isLineDurationImmutable())
        self()->mLineDuration = v;
    }

    /**
      Get Default subtitle line duration
    */
    static
    int lineDuration()
    {
      return self()->mLineDuration;
    }

    /**
      Is Default subtitle line duration Immutable
    */
    static
    bool isLineDurationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LineDuration" ) );
    }

    /**
      Set Default duration between subtitle lines
    */
    static
    void setLinePause( int v )
    {
      if (!self()->isLinePauseImmutable())
        self()->mLinePause = v;
    }

    /**
      Get Default duration between subtitle lines
    */
    static
    int linePause()
    {
      return self()->mLinePause;
    }

    /**
      Is Default duration between subtitle lines Immutable
    */
    static
    bool isLinePauseImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LinePause" ) );
    }

    /**
      Set Maximum number of characters
    */
    static
    void setMaxCharacters( int v )
    {
      if (!self()->isMaxCharactersImmutable())
        self()->mMaxCharacters = v;
    }

    /**
      Get Maximum number of characters
    */
    static
    int maxCharacters()
    {
      return self()->mMaxCharacters;
    }

    /**
      Is Maximum number of characters Immutable
    */
    static
    bool isMaxCharactersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxCharacters" ) );
    }

    /**
      Set Maximum number of lines
    */
    static
    void setMaxLines( int v )
    {
      if (!self()->isMaxLinesImmutable())
        self()->mMaxLines = v;
    }

    /**
      Get Maximum number of lines
    */
    static
    int maxLines()
    {
      return self()->mMaxLines;
    }

    /**
      Is Maximum number of lines Immutable
    */
    static
    bool isMaxLinesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxLines" ) );
    }

    /**
      Set Maximum number of characters per line
    */
    static
    void setMaxCharactersPerLine( int v )
    {
      if (!self()->isMaxCharactersPerLineImmutable())
        self()->mMaxCharactersPerLine = v;
    }

    /**
      Get Maximum number of characters per line
    */
    static
    int maxCharactersPerLine()
    {
      return self()->mMaxCharactersPerLine;
    }

    /**
      Is Maximum number of characters per line Immutable
    */
    static
    bool isMaxCharactersPerLineImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxCharactersPerLine" ) );
    }

    /**
      Set Minimum duration
    */
    static
    void setMinDuration( int v )
    {
      if (!self()->isMinDurationImmutable())
        self()->mMinDuration = v;
    }

    /**
      Get Minimum duration
    */
    static
    int minDuration()
    {
      return self()->mMinDuration;
    }

    /**
      Is Minimum duration Immutable
    */
    static
    bool isMinDurationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinDuration" ) );
    }

    /**
      Set Maximum duration
    */
    static
    void setMaxDuration( int v )
    {
      if (!self()->isMaxDurationImmutable())
        self()->mMaxDuration = v;
    }

    /**
      Get Maximum duration
    */
    static
    int maxDuration()
    {
      return self()->mMaxDuration;
    }

    /**
      Is Maximum duration Immutable
    */
    static
    bool isMaxDurationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxDuration" ) );
    }

    /**
      Set Minimum duration per character
    */
    static
    void setMinDurationPerCharacter( int v )
    {
      if (!self()->isMinDurationPerCharacterImmutable())
        self()->mMinDurationPerCharacter = v;
    }

    /**
      Get Minimum duration per character
    */
    static
    int minDurationPerCharacter()
    {
      return self()->mMinDurationPerCharacter;
    }

    /**
      Is Minimum duration per character Immutable
    */
    static
    bool isMinDurationPerCharacterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinDurationPerCharacter" ) );
    }

    /**
      Set Ideal duration per character
    */
    static
    void setIdealDurationPerCharacter( int v )
    {
      if (!self()->isIdealDurationPerCharacterImmutable())
        self()->mIdealDurationPerCharacter = v;
    }

    /**
      Get Ideal duration per character
    */
    static
    int idealDurationPerCharacter()
    {
      return self()->mIdealDurationPerCharacter;
    }

    /**
      Is Ideal duration per character Immutable
    */
    static
    bool isIdealDurationPerCharacterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "IdealDurationPerCharacter" ) );
    }

    /**
      Set Maximum duration per character
    */
    static
    void setMaxDurationPerCharacter( int v )
    {
      if (!self()->isMaxDurationPerCharacterImmutable())
        self()->mMaxDurationPerCharacter = v;
    }

    /**
      Get Maximum duration per character
    */
    static
    int maxDurationPerCharacter()
    {
      return self()->mMaxDurationPerCharacter;
    }

    /**
      Is Maximum duration per character Immutable
    */
    static
    bool isMaxDurationPerCharacterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxDurationPerCharacter" ) );
    }

    /**
      Set Automatically clear fixed errors
    */
    static
    void setAutoClearFixed( bool v )
    {
      if (!self()->isAutoClearFixedImmutable())
        self()->mAutoClearFixed = v;
    }

    /**
      Get Automatically clear fixed errors
    */
    static
    bool autoClearFixed()
    {
      return self()->mAutoClearFixed;
    }

    /**
      Is Automatically clear fixed errors Immutable
    */
    static
    bool isAutoClearFixedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoClearFixed" ) );
    }

    /**
      Set Default Language
    */
    static
    void setDefaultLanguage( const QString & v )
    {
      if (!self()->isDefaultLanguageImmutable())
        self()->mDefaultLanguage = v;
    }

    /**
      Get Default Language
    */
    static
    QString defaultLanguage()
    {
      return self()->mDefaultLanguage;
    }

    /**
      Is Default Language Immutable
    */
    static
    bool isDefaultLanguageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DefaultLanguage" ) );
    }

    /**
      Set Auto detect language
    */
    static
    void setAutodetectLanguage( bool v )
    {
      if (!self()->isAutodetectLanguageImmutable())
        self()->mAutodetectLanguage = v;
    }

    /**
      Get Auto detect language
    */
    static
    bool autodetectLanguage()
    {
      return self()->mAutodetectLanguage;
    }

    /**
      Is Auto detect language Immutable
    */
    static
    bool isAutodetectLanguageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "autodetectLanguage" ) );
    }

    /**
      Set Default client
    */
    static
    void setDefaultClient( const QString & v )
    {
      if (!self()->isDefaultClientImmutable())
        self()->mDefaultClient = v;
    }

    /**
      Get Default client
    */
    static
    QString defaultClient()
    {
      return self()->mDefaultClient;
    }

    /**
      Is Default client Immutable
    */
    static
    bool isDefaultClientImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DefaultClient" ) );
    }

    /**
      Set Background checker enabled
    */
    static
    void setBackgroundCheckerEnabled( bool v )
    {
      if (!self()->isBackgroundCheckerEnabledImmutable())
        self()->mBackgroundCheckerEnabled = v;
    }

    /**
      Get Background checker enabled
    */
    static
    bool backgroundCheckerEnabled()
    {
      return self()->mBackgroundCheckerEnabled;
    }

    /**
      Is Background checker enabled Immutable
    */
    static
    bool isBackgroundCheckerEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "backgroundCheckerEnabled" ) );
    }

    /**
      Set Checker enabled by default
    */
    static
    void setCheckerEnabledByDefault( bool v )
    {
      if (!self()->isCheckerEnabledByDefaultImmutable())
        self()->mCheckerEnabledByDefault = v;
    }

    /**
      Get Checker enabled by default
    */
    static
    bool checkerEnabledByDefault()
    {
      return self()->mCheckerEnabledByDefault;
    }

    /**
      Is Checker enabled by default Immutable
    */
    static
    bool isCheckerEnabledByDefaultImmutable()
    {
      return self()->isImmutable( QStringLiteral( "checkerEnabledByDefault" ) );
    }

    /**
      Set Skip uppercase
    */
    static
    void setSkipUppercase( bool v )
    {
      if (!self()->isSkipUppercaseImmutable())
        self()->mSkipUppercase = v;
    }

    /**
      Get Skip uppercase
    */
    static
    bool skipUppercase()
    {
      return self()->mSkipUppercase;
    }

    /**
      Is Skip uppercase Immutable
    */
    static
    bool isSkipUppercaseImmutable()
    {
      return self()->isImmutable( QStringLiteral( "skipUppercase" ) );
    }

    /**
      Set Skip Run Together
    */
    static
    void setSkipRunTogether( bool v )
    {
      if (!self()->isSkipRunTogetherImmutable())
        self()->mSkipRunTogether = v;
    }

    /**
      Get Skip Run Together
    */
    static
    bool skipRunTogether()
    {
      return self()->mSkipRunTogether;
    }

    /**
      Is Skip Run Together Immutable
    */
    static
    bool isSkipRunTogetherImmutable()
    {
      return self()->isImmutable( QStringLiteral( "skipRunTogether" ) );
    }

    /**
      Set Waveform Inner Color
    */
    static
    void setWfInnerColor( const QString & v )
    {
      if (!self()->isWfInnerColorImmutable())
        self()->mWfInnerColor = v;
    }

    /**
      Get Waveform Inner Color
    */
    static
    QString wfInnerColor()
    {
      return self()->mWfInnerColor;
    }

    /**
      Is Waveform Inner Color Immutable
    */
    static
    bool isWfInnerColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfInnerColor" ) );
    }

    /**
      Set Waveform Outer Color
    */
    static
    void setWfOuterColor( const QString & v )
    {
      if (!self()->isWfOuterColorImmutable())
        self()->mWfOuterColor = v;
    }

    /**
      Get Waveform Outer Color
    */
    static
    QString wfOuterColor()
    {
      return self()->mWfOuterColor;
    }

    /**
      Is Waveform Outer Color Immutable
    */
    static
    bool isWfOuterColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfOuterColor" ) );
    }

    /**
      Set Waveform Smooth Scrolling
    */
    static
    void setWfSmoothScroll( bool v )
    {
      if (!self()->isWfSmoothScrollImmutable())
        self()->mWfSmoothScroll = v;
    }

    /**
      Get Waveform Smooth Scrolling
    */
    static
    bool wfSmoothScroll()
    {
      return self()->mWfSmoothScroll;
    }

    /**
      Is Waveform Smooth Scrolling Immutable
    */
    static
    bool isWfSmoothScrollImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSmoothScroll" ) );
    }

    /**
      Set Autoscroll Padding
    */
    static
    void setWfAutoscrollPadding( int v )
    {
      if (!self()->isWfAutoscrollPaddingImmutable())
        self()->mWfAutoscrollPadding = v;
    }

    /**
      Get Autoscroll Padding
    */
    static
    int wfAutoscrollPadding()
    {
      return self()->mWfAutoscrollPadding;
    }

    /**
      Is Autoscroll Padding Immutable
    */
    static
    bool isWfAutoscrollPaddingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfAutoscrollPadding" ) );
    }

    /**
      Set Waveform Subtitle Background Color
    */
    static
    void setWfSubBackground( const QString & v )
    {
      if (!self()->isWfSubBackgroundImmutable())
        self()->mWfSubBackground = v;
    }

    /**
      Get Waveform Subtitle Background Color
    */
    static
    QString wfSubBackground()
    {
      return self()->mWfSubBackground;
    }

    /**
      Is Waveform Subtitle Background Color Immutable
    */
    static
    bool isWfSubBackgroundImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSubBackground" ) );
    }

    /**
      Set Waveform Subtitle Border Color
    */
    static
    void setWfSubBorder( const QString & v )
    {
      if (!self()->isWfSubBorderImmutable())
        self()->mWfSubBorder = v;
    }

    /**
      Get Waveform Subtitle Border Color
    */
    static
    QString wfSubBorder()
    {
      return self()->mWfSubBorder;
    }

    /**
      Is Waveform Subtitle Border Color Immutable
    */
    static
    bool isWfSubBorderImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSubBorder" ) );
    }

    /**
      Set Waveform Subtitle Border Width
    */
    static
    void setWfSubBorderWidth( int v )
    {
      if (!self()->isWfSubBorderWidthImmutable())
        self()->mWfSubBorderWidth = v;
    }

    /**
      Get Waveform Subtitle Border Width
    */
    static
    int wfSubBorderWidth()
    {
      return self()->mWfSubBorderWidth;
    }

    /**
      Is Waveform Subtitle Border Width Immutable
    */
    static
    bool isWfSubBorderWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSubBorderWidth" ) );
    }

    /**
      Set Waveform Selected Subtitle Background Color
    */
    static
    void setWfSelBackground( const QString & v )
    {
      if (!self()->isWfSelBackgroundImmutable())
        self()->mWfSelBackground = v;
    }

    /**
      Get Waveform Selected Subtitle Background Color
    */
    static
    QString wfSelBackground()
    {
      return self()->mWfSelBackground;
    }

    /**
      Is Waveform Selected Subtitle Background Color Immutable
    */
    static
    bool isWfSelBackgroundImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSelBackground" ) );
    }

    /**
      Set Waveform Selected Subtitle Border Color
    */
    static
    void setWfSelBorder( const QString & v )
    {
      if (!self()->isWfSelBorderImmutable())
        self()->mWfSelBorder = v;
    }

    /**
      Get Waveform Selected Subtitle Border Color
    */
    static
    QString wfSelBorder()
    {
      return self()->mWfSelBorder;
    }

    /**
      Is Waveform Selected Subtitle Border Color Immutable
    */
    static
    bool isWfSelBorderImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSelBorder" ) );
    }

    /**
      Set Font Family
    */
    static
    void setWfFontFamily( const QString & v )
    {
      if (!self()->isWfFontFamilyImmutable())
        self()->mWfFontFamily = v;
    }

    /**
      Get Font Family
    */
    static
    QString wfFontFamily()
    {
      return self()->mWfFontFamily;
    }

    /**
      Is Font Family Immutable
    */
    static
    bool isWfFontFamilyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfFontFamily" ) );
    }

    /**
      Set Subtitle Number Font Size
    */
    static
    void setWfSubNumberFontSize( int v )
    {
      if (!self()->isWfSubNumberFontSizeImmutable())
        self()->mWfSubNumberFontSize = v;
    }

    /**
      Get Subtitle Number Font Size
    */
    static
    int wfSubNumberFontSize()
    {
      return self()->mWfSubNumberFontSize;
    }

    /**
      Is Subtitle Number Font Size Immutable
    */
    static
    bool isWfSubNumberFontSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSubNumberFontSize" ) );
    }

    /**
      Set Subtitle Number Font Color
    */
    static
    void setWfSubNumberColor( const QString & v )
    {
      if (!self()->isWfSubNumberColorImmutable())
        self()->mWfSubNumberColor = v;
    }

    /**
      Get Subtitle Number Font Color
    */
    static
    QString wfSubNumberColor()
    {
      return self()->mWfSubNumberColor;
    }

    /**
      Is Subtitle Number Font Color Immutable
    */
    static
    bool isWfSubNumberColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSubNumberColor" ) );
    }

    /**
      Set Subtitle Text Font Size
    */
    static
    void setWfSubTextFontSize( int v )
    {
      if (!self()->isWfSubTextFontSizeImmutable())
        self()->mWfSubTextFontSize = v;
    }

    /**
      Get Subtitle Text Font Size
    */
    static
    int wfSubTextFontSize()
    {
      return self()->mWfSubTextFontSize;
    }

    /**
      Is Subtitle Text Font Size Immutable
    */
    static
    bool isWfSubTextFontSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSubTextFontSize" ) );
    }

    /**
      Set Subtitle Text Font Color
    */
    static
    void setWfSubTextColor( const QString & v )
    {
      if (!self()->isWfSubTextColorImmutable())
        self()->mWfSubTextColor = v;
    }

    /**
      Get Subtitle Text Font Color
    */
    static
    QString wfSubTextColor()
    {
      return self()->mWfSubTextColor;
    }

    /**
      Is Subtitle Text Font Color Immutable
    */
    static
    bool isWfSubTextColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfSubTextColor" ) );
    }

    /**
      Set Mouse Location Line Color
    */
    static
    void setWfMouseLocation( const QString & v )
    {
      if (!self()->isWfMouseLocationImmutable())
        self()->mWfMouseLocation = v;
    }

    /**
      Get Mouse Location Line Color
    */
    static
    QString wfMouseLocation()
    {
      return self()->mWfMouseLocation;
    }

    /**
      Is Mouse Location Line Color Immutable
    */
    static
    bool isWfMouseLocationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfMouseLocation" ) );
    }

    /**
      Set Play Location Line Color
    */
    static
    void setWfPlayLocation( const QString & v )
    {
      if (!self()->isWfPlayLocationImmutable())
        self()->mWfPlayLocation = v;
    }

    /**
      Get Play Location Line Color
    */
    static
    QString wfPlayLocation()
    {
      return self()->mWfPlayLocation;
    }

    /**
      Is Play Location Line Color Immutable
    */
    static
    bool isWfPlayLocationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "wfPlayLocation" ) );
    }

    /**
      Set Start playing video when loaded
    */
    static
    void setVideoAutoPlay( bool v )
    {
      if (!self()->isVideoAutoPlayImmutable())
        self()->mVideoAutoPlay = v;
    }

    /**
      Get Start playing video when loaded
    */
    static
    bool videoAutoPlay()
    {
      return self()->mVideoAutoPlay;
    }

    /**
      Is Start playing video when loaded Immutable
    */
    static
    bool isVideoAutoPlayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "VideoAutoPlay" ) );
    }

    /**
      Set Jump length on seek
    */
    static
    void setSeekJumpLength( double v )
    {
      if (!self()->isSeekJumpLengthImmutable())
        self()->mSeekJumpLength = v;
    }

    /**
      Get Jump length on seek
    */
    static
    double seekJumpLength()
    {
      return self()->mSeekJumpLength;
    }

    /**
      Is Jump length on seek Immutable
    */
    static
    bool isSeekJumpLengthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SeekJumpLength" ) );
    }

    /**
      Set Amount of frames to skip when stepping
    */
    static
    void setStepJumpLength( int v )
    {
      if (!self()->isStepJumpLengthImmutable())
        self()->mStepJumpLength = v;
    }

    /**
      Get Amount of frames to skip when stepping
    */
    static
    int stepJumpLength()
    {
      return self()->mStepJumpLength;
    }

    /**
      Is Amount of frames to skip when stepping Immutable
    */
    static
    bool isStepJumpLengthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StepJumpLength" ) );
    }

    /**
      Set Show editable time position
    */
    static
    void setShowPositionTimeEdit( bool v )
    {
      if (!self()->isShowPositionTimeEditImmutable())
        self()->mShowPositionTimeEdit = v;
    }

    /**
      Get Show editable time position
    */
    static
    bool showPositionTimeEdit()
    {
      return self()->mShowPositionTimeEdit;
    }

    /**
      Is Show editable time position Immutable
    */
    static
    bool isShowPositionTimeEditImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowPositionTimeEdit" ) );
    }

    /**
      Set Volume Amplification
    */
    static
    void setVolumeAmplification( int v )
    {
      if (!self()->isVolumeAmplificationImmutable())
        self()->mVolumeAmplification = v;
    }

    /**
      Get Volume Amplification
    */
    static
    int volumeAmplification()
    {
      return self()->mVolumeAmplification;
    }

    /**
      Is Volume Amplification Immutable
    */
    static
    bool isVolumeAmplificationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "VolumeAmplification" ) );
    }

    /**
      Set Font Family
    */
    static
    void setFontFamily( const QString & v )
    {
      if (!self()->isFontFamilyImmutable())
        self()->mFontFamily = v;
    }

    /**
      Get Font Family
    */
    static
    QString fontFamily()
    {
      return self()->mFontFamily;
    }

    /**
      Is Font Family Immutable
    */
    static
    bool isFontFamilyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FontFamily" ) );
    }

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

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

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

    /**
      Set Font Color
    */
    static
    void setFontColor( const QString & v )
    {
      if (!self()->isFontColorImmutable())
        self()->mFontColor = v;
    }

    /**
      Get Font Color
    */
    static
    QString fontColor()
    {
      return self()->mFontColor;
    }

    /**
      Is Font Color Immutable
    */
    static
    bool isFontColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FontColor" ) );
    }

    /**
      Set Outline Color
    */
    static
    void setOutlineColor( const QString & v )
    {
      if (!self()->isOutlineColorImmutable())
        self()->mOutlineColor = v;
    }

    /**
      Get Outline Color
    */
    static
    QString outlineColor()
    {
      return self()->mOutlineColor;
    }

    /**
      Is Outline Color Immutable
    */
    static
    bool isOutlineColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "OutlineColor" ) );
    }

    /**
      Set Outline Width
    */
    static
    void setOutlineWidth( int v )
    {
      if (!self()->isOutlineWidthImmutable())
        self()->mOutlineWidth = v;
    }

    /**
      Get Outline Width
    */
    static
    int outlineWidth()
    {
      return self()->mOutlineWidth;
    }

    /**
      Is Outline Width Immutable
    */
    static
    bool isOutlineWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "OutlineWidth" ) );
    }

    /**
      Set Last used translate engine
    */
    static
    void setTranslateEngine( const QString & v )
    {
      if (!self()->isTranslateEngineImmutable())
        self()->mTranslateEngine = v;
    }

    /**
      Get Last used translate engine
    */
    static
    QString translateEngine()
    {
      return self()->mTranslateEngine;
    }

    /**
      Is Last used translate engine Immutable
    */
    static
    bool isTranslateEngineImmutable()
    {
      return self()->isImmutable( QStringLiteral( "translateEngine" ) );
    }

    /**
      Set Service Account JSON containing private key
    */
    static
    void setGctServiceJSON( const QString & v )
    {
      if (!self()->isGctServiceJSONImmutable())
        self()->mGctServiceJSON = v;
    }

    /**
      Get Service Account JSON containing private key
    */
    static
    QString gctServiceJSON()
    {
      return self()->mGctServiceJSON;
    }

    /**
      Is Service Account JSON containing private key Immutable
    */
    static
    bool isGctServiceJSONImmutable()
    {
      return self()->isImmutable( QStringLiteral( "gctServiceJSON" ) );
    }

    /**
      Set source language - cached
    */
    static
    void setGctLangSource( const QString & v )
    {
      if (!self()->isGctLangSourceImmutable())
        self()->mGctLangSource = v;
    }

    /**
      Get source language - cached
    */
    static
    QString gctLangSource()
    {
      return self()->mGctLangSource;
    }

    /**
      Is source language - cached Immutable
    */
    static
    bool isGctLangSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "gctLangSource" ) );
    }

    /**
      Set translation language - cached
    */
    static
    void setGctLangTrans( const QString & v )
    {
      if (!self()->isGctLangTransImmutable())
        self()->mGctLangTrans = v;
    }

    /**
      Get translation language - cached
    */
    static
    QString gctLangTrans()
    {
      return self()->mGctLangTrans;
    }

    /**
      Is translation language - cached Immutable
    */
    static
    bool isGctLangTransImmutable()
    {
      return self()->isImmutable( QStringLiteral( "gctLangTrans" ) );
    }

    /**
      Set access token - cached
    */
    static
    void setGctAccessToken( const QString & v )
    {
      if (!self()->isGctAccessTokenImmutable())
        self()->mGctAccessToken = v;
    }

    /**
      Get access token - cached
    */
    static
    QString gctAccessToken()
    {
      return self()->mGctAccessToken;
    }

    /**
      Is access token - cached Immutable
    */
    static
    bool isGctAccessTokenImmutable()
    {
      return self()->isImmutable( QStringLiteral( "gctAccessToken" ) );
    }

    /**
      Set access token expiry - cached
    */
    static
    void setGctTokenExpires( const QDateTime & v )
    {
      if (!self()->isGctTokenExpiresImmutable())
        self()->mGctTokenExpires = v;
    }

    /**
      Get access token expiry - cached
    */
    static
    QDateTime gctTokenExpires()
    {
      return self()->mGctTokenExpires;
    }

    /**
      Is access token expiry - cached Immutable
    */
    static
    bool isGctTokenExpiresImmutable()
    {
      return self()->isImmutable( QStringLiteral( "gctTokenExpires" ) );
    }

    /**
      Set access token type - cached
    */
    static
    void setGctTokenType( const QString & v )
    {
      if (!self()->isGctTokenTypeImmutable())
        self()->mGctTokenType = v;
    }

    /**
      Get access token type - cached
    */
    static
    QString gctTokenType()
    {
      return self()->mGctTokenType;
    }

    /**
      Is access token type - cached Immutable
    */
    static
    bool isGctTokenTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "gctTokenType" ) );
    }

    /**
      Set DeepL API authentication key
    */
    static
    void setDltAuthKey( const QString & v )
    {
      if (!self()->isDltAuthKeyImmutable())
        self()->mDltAuthKey = v;
    }

    /**
      Get DeepL API authentication key
    */
    static
    QString dltAuthKey()
    {
      return self()->mDltAuthKey;
    }

    /**
      Is DeepL API authentication key Immutable
    */
    static
    bool isDltAuthKeyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "dltAuthKey" ) );
    }

    /**
      Set DeepL API domain name
    */
    static
    void setDltApiDomain( const QString & v )
    {
      if (!self()->isDltApiDomainImmutable())
        self()->mDltApiDomain = v;
    }

    /**
      Get DeepL API domain name
    */
    static
    QString dltApiDomain()
    {
      return self()->mDltApiDomain;
    }

    /**
      Is DeepL API domain name Immutable
    */
    static
    bool isDltApiDomainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "dltApiDomain" ) );
    }

    /**
      Set source language - cached
    */
    static
    void setDltLangSource( const QString & v )
    {
      if (!self()->isDltLangSourceImmutable())
        self()->mDltLangSource = v;
    }

    /**
      Get source language - cached
    */
    static
    QString dltLangSource()
    {
      return self()->mDltLangSource;
    }

    /**
      Is source language - cached Immutable
    */
    static
    bool isDltLangSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "dltLangSource" ) );
    }

    /**
      Set translation language - cached
    */
    static
    void setDltLangTrans( const QString & v )
    {
      if (!self()->isDltLangTransImmutable())
        self()->mDltLangTrans = v;
    }

    /**
      Get translation language - cached
    */
    static
    QString dltLangTrans()
    {
      return self()->mDltLangTrans;
    }

    /**
      Is translation language - cached Immutable
    */
    static
    bool isDltLangTransImmutable()
    {
      return self()->isImmutable( QStringLiteral( "dltLangTrans" ) );
    }

    /**
      Set MinT API URL prefix
    */
    static
    void setMintURLPrefix( const QString & v )
    {
      if (!self()->isMintURLPrefixImmutable())
        self()->mMintURLPrefix = v;
    }

    /**
      Get MinT API URL prefix
    */
    static
    QString mintURLPrefix()
    {
      return self()->mMintURLPrefix;
    }

    /**
      Is MinT API URL prefix Immutable
    */
    static
    bool isMintURLPrefixImmutable()
    {
      return self()->isImmutable( QStringLiteral( "mintURLPrefix" ) );
    }

    /**
      Set source language - cached
    */
    static
    void setMintLangSource( const QString & v )
    {
      if (!self()->isMintLangSourceImmutable())
        self()->mMintLangSource = v;
    }

    /**
      Get source language - cached
    */
    static
    QString mintLangSource()
    {
      return self()->mMintLangSource;
    }

    /**
      Is source language - cached Immutable
    */
    static
    bool isMintLangSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "mintLangSource" ) );
    }

    /**
      Set translation language - cached
    */
    static
    void setMintLangTrans( const QString & v )
    {
      if (!self()->isMintLangTransImmutable())
        self()->mMintLangTrans = v;
    }

    /**
      Get translation language - cached
    */
    static
    QString mintLangTrans()
    {
      return self()->mMintLangTrans;
    }

    /**
      Is translation language - cached Immutable
    */
    static
    bool isMintLangTransImmutable()
    {
      return self()->isImmutable( QStringLiteral( "mintLangTrans" ) );
    }

  protected:
    SCConfig();
    friend class SCConfigHelper;


    // General
    QString mDefaultSubtitlesEncoding;
    int mTextLineBreak;
    int mSeekOffsetOnDoubleClick;
    int mJumpLineOffset;
    bool mUnpauseOnDoubleClick;
    bool mAutomaticVideoLoad;
    int mLinesQuickShiftAmount;
    int mGrabbedPositionCompensation;
    int mLineDuration;
    int mLinePause;

    // Error Check
    int mMaxCharacters;
    int mMaxLines;
    int mMaxCharactersPerLine;
    int mMinDuration;
    int mMaxDuration;
    int mMinDurationPerCharacter;
    int mIdealDurationPerCharacter;
    int mMaxDurationPerCharacter;
    bool mAutoClearFixed;

    // Spelling
    QString mDefaultLanguage;
    bool mAutodetectLanguage;
    QString mDefaultClient;
    bool mBackgroundCheckerEnabled;
    bool mCheckerEnabledByDefault;
    bool mSkipUppercase;
    bool mSkipRunTogether;

    // Waveform Widget
    QString mWfInnerColor;
    QString mWfOuterColor;
    bool mWfSmoothScroll;
    int mWfAutoscrollPadding;
    QString mWfSubBackground;
    QString mWfSubBorder;
    int mWfSubBorderWidth;
    QString mWfSelBackground;
    QString mWfSelBorder;
    QString mWfFontFamily;
    int mWfSubNumberFontSize;
    QString mWfSubNumberColor;
    int mWfSubTextFontSize;
    QString mWfSubTextColor;
    QString mWfMouseLocation;
    QString mWfPlayLocation;

    // VideoPlayer
    bool mVideoAutoPlay;
    double mSeekJumpLength;
    int mStepJumpLength;
    bool mShowPositionTimeEdit;
    int mVolumeAmplification;
    QString mFontFamily;
    int mFontSize;
    QString mFontColor;
    QString mOutlineColor;
    int mOutlineWidth;

    // Translation
    QString mTranslateEngine;

    // GoogleCloudTranslate
    QString mGctServiceJSON;
    QString mGctLangSource;
    QString mGctLangTrans;
    QString mGctAccessToken;
    QDateTime mGctTokenExpires;
    QString mGctTokenType;

    // DeepLTranslate
    QString mDltAuthKey;
    QString mDltApiDomain;
    QString mDltLangSource;
    QString mDltLangTrans;

    // MinTTranslate
    QString mMintURLPrefix;
    QString mMintLangSource;
    QString mMintLangTrans;
};

#endif

