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

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

class LookAndFeelSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

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

    /**
      Set Global look and feel
    */
    void setLookAndFeelPackage( const QString & v )
    {
      if (v != mLookAndFeelPackage && !isLookAndFeelPackageImmutable()) {
        mLookAndFeelPackage = v;
        Q_EMIT lookAndFeelPackageChanged();
      }
    }

    Q_PROPERTY(QString lookAndFeelPackage READ lookAndFeelPackage WRITE setLookAndFeelPackage NOTIFY lookAndFeelPackageChanged)
    Q_PROPERTY(bool isLookAndFeelPackageImmutable READ isLookAndFeelPackageImmutable CONSTANT)
    Q_PROPERTY(QString defaultLookAndFeelPackageValue READ defaultLookAndFeelPackageValue CONSTANT)
    /**
      Get Global look and feel
    */
    QString lookAndFeelPackage() const
    {
      return mLookAndFeelPackage;
    }

    /**
      Is Global look and feel Immutable
    */
    bool isLookAndFeelPackageImmutable() const
    {
      return isImmutable( QStringLiteral( "lookAndFeelPackage" ) );
    }

    /**
      Get Global look and feel default value
    */
    QString defaultLookAndFeelPackageValue() const
    {
        return defaultLookAndFeelPackageValue_helper();
    }

    /**
      Set Global Look and Feel package, alternate
    */
    void setDefaultLightLookAndFeel( const QString & v )
    {
      if (v != mDefaultLightLookAndFeel && !isDefaultLightLookAndFeelImmutable()) {
        mDefaultLightLookAndFeel = v;
        Q_EMIT defaultLightLookAndFeelChanged();
      }
    }

    Q_PROPERTY(QString defaultLightLookAndFeel READ defaultLightLookAndFeel WRITE setDefaultLightLookAndFeel NOTIFY defaultLightLookAndFeelChanged)
    Q_PROPERTY(bool isDefaultLightLookAndFeelImmutable READ isDefaultLightLookAndFeelImmutable CONSTANT)
    Q_PROPERTY(QString defaultDefaultLightLookAndFeelValue READ defaultDefaultLightLookAndFeelValue CONSTANT)
    /**
      Get Global Look and Feel package, alternate
    */
    QString defaultLightLookAndFeel() const
    {
      return mDefaultLightLookAndFeel;
    }

    /**
      Is Global Look and Feel package, alternate Immutable
    */
    bool isDefaultLightLookAndFeelImmutable() const
    {
      return isImmutable( QStringLiteral( "defaultLightLookAndFeel" ) );
    }

    /**
      Get Global Look and Feel package, alternate default value
    */
    QString defaultDefaultLightLookAndFeelValue() const
    {
        return defaultDefaultLightLookAndFeelValue_helper();
    }

    /**
      Set Global Look and Feel package, alternate
    */
    void setDefaultDarkLookAndFeel( const QString & v )
    {
      if (v != mDefaultDarkLookAndFeel && !isDefaultDarkLookAndFeelImmutable()) {
        mDefaultDarkLookAndFeel = v;
        Q_EMIT defaultDarkLookAndFeelChanged();
      }
    }

    Q_PROPERTY(QString defaultDarkLookAndFeel READ defaultDarkLookAndFeel WRITE setDefaultDarkLookAndFeel NOTIFY defaultDarkLookAndFeelChanged)
    Q_PROPERTY(bool isDefaultDarkLookAndFeelImmutable READ isDefaultDarkLookAndFeelImmutable CONSTANT)
    Q_PROPERTY(QString defaultDefaultDarkLookAndFeelValue READ defaultDefaultDarkLookAndFeelValue CONSTANT)
    /**
      Get Global Look and Feel package, alternate
    */
    QString defaultDarkLookAndFeel() const
    {
      return mDefaultDarkLookAndFeel;
    }

    /**
      Is Global Look and Feel package, alternate Immutable
    */
    bool isDefaultDarkLookAndFeelImmutable() const
    {
      return isImmutable( QStringLiteral( "defaultDarkLookAndFeel" ) );
    }

    /**
      Get Global Look and Feel package, alternate default value
    */
    QString defaultDefaultDarkLookAndFeelValue() const
    {
        return defaultDefaultDarkLookAndFeelValue_helper();
    }

    /**
      Set Switch between dark and light global themes depending on time of day
    */
    void setAutomaticLookAndFeel( bool v )
    {
      if (v != mAutomaticLookAndFeel && !isAutomaticLookAndFeelImmutable()) {
        mAutomaticLookAndFeel = v;
        Q_EMIT automaticLookAndFeelChanged();
      }
    }

    Q_PROPERTY(bool automaticLookAndFeel READ automaticLookAndFeel WRITE setAutomaticLookAndFeel NOTIFY automaticLookAndFeelChanged)
    Q_PROPERTY(bool isAutomaticLookAndFeelImmutable READ isAutomaticLookAndFeelImmutable CONSTANT)
    Q_PROPERTY(bool defaultAutomaticLookAndFeelValue READ defaultAutomaticLookAndFeelValue CONSTANT)
    /**
      Get Switch between dark and light global themes depending on time of day
    */
    bool automaticLookAndFeel() const
    {
      return mAutomaticLookAndFeel;
    }

    /**
      Is Switch between dark and light global themes depending on time of day Immutable
    */
    bool isAutomaticLookAndFeelImmutable() const
    {
      return isImmutable( QStringLiteral( "automaticLookAndFeel" ) );
    }

    /**
      Get Switch between dark and light global themes depending on time of day default value
    */
    bool defaultAutomaticLookAndFeelValue() const
    {
        return defaultAutomaticLookAndFeelValue_helper();
    }

    /**
      Set Switch between dark and light global themes when the computer is idle
    */
    void setAutomaticLookAndFeelOnIdle( bool v )
    {
      if (v != mAutomaticLookAndFeelOnIdle && !isAutomaticLookAndFeelOnIdleImmutable()) {
        mAutomaticLookAndFeelOnIdle = v;
        Q_EMIT automaticLookAndFeelOnIdleChanged();
      }
    }

    Q_PROPERTY(bool automaticLookAndFeelOnIdle READ automaticLookAndFeelOnIdle WRITE setAutomaticLookAndFeelOnIdle NOTIFY automaticLookAndFeelOnIdleChanged)
    Q_PROPERTY(bool isAutomaticLookAndFeelOnIdleImmutable READ isAutomaticLookAndFeelOnIdleImmutable CONSTANT)
    Q_PROPERTY(bool defaultAutomaticLookAndFeelOnIdleValue READ defaultAutomaticLookAndFeelOnIdleValue CONSTANT)
    /**
      Get Switch between dark and light global themes when the computer is idle
    */
    bool automaticLookAndFeelOnIdle() const
    {
      return mAutomaticLookAndFeelOnIdle;
    }

    /**
      Is Switch between dark and light global themes when the computer is idle Immutable
    */
    bool isAutomaticLookAndFeelOnIdleImmutable() const
    {
      return isImmutable( QStringLiteral( "automaticLookAndFeelOnIdle" ) );
    }

    /**
      Get Switch between dark and light global themes when the computer is idle default value
    */
    bool defaultAutomaticLookAndFeelOnIdleValue() const
    {
        return defaultAutomaticLookAndFeelOnIdleValue_helper();
    }

    /**
      Set How long the computer should be idle in order to switch between dark and light global themes, in seconds
    */
    void setAutomaticLookAndFeelIdleInterval( uint v )
    {
      if (v != mAutomaticLookAndFeelIdleInterval && !isAutomaticLookAndFeelIdleIntervalImmutable()) {
        mAutomaticLookAndFeelIdleInterval = v;
        Q_EMIT automaticLookAndFeelIdleIntervalChanged();
      }
    }

    Q_PROPERTY(uint automaticLookAndFeelIdleInterval READ automaticLookAndFeelIdleInterval WRITE setAutomaticLookAndFeelIdleInterval NOTIFY automaticLookAndFeelIdleIntervalChanged)
    Q_PROPERTY(bool isAutomaticLookAndFeelIdleIntervalImmutable READ isAutomaticLookAndFeelIdleIntervalImmutable CONSTANT)
    Q_PROPERTY(uint defaultAutomaticLookAndFeelIdleIntervalValue READ defaultAutomaticLookAndFeelIdleIntervalValue CONSTANT)
    /**
      Get How long the computer should be idle in order to switch between dark and light global themes, in seconds
    */
    uint automaticLookAndFeelIdleInterval() const
    {
      return mAutomaticLookAndFeelIdleInterval;
    }

    /**
      Is How long the computer should be idle in order to switch between dark and light global themes, in seconds Immutable
    */
    bool isAutomaticLookAndFeelIdleIntervalImmutable() const
    {
      return isImmutable( QStringLiteral( "automaticLookAndFeelIdleInterval" ) );
    }

    /**
      Get How long the computer should be idle in order to switch between dark and light global themes, in seconds default value
    */
    uint defaultAutomaticLookAndFeelIdleIntervalValue() const
    {
        return defaultAutomaticLookAndFeelIdleIntervalValue_helper();
    }


    enum {
      signalLookAndFeelPackageChanged = 1,
      signalDefaultLightLookAndFeelChanged = 2,
      signalDefaultDarkLookAndFeelChanged = 3,
      signalAutomaticLookAndFeelChanged = 4,
      signalAutomaticLookAndFeelOnIdleChanged = 5,
      signalAutomaticLookAndFeelIdleIntervalChanged = 6
    };

  Q_SIGNALS:
    void lookAndFeelPackageChanged();

    void defaultLightLookAndFeelChanged();

    void defaultDarkLookAndFeelChanged();

    void automaticLookAndFeelChanged();

    void automaticLookAndFeelOnIdleChanged();

    void automaticLookAndFeelIdleIntervalChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // KDE
    QString mLookAndFeelPackage;
    QString defaultLookAndFeelPackageValue_helper() const;
    QString mDefaultLightLookAndFeel;
    QString defaultDefaultLightLookAndFeelValue_helper() const;
    QString mDefaultDarkLookAndFeel;
    QString defaultDefaultDarkLookAndFeelValue_helper() const;
    bool mAutomaticLookAndFeel;
    bool defaultAutomaticLookAndFeelValue_helper() const;
    bool mAutomaticLookAndFeelOnIdle;
    bool defaultAutomaticLookAndFeelOnIdleValue_helper() const;
    uint mAutomaticLookAndFeelIdleInterval;
    uint defaultAutomaticLookAndFeelIdleIntervalValue_helper() const;
};

#endif

