// This file is generated by kconfig_compiler_kf5 from donotdisturbsettings.kcfg.
// All changes you do to this file will be lost.
#ifndef NOTIFICATIONMANAGER_DONOTDISTURBSETTINGS_H
#define NOTIFICATIONMANAGER_DONOTDISTURBSETTINGS_H

#include "notificationmanager_export.h"

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

namespace NotificationManager {

class NOTIFICATIONMANAGER_EXPORT DoNotDisturbSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

    DoNotDisturbSettings( QObject *parent = nullptr );
    ~DoNotDisturbSettings();

    /**
      Set Until
    */
    void setUntil( const QDateTime & v )
    {
      if (v != mUntil && !isUntilImmutable()) {
        mUntil = v;
        Q_EMIT UntilChanged();
      }
    }

    Q_PROPERTY(QDateTime until READ until WRITE setUntil NOTIFY UntilChanged)
    Q_PROPERTY(bool isUntilImmutable READ isUntilImmutable CONSTANT)
    /**
      Get Until
    */
    QDateTime until() const
    {
      return mUntil;
    }

    /**
      Is Until Immutable
    */
    bool isUntilImmutable() const
    {
      return isImmutable( QStringLiteral( "Until" ) );
    }

    /**
      Set WhenScreensMirrored
    */
    void setWhenScreensMirrored( bool v )
    {
      if (v != mWhenScreensMirrored && !isWhenScreensMirroredImmutable()) {
        mWhenScreensMirrored = v;
        Q_EMIT WhenScreensMirroredChanged();
      }
    }

    Q_PROPERTY(bool whenScreensMirrored READ whenScreensMirrored WRITE setWhenScreensMirrored NOTIFY WhenScreensMirroredChanged)
    Q_PROPERTY(bool isWhenScreensMirroredImmutable READ isWhenScreensMirroredImmutable CONSTANT)
    /**
      Get WhenScreensMirrored
    */
    bool whenScreensMirrored() const
    {
      return mWhenScreensMirrored;
    }

    /**
      Is WhenScreensMirrored Immutable
    */
    bool isWhenScreensMirroredImmutable() const
    {
      return isImmutable( QStringLiteral( "WhenScreensMirrored" ) );
    }

    /**
      Get WhenScreensMirrored default value
    */
    bool defaultWhenScreensMirroredValue() const
    {
        return defaultWhenScreensMirroredValue_helper();
    }

    /**
      Set NotificationSoundsMuted
    */
    void setNotificationSoundsMuted( bool v )
    {
      if (v != mNotificationSoundsMuted && !isNotificationSoundsMutedImmutable()) {
        mNotificationSoundsMuted = v;
        Q_EMIT NotificationSoundsMutedChanged();
      }
    }

    Q_PROPERTY(bool notificationSoundsMuted READ notificationSoundsMuted WRITE setNotificationSoundsMuted NOTIFY NotificationSoundsMutedChanged)
    Q_PROPERTY(bool isNotificationSoundsMutedImmutable READ isNotificationSoundsMutedImmutable CONSTANT)
    /**
      Get NotificationSoundsMuted
    */
    bool notificationSoundsMuted() const
    {
      return mNotificationSoundsMuted;
    }

    /**
      Is NotificationSoundsMuted Immutable
    */
    bool isNotificationSoundsMutedImmutable() const
    {
      return isImmutable( QStringLiteral( "NotificationSoundsMuted" ) );
    }

    /**
      Get NotificationSoundsMuted default value
    */
    bool defaultNotificationSoundsMutedValue() const
    {
        return defaultNotificationSoundsMutedValue_helper();
    }


    enum {
      signalUntilChanged = 0x1,
      signalWhenScreensMirroredChanged = 0x2,
      signalNotificationSoundsMutedChanged = 0x4
    };

  Q_SIGNALS:
    void UntilChanged();

    void WhenScreensMirroredChanged();

    void NotificationSoundsMutedChanged();

  private:
    void itemChanged(quint64 flags);

  protected:

    // DoNotDisturb
    QDateTime mUntil;
    QDateTime defaultUntilValue_helper() const;
    bool mWhenScreensMirrored;
    bool defaultWhenScreensMirroredValue_helper() const;
    bool mNotificationSoundsMuted;
    bool defaultNotificationSoundsMutedValue_helper() const;

  private:
};

}

#endif

