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

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

class QQmlEngine;
class QJSEngine;

class TellySkoutSettings : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:
    class EnumFetcher
    {
      public:
      enum type { TVSpielfilm, XMLTV, COUNT };
    };

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

    /**
      Set Delete program after
    */
    static
    void setDeleteProgramAfter( uint v )
    {
      if (v != self()->mDeleteProgramAfter && !self()->isDeleteProgramAfterImmutable()) {
        self()->mDeleteProgramAfter = v;
        Q_EMIT self()->deleteProgramAfterChanged();
      }
    }

    Q_PROPERTY(uint deleteProgramAfter READ deleteProgramAfter WRITE setDeleteProgramAfter NOTIFY deleteProgramAfterChanged)
    Q_PROPERTY(bool isDeleteProgramAfterImmutable READ isDeleteProgramAfterImmutable CONSTANT)
    Q_PROPERTY(uint defaultDeleteProgramAfterValue READ defaultDeleteProgramAfterValue CONSTANT)
    /**
      Get Delete program after
    */
    static
    uint deleteProgramAfter()
    {
      return self()->mDeleteProgramAfter;
    }

    /**
      Is Delete program after Immutable
    */
    static
    bool isDeleteProgramAfterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "deleteProgramAfter" ) );
    }

    /**
      Get Delete program after default value
    */
    static
    uint defaultDeleteProgramAfterValue()
    {
        return defaultDeleteProgramAfterValue_helper();
    }

    /**
      Set fetcher
    */
    static
    void setFetcher( int v )
    {
      if (v != self()->mFetcher && !self()->isFetcherImmutable()) {
        self()->mFetcher = v;
        Q_EMIT self()->fetcherChanged();
      }
    }

    Q_PROPERTY(int fetcher READ fetcher WRITE setFetcher NOTIFY fetcherChanged)
    Q_PROPERTY(bool isFetcherImmutable READ isFetcherImmutable CONSTANT)
    /**
      Get fetcher
    */
    static
    int fetcher()
    {
      return self()->mFetcher;
    }

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

    /**
      Set Program height
    */
    static
    void setProgramHeight( uint v )
    {
      if (v != self()->mProgramHeight && !self()->isProgramHeightImmutable()) {
        self()->mProgramHeight = v;
        Q_EMIT self()->programHeightChanged();
      }
    }

    Q_PROPERTY(uint programHeight READ programHeight WRITE setProgramHeight NOTIFY programHeightChanged)
    Q_PROPERTY(bool isProgramHeightImmutable READ isProgramHeightImmutable CONSTANT)
    Q_PROPERTY(uint defaultProgramHeightValue READ defaultProgramHeightValue CONSTANT)
    /**
      Get Program height
    */
    static
    uint programHeight()
    {
      return self()->mProgramHeight;
    }

    /**
      Is Program height Immutable
    */
    static
    bool isProgramHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "programHeight" ) );
    }

    /**
      Get Program height default value
    */
    static
    uint defaultProgramHeightValue()
    {
        return defaultProgramHeightValue_helper();
    }

    /**
      Set Column width
    */
    static
    void setColumnWidth( uint v )
    {
      if (v != self()->mColumnWidth && !self()->isColumnWidthImmutable()) {
        self()->mColumnWidth = v;
        Q_EMIT self()->columnWidthChanged();
      }
    }

    Q_PROPERTY(uint columnWidth READ columnWidth WRITE setColumnWidth NOTIFY columnWidthChanged)
    Q_PROPERTY(bool isColumnWidthImmutable READ isColumnWidthImmutable CONSTANT)
    Q_PROPERTY(uint defaultColumnWidthValue READ defaultColumnWidthValue CONSTANT)
    /**
      Get Column width
    */
    static
    uint columnWidth()
    {
      return self()->mColumnWidth;
    }

    /**
      Is Column width Immutable
    */
    static
    bool isColumnWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "columnWidth" ) );
    }

    /**
      Get Column width default value
    */
    static
    uint defaultColumnWidthValue()
    {
        return defaultColumnWidthValue_helper();
    }

    /**
      Set Font size
    */
    static
    void setFontSize( uint v )
    {
      if (v != self()->mFontSize && !self()->isFontSizeImmutable()) {
        self()->mFontSize = v;
        Q_EMIT self()->fontSizeChanged();
      }
    }

    Q_PROPERTY(uint fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
    Q_PROPERTY(bool isFontSizeImmutable READ isFontSizeImmutable CONSTANT)
    Q_PROPERTY(uint defaultFontSizeValue READ defaultFontSizeValue CONSTANT)
    /**
      Get Font size
    */
    static
    uint fontSize()
    {
      return self()->mFontSize;
    }

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

    /**
      Get Font size default value
    */
    static
    uint defaultFontSizeValue()
    {
        return defaultFontSizeValue_helper();
    }

    /**
      Set Show date selection
    */
    static
    void setShowDateSelection( bool v )
    {
      if (v != self()->mShowDateSelection && !self()->isShowDateSelectionImmutable()) {
        self()->mShowDateSelection = v;
        Q_EMIT self()->showDateSelectionChanged();
      }
    }

    Q_PROPERTY(bool showDateSelection READ showDateSelection WRITE setShowDateSelection NOTIFY showDateSelectionChanged)
    Q_PROPERTY(bool isShowDateSelectionImmutable READ isShowDateSelectionImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowDateSelectionValue READ defaultShowDateSelectionValue CONSTANT)
    /**
      Get Show date selection
    */
    static
    bool showDateSelection()
    {
      return self()->mShowDateSelection;
    }

    /**
      Is Show date selection Immutable
    */
    static
    bool isShowDateSelectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showDateSelection" ) );
    }

    /**
      Get Show date selection default value
    */
    static
    bool defaultShowDateSelectionValue()
    {
        return defaultShowDateSelectionValue_helper();
    }

    /**
      Set Prefetch days
    */
    static
    void setTvSpielfilmPrefetch( uint v )
    {
      if (v != self()->mTvSpielfilmPrefetch && !self()->isTvSpielfilmPrefetchImmutable()) {
        self()->mTvSpielfilmPrefetch = v;
        Q_EMIT self()->tvSpielfilmPrefetchChanged();
      }
    }

    Q_PROPERTY(uint tvSpielfilmPrefetch READ tvSpielfilmPrefetch WRITE setTvSpielfilmPrefetch NOTIFY tvSpielfilmPrefetchChanged)
    Q_PROPERTY(bool isTvSpielfilmPrefetchImmutable READ isTvSpielfilmPrefetchImmutable CONSTANT)
    Q_PROPERTY(uint defaultTvSpielfilmPrefetchValue READ defaultTvSpielfilmPrefetchValue CONSTANT)
    /**
      Get Prefetch days
    */
    static
    uint tvSpielfilmPrefetch()
    {
      return self()->mTvSpielfilmPrefetch;
    }

    /**
      Is Prefetch days Immutable
    */
    static
    bool isTvSpielfilmPrefetchImmutable()
    {
      return self()->isImmutable( QStringLiteral( "tvSpielfilmPrefetch" ) );
    }

    /**
      Get Prefetch days default value
    */
    static
    uint defaultTvSpielfilmPrefetchValue()
    {
        return defaultTvSpielfilmPrefetchValue_helper();
    }

    /**
      Set XMLTV file
    */
    static
    void setXmltvFile( const QString & v )
    {
      if (v != self()->mXmltvFile && !self()->isXmltvFileImmutable()) {
        self()->mXmltvFile = v;
        Q_EMIT self()->xmltvFileChanged();
      }
    }

    Q_PROPERTY(QString xmltvFile READ xmltvFile WRITE setXmltvFile NOTIFY xmltvFileChanged)
    Q_PROPERTY(bool isXmltvFileImmutable READ isXmltvFileImmutable CONSTANT)
    /**
      Get XMLTV file
    */
    static
    QString xmltvFile()
    {
      return self()->mXmltvFile;
    }

    /**
      Is XMLTV file Immutable
    */
    static
    bool isXmltvFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "xmltvFile" ) );
    }


    enum {
      signalDeleteProgramAfterChanged = 1,
      signalFetcherChanged = 2,
      signalProgramHeightChanged = 3,
      signalColumnWidthChanged = 4,
      signalFontSizeChanged = 5,
      signalShowDateSelectionChanged = 6,
      signalTvSpielfilmPrefetchChanged = 7,
      signalXmltvFileChanged = 8
    };

  Q_SIGNALS:
    void deleteProgramAfterChanged();

    void fetcherChanged();

    void programHeightChanged();

    void columnWidthChanged();

    void fontSizeChanged();

    void showDateSelectionChanged();

    void tvSpielfilmPrefetchChanged();

    void xmltvFileChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    TellySkoutSettings();
    friend class TellySkoutSettingsHelper;


    // General
    uint mDeleteProgramAfter;
    static uint defaultDeleteProgramAfterValue_helper();
    int mFetcher;
    static int defaultFetcherValue_helper();

    // UI
    uint mProgramHeight;
    static uint defaultProgramHeightValue_helper();
    uint mColumnWidth;
    static uint defaultColumnWidthValue_helper();
    uint mFontSize;
    static uint defaultFontSizeValue_helper();
    bool mShowDateSelection;
    static bool defaultShowDateSelectionValue_helper();

    // TVSpielfilm
    uint mTvSpielfilmPrefetch;
    static uint defaultTvSpielfilmPrefetchValue_helper();

    // XMLTV
    QString mXmltvFile;
    static QString defaultXmltvFileValue_helper();
};

#endif

