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

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

class QQmlEngine;
class QJSEngine;

class SubtitlesSettings : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

    static SubtitlesSettings *self();
    static SubtitlesSettings *create(QQmlEngine *, QJSEngine *);
    ~SubtitlesSettings() override;

    /**
      Set SubtitlesFolders
    */
    static
    void setSubtitlesFolders( const QStringList & v )
    {
      if (v != self()->mSubtitlesFolders && !self()->isSubtitlesFoldersImmutable()) {
        self()->mSubtitlesFolders = v;
        Q_EMIT self()->SubtitlesFoldersChanged();
      }
    }

    Q_PROPERTY(QStringList subtitlesFolders READ subtitlesFolders WRITE setSubtitlesFolders NOTIFY SubtitlesFoldersChanged)
    Q_PROPERTY(bool isSubtitlesFoldersImmutable READ isSubtitlesFoldersImmutable CONSTANT)
    Q_PROPERTY(QStringList defaultSubtitlesFoldersValue READ defaultSubtitlesFoldersValue CONSTANT)
    /**
      Get SubtitlesFolders
    */
    static
    QStringList subtitlesFolders()
    {
      return self()->mSubtitlesFolders;
    }

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

    /**
      Get SubtitlesFolders default value
    */
    static
    QStringList defaultSubtitlesFoldersValue()
    {
        return defaultSubtitlesFoldersValue_helper();
    }

    /**
      Set RecursiveSubtitlesSearch
    */
    static
    void setRecursiveSubtitlesSearch( bool v )
    {
      if (v != self()->mRecursiveSubtitlesSearch && !self()->isRecursiveSubtitlesSearchImmutable()) {
        self()->mRecursiveSubtitlesSearch = v;
        Q_EMIT self()->RecursiveSubtitlesSearchChanged();
      }
    }

    Q_PROPERTY(bool recursiveSubtitlesSearch READ recursiveSubtitlesSearch WRITE setRecursiveSubtitlesSearch NOTIFY RecursiveSubtitlesSearchChanged)
    Q_PROPERTY(bool isRecursiveSubtitlesSearchImmutable READ isRecursiveSubtitlesSearchImmutable CONSTANT)
    Q_PROPERTY(bool defaultRecursiveSubtitlesSearchValue READ defaultRecursiveSubtitlesSearchValue CONSTANT)
    /**
      Get RecursiveSubtitlesSearch
    */
    static
    bool recursiveSubtitlesSearch()
    {
      return self()->mRecursiveSubtitlesSearch;
    }

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

    /**
      Get RecursiveSubtitlesSearch default value
    */
    static
    bool defaultRecursiveSubtitlesSearchValue()
    {
        return defaultRecursiveSubtitlesSearchValue_helper();
    }

    /**
      Set AutoSelectSubtitles
    */
    static
    void setAutoSelectSubtitles( bool v )
    {
      if (v != self()->mAutoSelectSubtitles && !self()->isAutoSelectSubtitlesImmutable()) {
        self()->mAutoSelectSubtitles = v;
        Q_EMIT self()->AutoSelectSubtitlesChanged();
      }
    }

    Q_PROPERTY(bool autoSelectSubtitles READ autoSelectSubtitles WRITE setAutoSelectSubtitles NOTIFY AutoSelectSubtitlesChanged)
    Q_PROPERTY(bool isAutoSelectSubtitlesImmutable READ isAutoSelectSubtitlesImmutable CONSTANT)
    Q_PROPERTY(bool defaultAutoSelectSubtitlesValue READ defaultAutoSelectSubtitlesValue CONSTANT)
    /**
      Get AutoSelectSubtitles
    */
    static
    bool autoSelectSubtitles()
    {
      return self()->mAutoSelectSubtitles;
    }

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

    /**
      Get AutoSelectSubtitles default value
    */
    static
    bool defaultAutoSelectSubtitlesValue()
    {
        return defaultAutoSelectSubtitlesValue_helper();
    }

    /**
      Set PreferredLanguage
    */
    static
    void setPreferredLanguage( const QString & v )
    {
      if (v != self()->mPreferredLanguage && !self()->isPreferredLanguageImmutable()) {
        self()->mPreferredLanguage = v;
        Q_EMIT self()->PreferredLanguageChanged();
      }
    }

    Q_PROPERTY(QString preferredLanguage READ preferredLanguage WRITE setPreferredLanguage NOTIFY PreferredLanguageChanged)
    Q_PROPERTY(bool isPreferredLanguageImmutable READ isPreferredLanguageImmutable CONSTANT)
    /**
      Get PreferredLanguage
    */
    static
    QString preferredLanguage()
    {
      return self()->mPreferredLanguage;
    }

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

    /**
      Set PreferredTrack
    */
    static
    void setPreferredTrack( int v )
    {
      if (v != self()->mPreferredTrack && !self()->isPreferredTrackImmutable()) {
        self()->mPreferredTrack = v;
        Q_EMIT self()->PreferredTrackChanged();
      }
    }

    Q_PROPERTY(int preferredTrack READ preferredTrack WRITE setPreferredTrack NOTIFY PreferredTrackChanged)
    Q_PROPERTY(bool isPreferredTrackImmutable READ isPreferredTrackImmutable CONSTANT)
    /**
      Get PreferredTrack
    */
    static
    int preferredTrack()
    {
      return self()->mPreferredTrack;
    }

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

    /**
      Set AllowOnBlackBorders
    */
    static
    void setAllowOnBlackBorders( bool v )
    {
      if (v != self()->mAllowOnBlackBorders && !self()->isAllowOnBlackBordersImmutable()) {
        self()->mAllowOnBlackBorders = v;
        Q_EMIT self()->AllowOnBlackBordersChanged();
      }
    }

    Q_PROPERTY(bool allowOnBlackBorders READ allowOnBlackBorders WRITE setAllowOnBlackBorders NOTIFY AllowOnBlackBordersChanged)
    Q_PROPERTY(bool isAllowOnBlackBordersImmutable READ isAllowOnBlackBordersImmutable CONSTANT)
    Q_PROPERTY(bool defaultAllowOnBlackBordersValue READ defaultAllowOnBlackBordersValue CONSTANT)
    /**
      Get AllowOnBlackBorders
    */
    static
    bool allowOnBlackBorders()
    {
      return self()->mAllowOnBlackBorders;
    }

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

    /**
      Get AllowOnBlackBorders default value
    */
    static
    bool defaultAllowOnBlackBordersValue()
    {
        return defaultAllowOnBlackBordersValue_helper();
    }

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

    Q_PROPERTY(QString fontFamily READ fontFamily WRITE setFontFamily NOTIFY FontFamilyChanged)
    Q_PROPERTY(bool isFontFamilyImmutable READ isFontFamilyImmutable CONSTANT)
    Q_PROPERTY(QString defaultFontFamilyValue READ defaultFontFamilyValue CONSTANT)
    /**
      Get FontFamily
    */
    static
    QString fontFamily()
    {
      return self()->mFontFamily;
    }

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

    /**
      Get FontFamily default value
    */
    static
    QString defaultFontFamilyValue()
    {
        return defaultFontFamilyValue_helper();
    }

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

    Q_PROPERTY(int fontSize READ fontSize WRITE setFontSize NOTIFY FontSizeChanged)
    Q_PROPERTY(bool isFontSizeImmutable READ isFontSizeImmutable CONSTANT)
    Q_PROPERTY(int defaultFontSizeValue READ defaultFontSizeValue CONSTANT)
    /**
      Get FontSize
    */
    static
    int fontSize()
    {
      return self()->mFontSize;
    }

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

    /**
      Get FontSize default value
    */
    static
    int defaultFontSizeValue()
    {
        return defaultFontSizeValue_helper();
    }

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

    Q_PROPERTY(QString fontColor READ fontColor WRITE setFontColor NOTIFY FontColorChanged)
    Q_PROPERTY(bool isFontColorImmutable READ isFontColorImmutable CONSTANT)
    Q_PROPERTY(QString defaultFontColorValue READ defaultFontColorValue CONSTANT)
    /**
      Get FontColor
    */
    static
    QString fontColor()
    {
      return self()->mFontColor;
    }

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

    /**
      Get FontColor default value
    */
    static
    QString defaultFontColorValue()
    {
        return defaultFontColorValue_helper();
    }

    /**
      Set ShadowColor
    */
    static
    void setShadowColor( const QString & v )
    {
      if (v != self()->mShadowColor && !self()->isShadowColorImmutable()) {
        self()->mShadowColor = v;
        Q_EMIT self()->ShadowColorChanged();
      }
    }

    Q_PROPERTY(QString shadowColor READ shadowColor WRITE setShadowColor NOTIFY ShadowColorChanged)
    Q_PROPERTY(bool isShadowColorImmutable READ isShadowColorImmutable CONSTANT)
    Q_PROPERTY(QString defaultShadowColorValue READ defaultShadowColorValue CONSTANT)
    /**
      Get ShadowColor
    */
    static
    QString shadowColor()
    {
      return self()->mShadowColor;
    }

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

    /**
      Get ShadowColor default value
    */
    static
    QString defaultShadowColorValue()
    {
        return defaultShadowColorValue_helper();
    }

    /**
      Set ShadowOffset
    */
    static
    void setShadowOffset( int v )
    {
      if (v != self()->mShadowOffset && !self()->isShadowOffsetImmutable()) {
        self()->mShadowOffset = v;
        Q_EMIT self()->ShadowOffsetChanged();
      }
    }

    Q_PROPERTY(int shadowOffset READ shadowOffset WRITE setShadowOffset NOTIFY ShadowOffsetChanged)
    Q_PROPERTY(bool isShadowOffsetImmutable READ isShadowOffsetImmutable CONSTANT)
    Q_PROPERTY(int defaultShadowOffsetValue READ defaultShadowOffsetValue CONSTANT)
    /**
      Get ShadowOffset
    */
    static
    int shadowOffset()
    {
      return self()->mShadowOffset;
    }

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

    /**
      Get ShadowOffset default value
    */
    static
    int defaultShadowOffsetValue()
    {
        return defaultShadowOffsetValue_helper();
    }

    /**
      Set BorderColor
    */
    static
    void setBorderColor( const QString & v )
    {
      if (v != self()->mBorderColor && !self()->isBorderColorImmutable()) {
        self()->mBorderColor = v;
        Q_EMIT self()->BorderColorChanged();
      }
    }

    Q_PROPERTY(QString borderColor READ borderColor WRITE setBorderColor NOTIFY BorderColorChanged)
    Q_PROPERTY(bool isBorderColorImmutable READ isBorderColorImmutable CONSTANT)
    Q_PROPERTY(QString defaultBorderColorValue READ defaultBorderColorValue CONSTANT)
    /**
      Get BorderColor
    */
    static
    QString borderColor()
    {
      return self()->mBorderColor;
    }

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

    /**
      Get BorderColor default value
    */
    static
    QString defaultBorderColorValue()
    {
        return defaultBorderColorValue_helper();
    }

    /**
      Set BorderSize
    */
    static
    void setBorderSize( int v )
    {
      if (v != self()->mBorderSize && !self()->isBorderSizeImmutable()) {
        self()->mBorderSize = v;
        Q_EMIT self()->BorderSizeChanged();
      }
    }

    Q_PROPERTY(int borderSize READ borderSize WRITE setBorderSize NOTIFY BorderSizeChanged)
    Q_PROPERTY(bool isBorderSizeImmutable READ isBorderSizeImmutable CONSTANT)
    Q_PROPERTY(int defaultBorderSizeValue READ defaultBorderSizeValue CONSTANT)
    /**
      Get BorderSize
    */
    static
    int borderSize()
    {
      return self()->mBorderSize;
    }

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

    /**
      Get BorderSize default value
    */
    static
    int defaultBorderSizeValue()
    {
        return defaultBorderSizeValue_helper();
    }

    /**
      Set IsBold
    */
    static
    void setIsBold( bool v )
    {
      if (v != self()->mIsBold && !self()->isIsBoldImmutable()) {
        self()->mIsBold = v;
        Q_EMIT self()->IsBoldChanged();
      }
    }

    Q_PROPERTY(bool isBold READ isBold WRITE setIsBold NOTIFY IsBoldChanged)
    Q_PROPERTY(bool isIsBoldImmutable READ isIsBoldImmutable CONSTANT)
    Q_PROPERTY(bool defaultIsBoldValue READ defaultIsBoldValue CONSTANT)
    /**
      Get IsBold
    */
    static
    bool isBold()
    {
      return self()->mIsBold;
    }

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

    /**
      Get IsBold default value
    */
    static
    bool defaultIsBoldValue()
    {
        return defaultIsBoldValue_helper();
    }

    /**
      Set IsItalic
    */
    static
    void setIsItalic( bool v )
    {
      if (v != self()->mIsItalic && !self()->isIsItalicImmutable()) {
        self()->mIsItalic = v;
        Q_EMIT self()->IsItalicChanged();
      }
    }

    Q_PROPERTY(bool isItalic READ isItalic WRITE setIsItalic NOTIFY IsItalicChanged)
    Q_PROPERTY(bool isIsItalicImmutable READ isIsItalicImmutable CONSTANT)
    Q_PROPERTY(bool defaultIsItalicValue READ defaultIsItalicValue CONSTANT)
    /**
      Get IsItalic
    */
    static
    bool isItalic()
    {
      return self()->mIsItalic;
    }

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

    /**
      Get IsItalic default value
    */
    static
    bool defaultIsItalicValue()
    {
        return defaultIsItalicValue_helper();
    }

    /**
      Set BorderStyle
    */
    static
    void setBorderStyle( const QString & v )
    {
      if (v != self()->mBorderStyle && !self()->isBorderStyleImmutable()) {
        self()->mBorderStyle = v;
        Q_EMIT self()->BorderStyleChanged();
      }
    }

    Q_PROPERTY(QString borderStyle READ borderStyle WRITE setBorderStyle NOTIFY BorderStyleChanged)
    Q_PROPERTY(bool isBorderStyleImmutable READ isBorderStyleImmutable CONSTANT)
    Q_PROPERTY(QString defaultBorderStyleValue READ defaultBorderStyleValue CONSTANT)
    /**
      Get BorderStyle
    */
    static
    QString borderStyle()
    {
      return self()->mBorderStyle;
    }

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

    /**
      Get BorderStyle default value
    */
    static
    QString defaultBorderStyleValue()
    {
        return defaultBorderStyleValue_helper();
    }


    enum {
      signalSubtitlesFoldersChanged = 1,
      signalRecursiveSubtitlesSearchChanged = 2,
      signalAutoSelectSubtitlesChanged = 3,
      signalPreferredLanguageChanged = 4,
      signalPreferredTrackChanged = 5,
      signalAllowOnBlackBordersChanged = 6,
      signalFontFamilyChanged = 7,
      signalFontSizeChanged = 8,
      signalFontColorChanged = 9,
      signalShadowColorChanged = 10,
      signalShadowOffsetChanged = 11,
      signalBorderColorChanged = 12,
      signalBorderSizeChanged = 13,
      signalIsBoldChanged = 14,
      signalIsItalicChanged = 15,
      signalBorderStyleChanged = 16
    };

  Q_SIGNALS:
    void SubtitlesFoldersChanged();

    void RecursiveSubtitlesSearchChanged();

    void AutoSelectSubtitlesChanged();

    void PreferredLanguageChanged();

    void PreferredTrackChanged();

    void AllowOnBlackBordersChanged();

    void FontFamilyChanged();

    void FontSizeChanged();

    void FontColorChanged();

    void ShadowColorChanged();

    void ShadowOffsetChanged();

    void BorderColorChanged();

    void BorderSizeChanged();

    void IsBoldChanged();

    void IsItalicChanged();

    void BorderStyleChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    SubtitlesSettings(QObject *parent = nullptr);
    friend class SubtitlesSettingsHelper;


    // Subtitles
    QStringList mSubtitlesFolders;
    static QStringList defaultSubtitlesFoldersValue_helper();
    bool mRecursiveSubtitlesSearch;
    static bool defaultRecursiveSubtitlesSearchValue_helper();
    bool mAutoSelectSubtitles;
    static bool defaultAutoSelectSubtitlesValue_helper();
    QString mPreferredLanguage;
    static QString defaultPreferredLanguageValue_helper();
    int mPreferredTrack;
    static int defaultPreferredTrackValue_helper();
    bool mAllowOnBlackBorders;
    static bool defaultAllowOnBlackBordersValue_helper();
    QString mFontFamily;
    static QString defaultFontFamilyValue_helper();
    int mFontSize;
    static int defaultFontSizeValue_helper();
    QString mFontColor;
    static QString defaultFontColorValue_helper();
    QString mShadowColor;
    static QString defaultShadowColorValue_helper();
    int mShadowOffset;
    static int defaultShadowOffsetValue_helper();
    QString mBorderColor;
    static QString defaultBorderColorValue_helper();
    int mBorderSize;
    static int defaultBorderSizeValue_helper();
    bool mIsBold;
    static bool defaultIsBoldValue_helper();
    bool mIsItalic;
    static bool defaultIsItalicValue_helper();
    QString mBorderStyle;
    static QString defaultBorderStyleValue_helper();
};

#endif

