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

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

class WorkspaceOptions : public KConfigSkeleton
{
  Q_OBJECT
  public:

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

    Q_PROPERTY(double delay READ delay CONSTANT)
    Q_PROPERTY(bool isDelayImmutable READ isDelayImmutable 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 Item object corresponding to delay()
    */
    ItemDouble *delayItem()
    {
      return mDelayItem;
    }

    Q_PROPERTY(bool osdEnabled READ osdEnabled CONSTANT)
    Q_PROPERTY(bool isOsdEnabledImmutable READ isOsdEnabledImmutable 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 Item object corresponding to osdEnabled()
    */
    ItemBool *osdEnabledItem()
    {
      return mOsdEnabledItem;
    }

    /**
      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();
    }

    /**
      Get Item object corresponding to osdKbdLayoutChangedEnabled()
    */
    KConfigCompilerSignallingItem *osdKbdLayoutChangedEnabledItem()
    {
      return mOsdKbdLayoutChangedEnabledItem;
    }


    enum {
      signalOsdKbdLayoutChangedEnabledChanged = 1
    };

  Q_SIGNALS:
    void osdKbdLayoutChangedEnabledChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // PlasmaToolTips
    double mDelay;

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

  private:
    ItemDouble *mDelayItem;
    ItemBool *mOsdEnabledItem;
    KConfigCompilerSignallingItem *mOsdKbdLayoutChangedEnabledItem;
};

#endif

