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

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

#include <QStandardPaths>
#include <QUrl>

class QQmlEngine;
class QJSEngine;

class HanaSettings : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

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

    /**
      Set ThumbnailsWidth
    */
    static
    void setThumbnailsWidth( int v )
    {
      if (v != self()->mThumbnailsWidth && !self()->isThumbnailsWidthImmutable()) {
        self()->mThumbnailsWidth = v;
        Q_EMIT self()->ThumbnailsWidthChanged();
      }
    }

    Q_PROPERTY(int thumbnailsWidth READ thumbnailsWidth WRITE setThumbnailsWidth NOTIFY ThumbnailsWidthChanged)
    Q_PROPERTY(bool isThumbnailsWidthImmutable READ isThumbnailsWidthImmutable CONSTANT)
    Q_PROPERTY(int defaultThumbnailsWidthValue READ defaultThumbnailsWidthValue CONSTANT)
    /**
      Get ThumbnailsWidth
    */
    static
    int thumbnailsWidth()
    {
      return self()->mThumbnailsWidth;
    }

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

    /**
      Get ThumbnailsWidth default value
    */
    static
    int defaultThumbnailsWidthValue()
    {
        return defaultThumbnailsWidthValue_helper();
    }

    /**
      Set ThumbnailsRows
    */
    static
    void setThumbnailsRows( int v )
    {
      if (v != self()->mThumbnailsRows && !self()->isThumbnailsRowsImmutable()) {
        self()->mThumbnailsRows = v;
        Q_EMIT self()->ThumbnailsRowsChanged();
      }
    }

    Q_PROPERTY(int thumbnailsRows READ thumbnailsRows WRITE setThumbnailsRows NOTIFY ThumbnailsRowsChanged)
    Q_PROPERTY(bool isThumbnailsRowsImmutable READ isThumbnailsRowsImmutable CONSTANT)
    Q_PROPERTY(int defaultThumbnailsRowsValue READ defaultThumbnailsRowsValue CONSTANT)
    /**
      Get ThumbnailsRows
    */
    static
    int thumbnailsRows()
    {
      return self()->mThumbnailsRows;
    }

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

    /**
      Get ThumbnailsRows default value
    */
    static
    int defaultThumbnailsRowsValue()
    {
        return defaultThumbnailsRowsValue_helper();
    }

    /**
      Set ThumbnailsColumns
    */
    static
    void setThumbnailsColumns( int v )
    {
      if (v != self()->mThumbnailsColumns && !self()->isThumbnailsColumnsImmutable()) {
        self()->mThumbnailsColumns = v;
        Q_EMIT self()->ThumbnailsColumnsChanged();
      }
    }

    Q_PROPERTY(int thumbnailsColumns READ thumbnailsColumns WRITE setThumbnailsColumns NOTIFY ThumbnailsColumnsChanged)
    Q_PROPERTY(bool isThumbnailsColumnsImmutable READ isThumbnailsColumnsImmutable CONSTANT)
    Q_PROPERTY(int defaultThumbnailsColumnsValue READ defaultThumbnailsColumnsValue CONSTANT)
    /**
      Get ThumbnailsColumns
    */
    static
    int thumbnailsColumns()
    {
      return self()->mThumbnailsColumns;
    }

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

    /**
      Get ThumbnailsColumns default value
    */
    static
    int defaultThumbnailsColumnsValue()
    {
        return defaultThumbnailsColumnsValue_helper();
    }

    /**
      Set ThumbnailsSpacing
    */
    static
    void setThumbnailsSpacing( int v )
    {
      if (v != self()->mThumbnailsSpacing && !self()->isThumbnailsSpacingImmutable()) {
        self()->mThumbnailsSpacing = v;
        Q_EMIT self()->ThumbnailsSpacingChanged();
      }
    }

    Q_PROPERTY(int thumbnailsSpacing READ thumbnailsSpacing WRITE setThumbnailsSpacing NOTIFY ThumbnailsSpacingChanged)
    Q_PROPERTY(bool isThumbnailsSpacingImmutable READ isThumbnailsSpacingImmutable CONSTANT)
    Q_PROPERTY(int defaultThumbnailsSpacingValue READ defaultThumbnailsSpacingValue CONSTANT)
    /**
      Get ThumbnailsSpacing
    */
    static
    int thumbnailsSpacing()
    {
      return self()->mThumbnailsSpacing;
    }

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

    /**
      Get ThumbnailsSpacing default value
    */
    static
    int defaultThumbnailsSpacingValue()
    {
        return defaultThumbnailsSpacingValue_helper();
    }

    /**
      Set BackgroundColor
    */
    static
    void setBackgroundColor( const QString & v )
    {
      if (v != self()->mBackgroundColor && !self()->isBackgroundColorImmutable()) {
        self()->mBackgroundColor = v;
        Q_EMIT self()->BackgroundColorChanged();
      }
    }

    Q_PROPERTY(QString backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY BackgroundColorChanged)
    Q_PROPERTY(bool isBackgroundColorImmutable READ isBackgroundColorImmutable CONSTANT)
    Q_PROPERTY(QString defaultBackgroundColorValue READ defaultBackgroundColorValue CONSTANT)
    /**
      Get BackgroundColor
    */
    static
    QString backgroundColor()
    {
      return self()->mBackgroundColor;
    }

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

    /**
      Get BackgroundColor default value
    */
    static
    QString defaultBackgroundColorValue()
    {
        return defaultBackgroundColorValue_helper();
    }

    /**
      Set AvoidDarkFrames
    */
    static
    void setAvoidDarkFrames( bool v )
    {
      if (v != self()->mAvoidDarkFrames && !self()->isAvoidDarkFramesImmutable()) {
        self()->mAvoidDarkFrames = v;
        Q_EMIT self()->AvoidDarkFramesChanged();
      }
    }

    Q_PROPERTY(bool avoidDarkFrames READ avoidDarkFrames WRITE setAvoidDarkFrames NOTIFY AvoidDarkFramesChanged)
    Q_PROPERTY(bool isAvoidDarkFramesImmutable READ isAvoidDarkFramesImmutable CONSTANT)
    Q_PROPERTY(bool defaultAvoidDarkFramesValue READ defaultAvoidDarkFramesValue CONSTANT)
    /**
      Get AvoidDarkFrames
    */
    static
    bool avoidDarkFrames()
    {
      return self()->mAvoidDarkFrames;
    }

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

    /**
      Get AvoidDarkFrames default value
    */
    static
    bool defaultAvoidDarkFramesValue()
    {
        return defaultAvoidDarkFramesValue_helper();
    }

    /**
      Set ShowVideoInfo
    */
    static
    void setShowVideoInfo( bool v )
    {
      if (v != self()->mShowVideoInfo && !self()->isShowVideoInfoImmutable()) {
        self()->mShowVideoInfo = v;
        Q_EMIT self()->ShowVideoInfoChanged();
      }
    }

    Q_PROPERTY(bool showVideoInfo READ showVideoInfo WRITE setShowVideoInfo NOTIFY ShowVideoInfoChanged)
    Q_PROPERTY(bool isShowVideoInfoImmutable READ isShowVideoInfoImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowVideoInfoValue READ defaultShowVideoInfoValue CONSTANT)
    /**
      Get ShowVideoInfo
    */
    static
    bool showVideoInfo()
    {
      return self()->mShowVideoInfo;
    }

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

    /**
      Get ShowVideoInfo default value
    */
    static
    bool defaultShowVideoInfoValue()
    {
        return defaultShowVideoInfoValue_helper();
    }

    /**
      Set VideoInfoAlwaysShowHours
    */
    static
    void setVideoInfoAlwaysShowHours( bool v )
    {
      if (v != self()->mVideoInfoAlwaysShowHours && !self()->isVideoInfoAlwaysShowHoursImmutable()) {
        self()->mVideoInfoAlwaysShowHours = v;
        Q_EMIT self()->VideoInfoAlwaysShowHoursChanged();
      }
    }

    Q_PROPERTY(bool videoInfoAlwaysShowHours READ videoInfoAlwaysShowHours WRITE setVideoInfoAlwaysShowHours NOTIFY VideoInfoAlwaysShowHoursChanged)
    Q_PROPERTY(bool isVideoInfoAlwaysShowHoursImmutable READ isVideoInfoAlwaysShowHoursImmutable CONSTANT)
    Q_PROPERTY(bool defaultVideoInfoAlwaysShowHoursValue READ defaultVideoInfoAlwaysShowHoursValue CONSTANT)
    /**
      Get VideoInfoAlwaysShowHours
    */
    static
    bool videoInfoAlwaysShowHours()
    {
      return self()->mVideoInfoAlwaysShowHours;
    }

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

    /**
      Get VideoInfoAlwaysShowHours default value
    */
    static
    bool defaultVideoInfoAlwaysShowHoursValue()
    {
        return defaultVideoInfoAlwaysShowHoursValue_helper();
    }

    /**
      Set VideoInfoBackgroundColor
    */
    static
    void setVideoInfoBackgroundColor( const QString & v )
    {
      if (v != self()->mVideoInfoBackgroundColor && !self()->isVideoInfoBackgroundColorImmutable()) {
        self()->mVideoInfoBackgroundColor = v;
        Q_EMIT self()->VideoInfoBackgroundColorChanged();
      }
    }

    Q_PROPERTY(QString videoInfoBackgroundColor READ videoInfoBackgroundColor WRITE setVideoInfoBackgroundColor NOTIFY VideoInfoBackgroundColorChanged)
    Q_PROPERTY(bool isVideoInfoBackgroundColorImmutable READ isVideoInfoBackgroundColorImmutable CONSTANT)
    Q_PROPERTY(QString defaultVideoInfoBackgroundColorValue READ defaultVideoInfoBackgroundColorValue CONSTANT)
    /**
      Get VideoInfoBackgroundColor
    */
    static
    QString videoInfoBackgroundColor()
    {
      return self()->mVideoInfoBackgroundColor;
    }

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

    /**
      Get VideoInfoBackgroundColor default value
    */
    static
    QString defaultVideoInfoBackgroundColorValue()
    {
        return defaultVideoInfoBackgroundColorValue_helper();
    }

    /**
      Set VideoInfoTextColor
    */
    static
    void setVideoInfoTextColor( const QString & v )
    {
      if (v != self()->mVideoInfoTextColor && !self()->isVideoInfoTextColorImmutable()) {
        self()->mVideoInfoTextColor = v;
        Q_EMIT self()->VideoInfoTextColorChanged();
      }
    }

    Q_PROPERTY(QString videoInfoTextColor READ videoInfoTextColor WRITE setVideoInfoTextColor NOTIFY VideoInfoTextColorChanged)
    Q_PROPERTY(bool isVideoInfoTextColorImmutable READ isVideoInfoTextColorImmutable CONSTANT)
    Q_PROPERTY(QString defaultVideoInfoTextColorValue READ defaultVideoInfoTextColorValue CONSTANT)
    /**
      Get VideoInfoTextColor
    */
    static
    QString videoInfoTextColor()
    {
      return self()->mVideoInfoTextColor;
    }

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

    /**
      Get VideoInfoTextColor default value
    */
    static
    QString defaultVideoInfoTextColorValue()
    {
        return defaultVideoInfoTextColorValue_helper();
    }

    /**
      Set SaveLocation
    */
    static
    void setSaveLocation( const QString & v )
    {
      if (v != self()->mSaveLocation && !self()->isSaveLocationImmutable()) {
        self()->mSaveLocation = v;
        Q_EMIT self()->SaveLocationChanged();
      }
    }

    Q_PROPERTY(QString saveLocation READ saveLocation WRITE setSaveLocation NOTIFY SaveLocationChanged)
    Q_PROPERTY(bool isSaveLocationImmutable READ isSaveLocationImmutable CONSTANT)
    Q_PROPERTY(QString defaultSaveLocationValue READ defaultSaveLocationValue CONSTANT)
    /**
      Get SaveLocation
    */
    static
    QString saveLocation()
    {
      return self()->mSaveLocation;
    }

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

    /**
      Get SaveLocation default value
    */
    static
    QString defaultSaveLocationValue()
    {
        return defaultSaveLocationValue_helper();
    }

    /**
      Set SaveLocationFolderName
    */
    static
    void setSaveLocationFolderName( const QString & v )
    {
      if (v != self()->mSaveLocationFolderName && !self()->isSaveLocationFolderNameImmutable()) {
        self()->mSaveLocationFolderName = v;
        Q_EMIT self()->SaveLocationFolderNameChanged();
      }
    }

    Q_PROPERTY(QString saveLocationFolderName READ saveLocationFolderName WRITE setSaveLocationFolderName NOTIFY SaveLocationFolderNameChanged)
    Q_PROPERTY(bool isSaveLocationFolderNameImmutable READ isSaveLocationFolderNameImmutable CONSTANT)
    Q_PROPERTY(QString defaultSaveLocationFolderNameValue READ defaultSaveLocationFolderNameValue CONSTANT)
    /**
      Get SaveLocationFolderName
    */
    static
    QString saveLocationFolderName()
    {
      return self()->mSaveLocationFolderName;
    }

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

    /**
      Get SaveLocationFolderName default value
    */
    static
    QString defaultSaveLocationFolderNameValue()
    {
        return defaultSaveLocationFolderNameValue_helper();
    }

    /**
      Set SaveLocationFolderUrl
    */
    static
    void setSaveLocationFolderUrl( const QUrl & v )
    {
      if (v != self()->mSaveLocationFolderUrl && !self()->isSaveLocationFolderUrlImmutable()) {
        self()->mSaveLocationFolderUrl = v;
        Q_EMIT self()->SaveLocationFolderUrlChanged();
      }
    }

    Q_PROPERTY(QUrl saveLocationFolderUrl READ saveLocationFolderUrl WRITE setSaveLocationFolderUrl NOTIFY SaveLocationFolderUrlChanged)
    Q_PROPERTY(bool isSaveLocationFolderUrlImmutable READ isSaveLocationFolderUrlImmutable CONSTANT)
    Q_PROPERTY(QUrl defaultSaveLocationFolderUrlValue READ defaultSaveLocationFolderUrlValue CONSTANT)
    /**
      Get SaveLocationFolderUrl
    */
    static
    QUrl saveLocationFolderUrl()
    {
      return self()->mSaveLocationFolderUrl;
    }

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

    /**
      Get SaveLocationFolderUrl default value
    */
    static
    QUrl defaultSaveLocationFolderUrlValue()
    {
        return defaultSaveLocationFolderUrlValue_helper();
    }

    /**
      Set SelectVideosUrl
    */
    static
    void setSelectVideosUrl( const QUrl & v )
    {
      if (v != self()->mSelectVideosUrl && !self()->isSelectVideosUrlImmutable()) {
        self()->mSelectVideosUrl = v;
        Q_EMIT self()->SelectVideosUrlChanged();
      }
    }

    Q_PROPERTY(QUrl selectVideosUrl READ selectVideosUrl WRITE setSelectVideosUrl NOTIFY SelectVideosUrlChanged)
    Q_PROPERTY(bool isSelectVideosUrlImmutable READ isSelectVideosUrlImmutable CONSTANT)
    Q_PROPERTY(QUrl defaultSelectVideosUrlValue READ defaultSelectVideosUrlValue CONSTANT)
    /**
      Get SelectVideosUrl
    */
    static
    QUrl selectVideosUrl()
    {
      return self()->mSelectVideosUrl;
    }

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

    /**
      Get SelectVideosUrl default value
    */
    static
    QUrl defaultSelectVideosUrlValue()
    {
        return defaultSelectVideosUrlValue_helper();
    }


    enum {
      signalThumbnailsWidthChanged = 1,
      signalThumbnailsRowsChanged = 2,
      signalThumbnailsColumnsChanged = 3,
      signalThumbnailsSpacingChanged = 4,
      signalBackgroundColorChanged = 5,
      signalAvoidDarkFramesChanged = 6,
      signalShowVideoInfoChanged = 7,
      signalVideoInfoAlwaysShowHoursChanged = 8,
      signalVideoInfoBackgroundColorChanged = 9,
      signalVideoInfoTextColorChanged = 10,
      signalSaveLocationChanged = 11,
      signalSaveLocationFolderNameChanged = 12,
      signalSaveLocationFolderUrlChanged = 13,
      signalSelectVideosUrlChanged = 14
    };

  Q_SIGNALS:
    void ThumbnailsWidthChanged();

    void ThumbnailsRowsChanged();

    void ThumbnailsColumnsChanged();

    void ThumbnailsSpacingChanged();

    void BackgroundColorChanged();

    void AvoidDarkFramesChanged();

    void ShowVideoInfoChanged();

    void VideoInfoAlwaysShowHoursChanged();

    void VideoInfoBackgroundColorChanged();

    void VideoInfoTextColorChanged();

    void SaveLocationChanged();

    void SaveLocationFolderNameChanged();

    void SaveLocationFolderUrlChanged();

    void SelectVideosUrlChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    HanaSettings(QObject *parent = nullptr);
    friend class HanaSettingsHelper;


    // General
    int mThumbnailsWidth;
    static int defaultThumbnailsWidthValue_helper();
    int mThumbnailsRows;
    static int defaultThumbnailsRowsValue_helper();
    int mThumbnailsColumns;
    static int defaultThumbnailsColumnsValue_helper();
    int mThumbnailsSpacing;
    static int defaultThumbnailsSpacingValue_helper();
    QString mBackgroundColor;
    static QString defaultBackgroundColorValue_helper();
    bool mAvoidDarkFrames;
    static bool defaultAvoidDarkFramesValue_helper();
    bool mShowVideoInfo;
    static bool defaultShowVideoInfoValue_helper();
    bool mVideoInfoAlwaysShowHours;
    static bool defaultVideoInfoAlwaysShowHoursValue_helper();
    QString mVideoInfoBackgroundColor;
    static QString defaultVideoInfoBackgroundColorValue_helper();
    QString mVideoInfoTextColor;
    static QString defaultVideoInfoTextColorValue_helper();

    // Paths
    QString mSaveLocation;
    static QString defaultSaveLocationValue_helper();
    QString mSaveLocationFolderName;
    static QString defaultSaveLocationFolderNameValue_helper();
    QUrl mSaveLocationFolderUrl;
    static QUrl defaultSaveLocationFolderUrlValue_helper();
    QUrl mSelectVideosUrl;
    static QUrl defaultSelectVideosUrlValue_helper();
};

#endif

