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

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

class KeyboardFiltersSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

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

    /**
      Set Use slow keypresses
    */
    void setSlowKeys( bool v )
    {
      if (v != mSlowKeys && !isSlowKeysImmutable()) {
        mSlowKeys = v;
        Q_EMIT SlowKeysChanged();
      }
    }

    Q_PROPERTY(bool slowKeys READ slowKeys WRITE setSlowKeys NOTIFY SlowKeysChanged)
    Q_PROPERTY(bool isSlowKeysImmutable READ isSlowKeysImmutable CONSTANT)
    Q_PROPERTY(bool defaultSlowKeysValue READ defaultSlowKeysValue CONSTANT)
    /**
      Get Use slow keypresses
    */
    bool slowKeys() const
    {
      return mSlowKeys;
    }

    /**
      Is Use slow keypresses Immutable
    */
    bool isSlowKeysImmutable() const
    {
      return isImmutable( QStringLiteral( "SlowKeys" ) );
    }

    /**
      Get Use slow keypresses default value
    */
    bool defaultSlowKeysValue() const
    {
        return defaultSlowKeysValue_helper();
    }

    /**
      Set Delay for the key press
    */
    void setSlowKeysDelay( int v )
    {
      if (v != mSlowKeysDelay && !isSlowKeysDelayImmutable()) {
        mSlowKeysDelay = v;
        Q_EMIT SlowKeysDelayChanged();
      }
    }

    Q_PROPERTY(int slowKeysDelay READ slowKeysDelay WRITE setSlowKeysDelay NOTIFY SlowKeysDelayChanged)
    Q_PROPERTY(bool isSlowKeysDelayImmutable READ isSlowKeysDelayImmutable CONSTANT)
    Q_PROPERTY(int defaultSlowKeysDelayValue READ defaultSlowKeysDelayValue CONSTANT)
    /**
      Get Delay for the key press
    */
    int slowKeysDelay() const
    {
      return mSlowKeysDelay;
    }

    /**
      Is Delay for the key press Immutable
    */
    bool isSlowKeysDelayImmutable() const
    {
      return isImmutable( QStringLiteral( "SlowKeysDelay" ) );
    }

    /**
      Get Delay for the key press default value
    */
    int defaultSlowKeysDelayValue() const
    {
        return defaultSlowKeysDelayValue_helper();
    }

    /**
      Set Beep on a slow keypress
    */
    void setSlowKeysPressBeep( bool v )
    {
      if (v != mSlowKeysPressBeep && !isSlowKeysPressBeepImmutable()) {
        mSlowKeysPressBeep = v;
        Q_EMIT SlowKeysPressBeepChanged();
      }
    }

    Q_PROPERTY(bool slowKeysPressBeep READ slowKeysPressBeep WRITE setSlowKeysPressBeep NOTIFY SlowKeysPressBeepChanged)
    Q_PROPERTY(bool isSlowKeysPressBeepImmutable READ isSlowKeysPressBeepImmutable CONSTANT)
    Q_PROPERTY(bool defaultSlowKeysPressBeepValue READ defaultSlowKeysPressBeepValue CONSTANT)
    /**
      Get Beep on a slow keypress
    */
    bool slowKeysPressBeep() const
    {
      return mSlowKeysPressBeep;
    }

    /**
      Is Beep on a slow keypress Immutable
    */
    bool isSlowKeysPressBeepImmutable() const
    {
      return isImmutable( QStringLiteral( "SlowKeysPressBeep" ) );
    }

    /**
      Get Beep on a slow keypress default value
    */
    bool defaultSlowKeysPressBeepValue() const
    {
        return defaultSlowKeysPressBeepValue_helper();
    }

    /**
      Set Beep on an accepted keypress
    */
    void setSlowKeysAcceptBeep( bool v )
    {
      if (v != mSlowKeysAcceptBeep && !isSlowKeysAcceptBeepImmutable()) {
        mSlowKeysAcceptBeep = v;
        Q_EMIT SlowKeysAcceptBeepChanged();
      }
    }

    Q_PROPERTY(bool slowKeysAcceptBeep READ slowKeysAcceptBeep WRITE setSlowKeysAcceptBeep NOTIFY SlowKeysAcceptBeepChanged)
    Q_PROPERTY(bool isSlowKeysAcceptBeepImmutable READ isSlowKeysAcceptBeepImmutable CONSTANT)
    Q_PROPERTY(bool defaultSlowKeysAcceptBeepValue READ defaultSlowKeysAcceptBeepValue CONSTANT)
    /**
      Get Beep on an accepted keypress
    */
    bool slowKeysAcceptBeep() const
    {
      return mSlowKeysAcceptBeep;
    }

    /**
      Is Beep on an accepted keypress Immutable
    */
    bool isSlowKeysAcceptBeepImmutable() const
    {
      return isImmutable( QStringLiteral( "SlowKeysAcceptBeep" ) );
    }

    /**
      Get Beep on an accepted keypress default value
    */
    bool defaultSlowKeysAcceptBeepValue() const
    {
        return defaultSlowKeysAcceptBeepValue_helper();
    }

    /**
      Set Beep on a rejected keypress
    */
    void setSlowKeysRejectBeep( bool v )
    {
      if (v != mSlowKeysRejectBeep && !isSlowKeysRejectBeepImmutable()) {
        mSlowKeysRejectBeep = v;
        Q_EMIT SlowKeysRejectBeepChanged();
      }
    }

    Q_PROPERTY(bool slowKeysRejectBeep READ slowKeysRejectBeep WRITE setSlowKeysRejectBeep NOTIFY SlowKeysRejectBeepChanged)
    Q_PROPERTY(bool isSlowKeysRejectBeepImmutable READ isSlowKeysRejectBeepImmutable CONSTANT)
    Q_PROPERTY(bool defaultSlowKeysRejectBeepValue READ defaultSlowKeysRejectBeepValue CONSTANT)
    /**
      Get Beep on a rejected keypress
    */
    bool slowKeysRejectBeep() const
    {
      return mSlowKeysRejectBeep;
    }

    /**
      Is Beep on a rejected keypress Immutable
    */
    bool isSlowKeysRejectBeepImmutable() const
    {
      return isImmutable( QStringLiteral( "SlowKeysRejectBeep" ) );
    }

    /**
      Get Beep on a rejected keypress default value
    */
    bool defaultSlowKeysRejectBeepValue() const
    {
        return defaultSlowKeysRejectBeepValue_helper();
    }

    /**
      Set Bounce Keys
    */
    void setBounceKeys( bool v )
    {
      if (v != mBounceKeys && !isBounceKeysImmutable()) {
        mBounceKeys = v;
        Q_EMIT BounceKeysChanged();
      }
    }

    Q_PROPERTY(bool bounceKeys READ bounceKeys WRITE setBounceKeys NOTIFY BounceKeysChanged)
    Q_PROPERTY(bool isBounceKeysImmutable READ isBounceKeysImmutable CONSTANT)
    Q_PROPERTY(bool defaultBounceKeysValue READ defaultBounceKeysValue CONSTANT)
    /**
      Get Bounce Keys
    */
    bool bounceKeys() const
    {
      return mBounceKeys;
    }

    /**
      Is Bounce Keys Immutable
    */
    bool isBounceKeysImmutable() const
    {
      return isImmutable( QStringLiteral( "BounceKeys" ) );
    }

    /**
      Get Bounce Keys default value
    */
    bool defaultBounceKeysValue() const
    {
        return defaultBounceKeysValue_helper();
    }

    /**
      Set Use a delay for bouncing
    */
    void setBounceKeysDelay( int v )
    {
      if (v != mBounceKeysDelay && !isBounceKeysDelayImmutable()) {
        mBounceKeysDelay = v;
        Q_EMIT BounceKeysDelayChanged();
      }
    }

    Q_PROPERTY(int bounceKeysDelay READ bounceKeysDelay WRITE setBounceKeysDelay NOTIFY BounceKeysDelayChanged)
    Q_PROPERTY(bool isBounceKeysDelayImmutable READ isBounceKeysDelayImmutable CONSTANT)
    Q_PROPERTY(int defaultBounceKeysDelayValue READ defaultBounceKeysDelayValue CONSTANT)
    /**
      Get Use a delay for bouncing
    */
    int bounceKeysDelay() const
    {
      return mBounceKeysDelay;
    }

    /**
      Is Use a delay for bouncing Immutable
    */
    bool isBounceKeysDelayImmutable() const
    {
      return isImmutable( QStringLiteral( "BounceKeysDelay" ) );
    }

    /**
      Get Use a delay for bouncing default value
    */
    int defaultBounceKeysDelayValue() const
    {
        return defaultBounceKeysDelayValue_helper();
    }

    /**
      Set Beep if a bounce key event is rejected
    */
    void setBounceKeysRejectBeep( bool v )
    {
      if (v != mBounceKeysRejectBeep && !isBounceKeysRejectBeepImmutable()) {
        mBounceKeysRejectBeep = v;
        Q_EMIT BounceKeysRejectBeepChanged();
      }
    }

    Q_PROPERTY(bool bounceKeysRejectBeep READ bounceKeysRejectBeep WRITE setBounceKeysRejectBeep NOTIFY BounceKeysRejectBeepChanged)
    Q_PROPERTY(bool isBounceKeysRejectBeepImmutable READ isBounceKeysRejectBeepImmutable CONSTANT)
    Q_PROPERTY(bool defaultBounceKeysRejectBeepValue READ defaultBounceKeysRejectBeepValue CONSTANT)
    /**
      Get Beep if a bounce key event is rejected
    */
    bool bounceKeysRejectBeep() const
    {
      return mBounceKeysRejectBeep;
    }

    /**
      Is Beep if a bounce key event is rejected Immutable
    */
    bool isBounceKeysRejectBeepImmutable() const
    {
      return isImmutable( QStringLiteral( "BounceKeysRejectBeep" ) );
    }

    /**
      Get Beep if a bounce key event is rejected default value
    */
    bool defaultBounceKeysRejectBeepValue() const
    {
        return defaultBounceKeysRejectBeepValue_helper();
    }


    enum {
      signalSlowKeysChanged = 1,
      signalSlowKeysDelayChanged = 2,
      signalSlowKeysPressBeepChanged = 3,
      signalSlowKeysAcceptBeepChanged = 4,
      signalSlowKeysRejectBeepChanged = 5,
      signalBounceKeysChanged = 6,
      signalBounceKeysDelayChanged = 7,
      signalBounceKeysRejectBeepChanged = 8
    };

  Q_SIGNALS:
    void SlowKeysChanged();

    void SlowKeysDelayChanged();

    void SlowKeysPressBeepChanged();

    void SlowKeysAcceptBeepChanged();

    void SlowKeysRejectBeepChanged();

    void BounceKeysChanged();

    void BounceKeysDelayChanged();

    void BounceKeysRejectBeepChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // Keyboard
    bool mSlowKeys;
    bool defaultSlowKeysValue_helper() const;
    int mSlowKeysDelay;
    int defaultSlowKeysDelayValue_helper() const;
    bool mSlowKeysPressBeep;
    bool defaultSlowKeysPressBeepValue_helper() const;
    bool mSlowKeysAcceptBeep;
    bool defaultSlowKeysAcceptBeepValue_helper() const;
    bool mSlowKeysRejectBeep;
    bool defaultSlowKeysRejectBeepValue_helper() const;
    bool mBounceKeys;
    bool defaultBounceKeysValue_helper() const;
    int mBounceKeysDelay;
    int defaultBounceKeysDelayValue_helper() const;
    bool mBounceKeysRejectBeep;
    bool defaultBounceKeysRejectBeepValue_helper() const;
};

#endif

