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

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

class GlobalScaleSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

    static GlobalScaleSettings *self();
    ~GlobalScaleSettings() override;

    /**
      Set ScaleFactor
    */
    static
    void setScaleFactor( double v )
    {
      if (v != self()->mScaleFactor && !self()->isScaleFactorImmutable()) {
        self()->mScaleFactor = v;
        Q_EMIT self()->scaleFactorChanged();
      }
    }

    Q_PROPERTY(double scaleFactor READ scaleFactor WRITE setScaleFactor NOTIFY scaleFactorChanged)
    Q_PROPERTY(bool isScaleFactorImmutable READ isScaleFactorImmutable CONSTANT)
    /**
      Get ScaleFactor
    */
    static
    double scaleFactor()
    {
      return self()->mScaleFactor;
    }

    /**
      Is ScaleFactor Immutable
    */
    static
    bool isScaleFactorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "scaleFactor" ) );
    }

    /**
      Set XwaylandClientsScale
    */
    static
    void setXwaylandClientsScale( bool v )
    {
      if (v != self()->mXwaylandClientsScale && !self()->isXwaylandClientsScaleImmutable()) {
        self()->mXwaylandClientsScale = v;
        Q_EMIT self()->xwaylandClientsScaleChanged();
      }
    }

    Q_PROPERTY(bool xwaylandClientsScale READ xwaylandClientsScale WRITE setXwaylandClientsScale NOTIFY xwaylandClientsScaleChanged)
    Q_PROPERTY(bool isXwaylandClientsScaleImmutable READ isXwaylandClientsScaleImmutable CONSTANT)
    /**
      Get XwaylandClientsScale
    */
    static
    bool xwaylandClientsScale()
    {
      return self()->mXwaylandClientsScale;
    }

    /**
      Is XwaylandClientsScale Immutable
    */
    static
    bool isXwaylandClientsScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "xwaylandClientsScale" ) );
    }


    enum {
      signalScaleFactorChanged = 1,
      signalXwaylandClientsScaleChanged = 2
    };

  Q_SIGNALS:
    void scaleFactorChanged();

    void xwaylandClientsScaleChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    GlobalScaleSettings();
    friend class GlobalScaleSettingsHelper;


    // KScreen
    double mScaleFactor;
    bool mXwaylandClientsScale;
};

#endif

