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

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

class InvertSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

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

    /**
      Set Whether the Invert effect is enabled
    */
    void setInvert( bool v )
    {
      if (v != mInvert && !isInvertImmutable()) {
        mInvert = v;
        Q_EMIT InvertChanged();
      }
    }

    Q_PROPERTY(bool invert READ invert WRITE setInvert NOTIFY InvertChanged)
    Q_PROPERTY(bool isInvertImmutable READ isInvertImmutable CONSTANT)
    Q_PROPERTY(bool defaultInvertValue READ defaultInvertValue CONSTANT)
    /**
      Get Whether the Invert effect is enabled
    */
    bool invert() const
    {
      return mInvert;
    }

    /**
      Is Whether the Invert effect is enabled Immutable
    */
    bool isInvertImmutable() const
    {
      return isImmutable( QStringLiteral( "Invert" ) );
    }

    /**
      Get Whether the Invert effect is enabled default value
    */
    bool defaultInvertValue() const
    {
        return defaultInvertValue_helper();
    }


    enum {
      signalInvertChanged = 1
    };

  Q_SIGNALS:
    void InvertChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // Plugins
    bool mInvert;
    bool defaultInvertValue_helper() const;
};

#endif

