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

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

class QQmlEngine;
class QJSEngine;

class AlligatorSettings : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

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

    /**
      Set Delete after count
    */
    static
    void setDeleteAfterCount( int v )
    {
      if (v != self()->mDeleteAfterCount && !self()->isDeleteAfterCountImmutable()) {
        self()->mDeleteAfterCount = v;
        Q_EMIT self()->deleteAfterCountChanged();
      }
    }

    Q_PROPERTY(int deleteAfterCount READ deleteAfterCount WRITE setDeleteAfterCount NOTIFY deleteAfterCountChanged)
    Q_PROPERTY(bool isDeleteAfterCountImmutable READ isDeleteAfterCountImmutable CONSTANT)
    Q_PROPERTY(int defaultDeleteAfterCountValue READ defaultDeleteAfterCountValue CONSTANT)
    /**
      Get Delete after count
    */
    static
    int deleteAfterCount()
    {
      return self()->mDeleteAfterCount;
    }

    /**
      Is Delete after count Immutable
    */
    static
    bool isDeleteAfterCountImmutable()
    {
      return self()->isImmutable( QStringLiteral( "deleteAfterCount" ) );
    }

    /**
      Get Delete after count default value
    */
    static
    int defaultDeleteAfterCountValue()
    {
        return defaultDeleteAfterCountValue_helper();
    }

    /**
      Set Article font size
    */
    static
    void setArticleFontSize( int v )
    {
      if (v != self()->mArticleFontSize && !self()->isArticleFontSizeImmutable()) {
        self()->mArticleFontSize = v;
        Q_EMIT self()->articleFontSizeChanged();
      }
    }

    Q_PROPERTY(int articleFontSize READ articleFontSize WRITE setArticleFontSize NOTIFY articleFontSizeChanged)
    Q_PROPERTY(bool isArticleFontSizeImmutable READ isArticleFontSizeImmutable CONSTANT)
    Q_PROPERTY(int defaultArticleFontSizeValue READ defaultArticleFontSizeValue CONSTANT)
    /**
      Get Article font size
    */
    static
    int articleFontSize()
    {
      return self()->mArticleFontSize;
    }

    /**
      Is Article font size Immutable
    */
    static
    bool isArticleFontSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "articleFontSize" ) );
    }

    /**
      Get Article font size default value
    */
    static
    int defaultArticleFontSizeValue()
    {
        return defaultArticleFontSizeValue_helper();
    }

    /**
      Set Use default system font
    */
    static
    void setArticleFontUseSystem( bool v )
    {
      if (v != self()->mArticleFontUseSystem && !self()->isArticleFontUseSystemImmutable()) {
        self()->mArticleFontUseSystem = v;
        Q_EMIT self()->articleFontUseSystemChanged();
      }
    }

    Q_PROPERTY(bool articleFontUseSystem READ articleFontUseSystem WRITE setArticleFontUseSystem NOTIFY articleFontUseSystemChanged)
    Q_PROPERTY(bool isArticleFontUseSystemImmutable READ isArticleFontUseSystemImmutable CONSTANT)
    Q_PROPERTY(bool defaultArticleFontUseSystemValue READ defaultArticleFontUseSystemValue CONSTANT)
    /**
      Get Use default system font
    */
    static
    bool articleFontUseSystem()
    {
      return self()->mArticleFontUseSystem;
    }

    /**
      Is Use default system font Immutable
    */
    static
    bool isArticleFontUseSystemImmutable()
    {
      return self()->isImmutable( QStringLiteral( "articleFontUseSystem" ) );
    }

    /**
      Get Use default system font default value
    */
    static
    bool defaultArticleFontUseSystemValue()
    {
        return defaultArticleFontUseSystemValue_helper();
    }

    /**
      Set Delete after type
    */
    static
    void setDeleteAfterType( int v )
    {
      if (v != self()->mDeleteAfterType && !self()->isDeleteAfterTypeImmutable()) {
        self()->mDeleteAfterType = v;
        Q_EMIT self()->deleteAfterTypeChanged();
      }
    }

    Q_PROPERTY(int deleteAfterType READ deleteAfterType WRITE setDeleteAfterType NOTIFY deleteAfterTypeChanged)
    Q_PROPERTY(bool isDeleteAfterTypeImmutable READ isDeleteAfterTypeImmutable CONSTANT)
    Q_PROPERTY(int defaultDeleteAfterTypeValue READ defaultDeleteAfterTypeValue CONSTANT)
    /**
      Get Delete after type
    */
    static
    int deleteAfterType()
    {
      return self()->mDeleteAfterType;
    }

    /**
      Is Delete after type Immutable
    */
    static
    bool isDeleteAfterTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "deleteAfterType" ) );
    }

    /**
      Get Delete after type default value
    */
    static
    int defaultDeleteAfterTypeValue()
    {
        return defaultDeleteAfterTypeValue_helper();
    }

    /**
      Set Sidebar collapsed
    */
    static
    void setSidebarCollapsed( bool v )
    {
      if (v != self()->mSidebarCollapsed && !self()->isSidebarCollapsedImmutable()) {
        self()->mSidebarCollapsed = v;
        Q_EMIT self()->sidebarCollapsedChanged();
      }
    }

    Q_PROPERTY(bool sidebarCollapsed READ sidebarCollapsed WRITE setSidebarCollapsed NOTIFY sidebarCollapsedChanged)
    Q_PROPERTY(bool isSidebarCollapsedImmutable READ isSidebarCollapsedImmutable CONSTANT)
    Q_PROPERTY(bool defaultSidebarCollapsedValue READ defaultSidebarCollapsedValue CONSTANT)
    /**
      Get Sidebar collapsed
    */
    static
    bool sidebarCollapsed()
    {
      return self()->mSidebarCollapsed;
    }

    /**
      Is Sidebar collapsed Immutable
    */
    static
    bool isSidebarCollapsedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "sidebarCollapsed" ) );
    }

    /**
      Get Sidebar collapsed default value
    */
    static
    bool defaultSidebarCollapsedValue()
    {
        return defaultSidebarCollapsedValue_helper();
    }


    enum {
      signalDeleteAfterCountChanged = 1,
      signalArticleFontSizeChanged = 2,
      signalArticleFontUseSystemChanged = 3,
      signalDeleteAfterTypeChanged = 4,
      signalSidebarCollapsedChanged = 5
    };

  Q_SIGNALS:
    void deleteAfterCountChanged();

    void articleFontSizeChanged();

    void articleFontUseSystemChanged();

    void deleteAfterTypeChanged();

    void sidebarCollapsedChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    AlligatorSettings(QObject *parent = nullptr);
    friend class AlligatorSettingsHelper;


    // General
    int mDeleteAfterCount;
    static int defaultDeleteAfterCountValue_helper();
    int mArticleFontSize;
    static int defaultArticleFontSizeValue_helper();
    bool mArticleFontUseSystem;
    static bool defaultArticleFontUseSystemValue_helper();
    int mDeleteAfterType;
    static int defaultDeleteAfterTypeValue_helper();
    bool mSidebarCollapsed;
    static bool defaultSidebarCollapsedValue_helper();
};

#endif

