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

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

class QQmlEngine;
class QJSEngine;

class KomodoConfig : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

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

    /**
      Set todo.txt filepath
    */
    static
    void setTodoFilePath( const QString & v )
    {
      if (v != self()->mTodoFilePath && !self()->isTodoFilePathImmutable()) {
        self()->mTodoFilePath = v;
        Q_EMIT self()->TodoFilePathChanged();
      }
    }

    Q_PROPERTY(QString todoFilePath READ todoFilePath WRITE setTodoFilePath NOTIFY TodoFilePathChanged)
    Q_PROPERTY(bool isTodoFilePathImmutable READ isTodoFilePathImmutable CONSTANT)
    /**
      Get todo.txt filepath
    */
    static
    QString todoFilePath()
    {
      return self()->mTodoFilePath;
    }

    /**
      Is todo.txt filepath Immutable
    */
    static
    bool isTodoFilePathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TodoFilePath" ) );
    }

    /**
      Set index of the current filter
    */
    static
    void setFilterIndex( int v )
    {
      if (v != self()->mFilterIndex && !self()->isFilterIndexImmutable()) {
        self()->mFilterIndex = v;
        Q_EMIT self()->FilterIndexChanged();
      }
    }

    Q_PROPERTY(int filterIndex READ filterIndex WRITE setFilterIndex NOTIFY FilterIndexChanged)
    Q_PROPERTY(bool isFilterIndexImmutable READ isFilterIndexImmutable CONSTANT)
    /**
      Get index of the current filter
    */
    static
    int filterIndex()
    {
      return self()->mFilterIndex;
    }

    /**
      Is index of the current filter Immutable
    */
    static
    bool isFilterIndexImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FilterIndex" ) );
    }

    /**
      Set insert creation date automatically to a new task
    */
    static
    void setAutoInsertCreationDate( bool v )
    {
      if (v != self()->mAutoInsertCreationDate && !self()->isAutoInsertCreationDateImmutable()) {
        self()->mAutoInsertCreationDate = v;
        Q_EMIT self()->AutoInsertCreationDateChanged();
      }
    }

    Q_PROPERTY(bool autoInsertCreationDate READ autoInsertCreationDate WRITE setAutoInsertCreationDate NOTIFY AutoInsertCreationDateChanged)
    Q_PROPERTY(bool isAutoInsertCreationDateImmutable READ isAutoInsertCreationDateImmutable CONSTANT)
    Q_PROPERTY(bool defaultAutoInsertCreationDateValue READ defaultAutoInsertCreationDateValue CONSTANT)
    /**
      Get insert creation date automatically to a new task
    */
    static
    bool autoInsertCreationDate()
    {
      return self()->mAutoInsertCreationDate;
    }

    /**
      Is insert creation date automatically to a new task Immutable
    */
    static
    bool isAutoInsertCreationDateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoInsertCreationDate" ) );
    }

    /**
      Get insert creation date automatically to a new task default value
    */
    static
    bool defaultAutoInsertCreationDateValue()
    {
        return defaultAutoInsertCreationDateValue_helper();
    }


    enum {
      signalTodoFilePathChanged = 1,
      signalFilterIndexChanged = 2,
      signalAutoInsertCreationDateChanged = 3
    };

  Q_SIGNALS:
    void TodoFilePathChanged();

    void FilterIndexChanged();

    void AutoInsertCreationDateChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    KomodoConfig();
    friend class KomodoConfigHelper;


    // General
    QString mTodoFilePath;
    static QString defaultTodoFilePathValue_helper();
    int mFilterIndex;
    static int defaultFilterIndexValue_helper();
    bool mAutoInsertCreationDate;
    static bool defaultAutoInsertCreationDateValue_helper();
};

#endif

