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

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

class QQmlEngine;
class QJSEngine;

class KalmSettings : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

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

    /**
      Set Show info button
    */
    static
    void setShowInfoButton( bool v )
    {
      if (v != self()->mShowInfoButton && !self()->isShowInfoButtonImmutable()) {
        self()->mShowInfoButton = v;
        Q_EMIT self()->showInfoButtonChanged();
      }
    }

    Q_PROPERTY(bool showInfoButton READ showInfoButton WRITE setShowInfoButton NOTIFY showInfoButtonChanged)
    Q_PROPERTY(bool isShowInfoButtonImmutable READ isShowInfoButtonImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowInfoButtonValue READ defaultShowInfoButtonValue CONSTANT)
    /**
      Get Show info button
    */
    static
    bool showInfoButton()
    {
      return self()->mShowInfoButton;
    }

    /**
      Is Show info button Immutable
    */
    static
    bool isShowInfoButtonImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showInfoButton" ) );
    }

    /**
      Get Show info button default value
    */
    static
    bool defaultShowInfoButtonValue()
    {
        return defaultShowInfoButtonValue_helper();
    }

    /**
      Set Breathe out duration
    */
    static
    void setBreatheOutDuration( uint v )
    {
      if (v != self()->mBreatheOutDuration && !self()->isBreatheOutDurationImmutable()) {
        self()->mBreatheOutDuration = v;
        Q_EMIT self()->breatheOutDurationChanged();
      }
    }

    Q_PROPERTY(uint breatheOutDuration READ breatheOutDuration WRITE setBreatheOutDuration NOTIFY breatheOutDurationChanged)
    Q_PROPERTY(bool isBreatheOutDurationImmutable READ isBreatheOutDurationImmutable CONSTANT)
    Q_PROPERTY(uint defaultBreatheOutDurationValue READ defaultBreatheOutDurationValue CONSTANT)
    /**
      Get Breathe out duration
    */
    static
    uint breatheOutDuration()
    {
      return self()->mBreatheOutDuration;
    }

    /**
      Is Breathe out duration Immutable
    */
    static
    bool isBreatheOutDurationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "breatheOutDuration" ) );
    }

    /**
      Get Breathe out duration default value
    */
    static
    uint defaultBreatheOutDurationValue()
    {
        return defaultBreatheOutDurationValue_helper();
    }


    enum {
      signalShowInfoButtonChanged = 1,
      signalBreatheOutDurationChanged = 2
    };

  Q_SIGNALS:
    void showInfoButtonChanged();

    void breatheOutDurationChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    KalmSettings();
    friend class KalmSettingsHelper;


    // General
    bool mShowInfoButton;
    static bool defaultShowInfoButtonValue_helper();

    // Coordinated Breathing
    uint mBreatheOutDuration;
    static uint defaultBreatheOutDurationValue_helper();
};

#endif

