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

#include "settings.h"
#include "notificationmanager_export.h"

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

namespace NotificationManager {

class NOTIFICATIONMANAGER_EXPORT NotificationSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

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

    /**
      Set CriticalInDndMode
    */
    void setCriticalInDndMode( bool v )
    {
      if (v != mCriticalInDndMode && !isCriticalInDndModeImmutable()) {
        mCriticalInDndMode = v;
        Q_EMIT CriticalInDndModeChanged();
      }
    }

    Q_PROPERTY(bool criticalInDndMode READ criticalInDndMode WRITE setCriticalInDndMode NOTIFY CriticalInDndModeChanged)
    Q_PROPERTY(bool isCriticalInDndModeImmutable READ isCriticalInDndModeImmutable CONSTANT)
    /**
      Get CriticalInDndMode
    */
    bool criticalInDndMode() const
    {
      return mCriticalInDndMode;
    }

    /**
      Is CriticalInDndMode Immutable
    */
    bool isCriticalInDndModeImmutable() const
    {
      return isImmutable( QStringLiteral( "CriticalInDndMode" ) );
    }

    /**
      Get CriticalInDndMode default value
    */
    bool defaultCriticalInDndModeValue() const
    {
        return defaultCriticalInDndModeValue_helper();
    }

    /**
      Set CriticalAlwaysOnTop
    */
    void setCriticalAlwaysOnTop( bool v )
    {
      if (v != mCriticalAlwaysOnTop && !isCriticalAlwaysOnTopImmutable()) {
        mCriticalAlwaysOnTop = v;
        Q_EMIT CriticalAlwaysOnTopChanged();
      }
    }

    Q_PROPERTY(bool criticalAlwaysOnTop READ criticalAlwaysOnTop WRITE setCriticalAlwaysOnTop NOTIFY CriticalAlwaysOnTopChanged)
    Q_PROPERTY(bool isCriticalAlwaysOnTopImmutable READ isCriticalAlwaysOnTopImmutable CONSTANT)
    /**
      Get CriticalAlwaysOnTop
    */
    bool criticalAlwaysOnTop() const
    {
      return mCriticalAlwaysOnTop;
    }

    /**
      Is CriticalAlwaysOnTop Immutable
    */
    bool isCriticalAlwaysOnTopImmutable() const
    {
      return isImmutable( QStringLiteral( "CriticalAlwaysOnTop" ) );
    }

    /**
      Get CriticalAlwaysOnTop default value
    */
    bool defaultCriticalAlwaysOnTopValue() const
    {
        return defaultCriticalAlwaysOnTopValue_helper();
    }

    /**
      Set LowPriorityPopups
    */
    void setLowPriorityPopups( bool v )
    {
      if (v != mLowPriorityPopups && !isLowPriorityPopupsImmutable()) {
        mLowPriorityPopups = v;
        Q_EMIT LowPriorityPopupsChanged();
      }
    }

    Q_PROPERTY(bool lowPriorityPopups READ lowPriorityPopups WRITE setLowPriorityPopups NOTIFY LowPriorityPopupsChanged)
    Q_PROPERTY(bool isLowPriorityPopupsImmutable READ isLowPriorityPopupsImmutable CONSTANT)
    /**
      Get LowPriorityPopups
    */
    bool lowPriorityPopups() const
    {
      return mLowPriorityPopups;
    }

    /**
      Is LowPriorityPopups Immutable
    */
    bool isLowPriorityPopupsImmutable() const
    {
      return isImmutable( QStringLiteral( "LowPriorityPopups" ) );
    }

    /**
      Get LowPriorityPopups default value
    */
    bool defaultLowPriorityPopupsValue() const
    {
        return defaultLowPriorityPopupsValue_helper();
    }

    /**
      Set LowPriorityHistory
    */
    void setLowPriorityHistory( bool v )
    {
      if (v != mLowPriorityHistory && !isLowPriorityHistoryImmutable()) {
        mLowPriorityHistory = v;
        Q_EMIT LowPriorityHistoryChanged();
      }
    }

    Q_PROPERTY(bool lowPriorityHistory READ lowPriorityHistory WRITE setLowPriorityHistory NOTIFY LowPriorityHistoryChanged)
    Q_PROPERTY(bool isLowPriorityHistoryImmutable READ isLowPriorityHistoryImmutable CONSTANT)
    /**
      Get LowPriorityHistory
    */
    bool lowPriorityHistory() const
    {
      return mLowPriorityHistory;
    }

    /**
      Is LowPriorityHistory Immutable
    */
    bool isLowPriorityHistoryImmutable() const
    {
      return isImmutable( QStringLiteral( "LowPriorityHistory" ) );
    }

    /**
      Get LowPriorityHistory default value
    */
    bool defaultLowPriorityHistoryValue() const
    {
        return defaultLowPriorityHistoryValue_helper();
    }

    /**
      Set PopupPosition
    */
    void setPopupPosition( int v )
    {
      if (v != mPopupPosition && !isPopupPositionImmutable()) {
        mPopupPosition = v;
        Q_EMIT PopupPositionChanged();
      }
    }

    Q_PROPERTY(int popupPosition READ popupPosition WRITE setPopupPosition NOTIFY PopupPositionChanged)
    Q_PROPERTY(bool isPopupPositionImmutable READ isPopupPositionImmutable CONSTANT)
    /**
      Get PopupPosition
    */
    int popupPosition() const
    {
      return mPopupPosition;
    }

    /**
      Is PopupPosition Immutable
    */
    bool isPopupPositionImmutable() const
    {
      return isImmutable( QStringLiteral( "PopupPosition" ) );
    }

    /**
      Get PopupPosition default value
    */
    int defaultPopupPositionValue() const
    {
        return defaultPopupPositionValue_helper();
    }

    /**
      Set PopupTimeout
    */
    void setPopupTimeout( int v )
    {
      if (v != mPopupTimeout && !isPopupTimeoutImmutable()) {
        mPopupTimeout = v;
        Q_EMIT PopupTimeoutChanged();
      }
    }

    Q_PROPERTY(int popupTimeout READ popupTimeout WRITE setPopupTimeout NOTIFY PopupTimeoutChanged)
    Q_PROPERTY(bool isPopupTimeoutImmutable READ isPopupTimeoutImmutable CONSTANT)
    /**
      Get PopupTimeout
    */
    int popupTimeout() const
    {
      return mPopupTimeout;
    }

    /**
      Is PopupTimeout Immutable
    */
    bool isPopupTimeoutImmutable() const
    {
      return isImmutable( QStringLiteral( "PopupTimeout" ) );
    }

    /**
      Get PopupTimeout default value
    */
    int defaultPopupTimeoutValue() const
    {
        return defaultPopupTimeoutValue_helper();
    }


    enum {
      signalCriticalInDndModeChanged = 0x1,
      signalCriticalAlwaysOnTopChanged = 0x2,
      signalLowPriorityPopupsChanged = 0x4,
      signalLowPriorityHistoryChanged = 0x8,
      signalPopupPositionChanged = 0x10,
      signalPopupTimeoutChanged = 0x20
    };

  Q_SIGNALS:
    void CriticalInDndModeChanged();

    void CriticalAlwaysOnTopChanged();

    void LowPriorityPopupsChanged();

    void LowPriorityHistoryChanged();

    void PopupPositionChanged();

    void PopupTimeoutChanged();

  private:
    void itemChanged(quint64 flags);

  protected:

    // Notifications
    bool mCriticalInDndMode;
    bool defaultCriticalInDndModeValue_helper() const;
    bool mCriticalAlwaysOnTop;
    bool defaultCriticalAlwaysOnTopValue_helper() const;
    bool mLowPriorityPopups;
    bool defaultLowPriorityPopupsValue_helper() const;
    bool mLowPriorityHistory;
    bool defaultLowPriorityHistoryValue_helper() const;
    int mPopupPosition;
    int defaultPopupPositionValue_helper() const;
    int mPopupTimeout;
    int defaultPopupTimeoutValue_helper() const;

  private:
};

}

#endif

