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

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

class WorkspaceOptionsPlasmaSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

    WorkspaceOptionsPlasmaSettings( QObject *parent = nullptr );
    ~WorkspaceOptionsPlasmaSettings() override;

    /**
      Set Display large panel and widget tooltips
    */
    void setDelay( double v )
    {
      if (v != mDelay && !isDelayImmutable()) {
        mDelay = v;
        Q_EMIT delayChanged();
      }
    }

    Q_PROPERTY(double delay READ delay WRITE setDelay NOTIFY delayChanged)
    Q_PROPERTY(bool isDelayImmutable READ isDelayImmutable CONSTANT)
    Q_PROPERTY(double defaultDelayValue READ defaultDelayValue CONSTANT)
    /**
      Get Display large panel and widget tooltips
    */
    double delay() const
    {
      return mDelay;
    }

    /**
      Is Display large panel and widget tooltips Immutable
    */
    bool isDelayImmutable() const
    {
      return isImmutable( QStringLiteral( "delay" ) );
    }

    /**
      Get Display large panel and widget tooltips default value
    */
    double defaultDelayValue() const
    {
        return defaultDelayValue_helper();
    }

    /**
      Set Display small popups for status changes
    */
    void setOsdEnabled( bool v )
    {
      if (v != mOsdEnabled && !isOsdEnabledImmutable()) {
        mOsdEnabled = v;
        Q_EMIT osdEnabledChanged();
      }
    }

    Q_PROPERTY(bool osdEnabled READ osdEnabled WRITE setOsdEnabled NOTIFY osdEnabledChanged)
    Q_PROPERTY(bool isOsdEnabledImmutable READ isOsdEnabledImmutable CONSTANT)
    Q_PROPERTY(bool defaultOsdEnabledValue READ defaultOsdEnabledValue CONSTANT)
    /**
      Get Display small popups for status changes
    */
    bool osdEnabled() const
    {
      return mOsdEnabled;
    }

    /**
      Is Display small popups for status changes Immutable
    */
    bool isOsdEnabledImmutable() const
    {
      return isImmutable( QStringLiteral( "osdEnabled" ) );
    }

    /**
      Get Display small popups for status changes default value
    */
    bool defaultOsdEnabledValue() const
    {
        return defaultOsdEnabledValue_helper();
    }

    /**
      Set OSD on layout change
    */
    void setOsdKbdLayoutChangedEnabled( bool v )
    {
      if (v != mOsdKbdLayoutChangedEnabled && !isOsdKbdLayoutChangedEnabledImmutable()) {
        mOsdKbdLayoutChangedEnabled = v;
        Q_EMIT osdKbdLayoutChangedEnabledChanged();
      }
    }

    Q_PROPERTY(bool osdKbdLayoutChangedEnabled READ osdKbdLayoutChangedEnabled WRITE setOsdKbdLayoutChangedEnabled NOTIFY osdKbdLayoutChangedEnabledChanged)
    Q_PROPERTY(bool isOsdKbdLayoutChangedEnabledImmutable READ isOsdKbdLayoutChangedEnabledImmutable CONSTANT)
    Q_PROPERTY(bool defaultOsdKbdLayoutChangedEnabledValue READ defaultOsdKbdLayoutChangedEnabledValue CONSTANT)
    /**
      Get OSD on layout change
    */
    bool osdKbdLayoutChangedEnabled() const
    {
      return mOsdKbdLayoutChangedEnabled;
    }

    /**
      Is OSD on layout change Immutable
    */
    bool isOsdKbdLayoutChangedEnabledImmutable() const
    {
      return isImmutable( QStringLiteral( "osdKbdLayoutChangedEnabled" ) );
    }

    /**
      Get OSD on layout change default value
    */
    bool defaultOsdKbdLayoutChangedEnabledValue() const
    {
        return defaultOsdKbdLayoutChangedEnabledValue_helper();
    }


    enum {
      signalDelayChanged = 1,
      signalOsdEnabledChanged = 2,
      signalOsdKbdLayoutChangedEnabledChanged = 3
    };

  Q_SIGNALS:
    void delayChanged();

    void osdEnabledChanged();

    void osdKbdLayoutChangedEnabledChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // PlasmaToolTips
    double mDelay;
    double defaultDelayValue_helper() const;

    // OSD
    bool mOsdEnabled;
    bool defaultOsdEnabledValue_helper() const;
    bool mOsdKbdLayoutChangedEnabled;
    bool defaultOsdKbdLayoutChangedEnabledValue_helper() const;
};

#endif

