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

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

class QQmlEngine;
class QJSEngine;

class Config : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

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

    /**
      Set How long is the interval.
    */
    static
    void setIntervalTime( int v )
    {
      if (v != self()->mIntervalTime && !self()->isIntervalTimeImmutable()) {
        self()->mIntervalTime = v;
        Q_EMIT self()->IntervalTimeChanged();
      }
    }

    Q_PROPERTY(int intervalTime READ intervalTime WRITE setIntervalTime NOTIFY IntervalTimeChanged)
    Q_PROPERTY(bool isIntervalTimeImmutable READ isIntervalTimeImmutable CONSTANT)
    Q_PROPERTY(int defaultIntervalTimeValue READ defaultIntervalTimeValue CONSTANT)
    /**
      Get How long is the interval.
    */
    static
    int intervalTime()
    {
      return self()->mIntervalTime;
    }

    /**
      Is How long is the interval. Immutable
    */
    static
    bool isIntervalTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "IntervalTime" ) );
    }

    /**
      Get How long is the interval. default value
    */
    static
    int defaultIntervalTimeValue()
    {
        return defaultIntervalTimeValue_helper();
    }

    /**
      Set How long is the break.
    */
    static
    void setBreakTime( int v )
    {
      if (v != self()->mBreakTime && !self()->isBreakTimeImmutable()) {
        self()->mBreakTime = v;
        Q_EMIT self()->BreakTimeChanged();
      }
    }

    Q_PROPERTY(int breakTime READ breakTime WRITE setBreakTime NOTIFY BreakTimeChanged)
    Q_PROPERTY(bool isBreakTimeImmutable READ isBreakTimeImmutable CONSTANT)
    Q_PROPERTY(int defaultBreakTimeValue READ defaultBreakTimeValue CONSTANT)
    /**
      Get How long is the break.
    */
    static
    int breakTime()
    {
      return self()->mBreakTime;
    }

    /**
      Is How long is the break. Immutable
    */
    static
    bool isBreakTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BreakTime" ) );
    }

    /**
      Get How long is the break. default value
    */
    static
    int defaultBreakTimeValue()
    {
        return defaultBreakTimeValue_helper();
    }

    /**
      Set How long is the long break.
    */
    static
    void setLongBreakTime( int v )
    {
      if (v != self()->mLongBreakTime && !self()->isLongBreakTimeImmutable()) {
        self()->mLongBreakTime = v;
        Q_EMIT self()->LongBreakTimeChanged();
      }
    }

    Q_PROPERTY(int longBreakTime READ longBreakTime WRITE setLongBreakTime NOTIFY LongBreakTimeChanged)
    Q_PROPERTY(bool isLongBreakTimeImmutable READ isLongBreakTimeImmutable CONSTANT)
    Q_PROPERTY(int defaultLongBreakTimeValue READ defaultLongBreakTimeValue CONSTANT)
    /**
      Get How long is the long break.
    */
    static
    int longBreakTime()
    {
      return self()->mLongBreakTime;
    }

    /**
      Is How long is the long break. Immutable
    */
    static
    bool isLongBreakTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LongBreakTime" ) );
    }

    /**
      Get How long is the long break. default value
    */
    static
    int defaultLongBreakTimeValue()
    {
        return defaultLongBreakTimeValue_helper();
    }

    /**
      Set Whether notifications are critical urgency, bypassing Do Not Disturb
    */
    static
    void setCriticalUrgencyNotification( bool v )
    {
      if (v != self()->mCriticalUrgencyNotification && !self()->isCriticalUrgencyNotificationImmutable()) {
        self()->mCriticalUrgencyNotification = v;
        Q_EMIT self()->CriticalUrgencyNotificationChanged();
      }
    }

    Q_PROPERTY(bool criticalUrgencyNotification READ criticalUrgencyNotification WRITE setCriticalUrgencyNotification NOTIFY CriticalUrgencyNotificationChanged)
    Q_PROPERTY(bool isCriticalUrgencyNotificationImmutable READ isCriticalUrgencyNotificationImmutable CONSTANT)
    Q_PROPERTY(bool defaultCriticalUrgencyNotificationValue READ defaultCriticalUrgencyNotificationValue CONSTANT)
    /**
      Get Whether notifications are critical urgency, bypassing Do Not Disturb
    */
    static
    bool criticalUrgencyNotification()
    {
      return self()->mCriticalUrgencyNotification;
    }

    /**
      Is Whether notifications are critical urgency, bypassing Do Not Disturb Immutable
    */
    static
    bool isCriticalUrgencyNotificationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CriticalUrgencyNotification" ) );
    }

    /**
      Get Whether notifications are critical urgency, bypassing Do Not Disturb default value
    */
    static
    bool defaultCriticalUrgencyNotificationValue()
    {
        return defaultCriticalUrgencyNotificationValue_helper();
    }


    enum {
      signalIntervalTimeChanged = 1,
      signalBreakTimeChanged = 2,
      signalLongBreakTimeChanged = 3,
      signalCriticalUrgencyNotificationChanged = 4
    };

  Q_SIGNALS:
    void IntervalTimeChanged();

    void BreakTimeChanged();

    void LongBreakTimeChanged();

    void CriticalUrgencyNotificationChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    Config(QObject *parent = nullptr);
    friend class ConfigHelper;


    // General
    int mIntervalTime;
    static int defaultIntervalTimeValue_helper();
    int mBreakTime;
    static int defaultBreakTimeValue_helper();
    int mLongBreakTime;
    static int defaultLongBreakTimeValue_helper();
    bool mCriticalUrgencyNotification;
    static bool defaultCriticalUrgencyNotificationValue_helper();
};

#endif

