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

#include <sddmsettingsbase.h>

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

class SddmSettings : public SddmSettingsBase
{
  Q_OBJECT
  public:

    SddmSettings( KSharedConfig::Ptr config = KSharedConfig::openConfig(), QObject *parent = nullptr );
    ~SddmSettings() override;

    /**
      Set Current
    */
    void setCurrent( const QString & v )
    {
      if (v != mCurrent && !isCurrentImmutable()) {
        mCurrent = v;
        Q_EMIT CurrentChanged();
      }
    }

    Q_PROPERTY(QString current READ current WRITE setCurrent NOTIFY CurrentChanged)
    Q_PROPERTY(bool isCurrentImmutable READ isCurrentImmutable CONSTANT)
    Q_PROPERTY(QString defaultCurrentValue READ defaultCurrentValue CONSTANT)
    /**
      Get Current
    */
    QString current() const
    {
      return mCurrent;
    }

    /**
      Is Current Immutable
    */
    bool isCurrentImmutable() const
    {
      return isImmutable( QStringLiteral( "Current" ) );
    }

    /**
      Get Current default value
    */
    QString defaultCurrentValue() const
    {
        return defaultCurrentValue_helper();
    }

    /**
      Set MinimumUid
    */
    void setMinimumUid( uint v )
    {
      if (v != mMinimumUid && !isMinimumUidImmutable()) {
        mMinimumUid = v;
        Q_EMIT MinimumUidChanged();
      }
    }

    Q_PROPERTY(uint minimumUid READ minimumUid WRITE setMinimumUid NOTIFY MinimumUidChanged)
    Q_PROPERTY(bool isMinimumUidImmutable READ isMinimumUidImmutable CONSTANT)
    Q_PROPERTY(uint defaultMinimumUidValue READ defaultMinimumUidValue CONSTANT)
    /**
      Get MinimumUid
    */
    uint minimumUid() const
    {
      return mMinimumUid;
    }

    /**
      Is MinimumUid Immutable
    */
    bool isMinimumUidImmutable() const
    {
      return isImmutable( QStringLiteral( "MinimumUid" ) );
    }

    /**
      Get MinimumUid default value
    */
    uint defaultMinimumUidValue() const
    {
        return defaultMinimumUidValue_helper();
    }

    /**
      Set MaximumUid
    */
    void setMaximumUid( uint v )
    {
      if (v != mMaximumUid && !isMaximumUidImmutable()) {
        mMaximumUid = v;
        Q_EMIT MaximumUidChanged();
      }
    }

    Q_PROPERTY(uint maximumUid READ maximumUid WRITE setMaximumUid NOTIFY MaximumUidChanged)
    Q_PROPERTY(bool isMaximumUidImmutable READ isMaximumUidImmutable CONSTANT)
    Q_PROPERTY(uint defaultMaximumUidValue READ defaultMaximumUidValue CONSTANT)
    /**
      Get MaximumUid
    */
    uint maximumUid() const
    {
      return mMaximumUid;
    }

    /**
      Is MaximumUid Immutable
    */
    bool isMaximumUidImmutable() const
    {
      return isImmutable( QStringLiteral( "MaximumUid" ) );
    }

    /**
      Get MaximumUid default value
    */
    uint defaultMaximumUidValue() const
    {
        return defaultMaximumUidValue_helper();
    }

    /**
      Set User
    */
    void setUser( const QString & v )
    {
      if (v != mUser && !isUserImmutable()) {
        mUser = v;
        Q_EMIT UserChanged();
      }
    }

    Q_PROPERTY(QString user READ user WRITE setUser NOTIFY UserChanged)
    Q_PROPERTY(bool isUserImmutable READ isUserImmutable CONSTANT)
    Q_PROPERTY(QString defaultUserValue READ defaultUserValue CONSTANT)
    /**
      Get User
    */
    QString user() const
    {
      return mUser;
    }

    /**
      Is User Immutable
    */
    bool isUserImmutable() const
    {
      return isImmutable( QStringLiteral( "User" ) );
    }

    /**
      Get User default value
    */
    QString defaultUserValue() const
    {
        return defaultUserValue_helper();
    }

    /**
      Set Session
    */
    void setSession( const QString & v )
    {
      if (v != mSession && !isSessionImmutable()) {
        mSession = v;
        Q_EMIT SessionChanged();
      }
    }

    Q_PROPERTY(QString session READ session WRITE setSession NOTIFY SessionChanged)
    Q_PROPERTY(bool isSessionImmutable READ isSessionImmutable CONSTANT)
    Q_PROPERTY(QString defaultSessionValue READ defaultSessionValue CONSTANT)
    /**
      Get Session
    */
    QString session() const
    {
      return mSession;
    }

    /**
      Is Session Immutable
    */
    bool isSessionImmutable() const
    {
      return isImmutable( QStringLiteral( "Session" ) );
    }

    /**
      Get Session default value
    */
    QString defaultSessionValue() const
    {
        return defaultSessionValue_helper();
    }

    /**
      Set Relogin
    */
    void setRelogin( bool v )
    {
      if (v != mRelogin && !isReloginImmutable()) {
        mRelogin = v;
        Q_EMIT ReloginChanged();
      }
    }

    Q_PROPERTY(bool relogin READ relogin WRITE setRelogin NOTIFY ReloginChanged)
    Q_PROPERTY(bool isReloginImmutable READ isReloginImmutable CONSTANT)
    Q_PROPERTY(bool defaultReloginValue READ defaultReloginValue CONSTANT)
    /**
      Get Relogin
    */
    bool relogin() const
    {
      return mRelogin;
    }

    /**
      Is Relogin Immutable
    */
    bool isReloginImmutable() const
    {
      return isImmutable( QStringLiteral( "Relogin" ) );
    }

    /**
      Get Relogin default value
    */
    bool defaultReloginValue() const
    {
        return defaultReloginValue_helper();
    }

    /**
      Set HaltCommand
    */
    void setHaltCommand( const QString & v )
    {
      if (v != mHaltCommand && !isHaltCommandImmutable()) {
        mHaltCommand = v;
        Q_EMIT HaltCommandChanged();
      }
    }

    Q_PROPERTY(QString haltCommand READ haltCommand WRITE setHaltCommand NOTIFY HaltCommandChanged)
    Q_PROPERTY(bool isHaltCommandImmutable READ isHaltCommandImmutable CONSTANT)
    Q_PROPERTY(QString defaultHaltCommandValue READ defaultHaltCommandValue CONSTANT)
    /**
      Get HaltCommand
    */
    QString haltCommand() const
    {
      return mHaltCommand;
    }

    /**
      Is HaltCommand Immutable
    */
    bool isHaltCommandImmutable() const
    {
      return isImmutable( QStringLiteral( "HaltCommand" ) );
    }

    /**
      Get HaltCommand default value
    */
    QString defaultHaltCommandValue() const
    {
        return defaultHaltCommandValue_helper();
    }

    /**
      Set RebootCommand
    */
    void setRebootCommand( const QString & v )
    {
      if (v != mRebootCommand && !isRebootCommandImmutable()) {
        mRebootCommand = v;
        Q_EMIT RebootCommandChanged();
      }
    }

    Q_PROPERTY(QString rebootCommand READ rebootCommand WRITE setRebootCommand NOTIFY RebootCommandChanged)
    Q_PROPERTY(bool isRebootCommandImmutable READ isRebootCommandImmutable CONSTANT)
    Q_PROPERTY(QString defaultRebootCommandValue READ defaultRebootCommandValue CONSTANT)
    /**
      Get RebootCommand
    */
    QString rebootCommand() const
    {
      return mRebootCommand;
    }

    /**
      Is RebootCommand Immutable
    */
    bool isRebootCommandImmutable() const
    {
      return isImmutable( QStringLiteral( "RebootCommand" ) );
    }

    /**
      Get RebootCommand default value
    */
    QString defaultRebootCommandValue() const
    {
        return defaultRebootCommandValue_helper();
    }


    enum {
      signalCurrentChanged = 1,
      signalMinimumUidChanged = 2,
      signalMaximumUidChanged = 3,
      signalUserChanged = 4,
      signalSessionChanged = 5,
      signalReloginChanged = 6,
      signalHaltCommandChanged = 7,
      signalRebootCommandChanged = 8
    };

  Q_SIGNALS:
    void CurrentChanged();

    void MinimumUidChanged();

    void MaximumUidChanged();

    void UserChanged();

    void SessionChanged();

    void ReloginChanged();

    void HaltCommandChanged();

    void RebootCommandChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // Theme
    QString mCurrent;
    QString defaultCurrentValue_helper() const;

    // Users
    uint mMinimumUid;
    uint defaultMinimumUidValue_helper() const;
    uint mMaximumUid;
    uint defaultMaximumUidValue_helper() const;

    // Autologin
    QString mUser;
    QString defaultUserValue_helper() const;
    QString mSession;
    QString defaultSessionValue_helper() const;
    bool mRelogin;
    bool defaultReloginValue_helper() const;

    // General
    QString mHaltCommand;
    QString defaultHaltCommandValue_helper() const;
    QString mRebootCommand;
    QString defaultRebootCommandValue_helper() const;
};

#endif

