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

#include <plasmaloginsettingsdefaults.h>

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

class PlasmaLoginSettingsBase : public PlasmaLoginSettingsDefaults
{
  Q_OBJECT
  public:

    static PlasmaLoginSettingsBase *self();
    static void instance(const QString& cfgfilename);
    static void instance(KSharedConfig::Ptr config);
    ~PlasmaLoginSettingsBase() override;

    /**
      Set User
    */
    static
    void setUser( const QString & v )
    {
      if (v != self()->mUser && !self()->isUserImmutable()) {
        self()->mUser = v;
        Q_EMIT self()->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
    */
    static
    QString user()
    {
      return self()->mUser;
    }

    /**
      Is User Immutable
    */
    static
    bool isUserImmutable()
    {
      return self()->isImmutable( QStringLiteral( "User" ) );
    }

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

    /**
      Set Session
    */
    static
    void setSession( const QString & v )
    {
      if (v != self()->mSession && !self()->isSessionImmutable()) {
        self()->mSession = v;
        Q_EMIT self()->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
    */
    static
    QString session()
    {
      return self()->mSession;
    }

    /**
      Is Session Immutable
    */
    static
    bool isSessionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Session" ) );
    }

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

    /**
      Set Relogin
    */
    static
    void setRelogin( bool v )
    {
      if (v != self()->mRelogin && !self()->isReloginImmutable()) {
        self()->mRelogin = v;
        Q_EMIT self()->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
    */
    static
    bool relogin()
    {
      return self()->mRelogin;
    }

    /**
      Is Relogin Immutable
    */
    static
    bool isReloginImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Relogin" ) );
    }

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

    /**
      Set PreselectedUser
    */
    static
    void setPreselectedUser( const QString & v )
    {
      if (v != self()->mPreselectedUser && !self()->isPreselectedUserImmutable()) {
        self()->mPreselectedUser = v;
        Q_EMIT self()->PreselectedUserChanged();
      }
    }

    Q_PROPERTY(QString preselectedUser READ preselectedUser WRITE setPreselectedUser NOTIFY PreselectedUserChanged)
    Q_PROPERTY(bool isPreselectedUserImmutable READ isPreselectedUserImmutable CONSTANT)
    Q_PROPERTY(QString defaultPreselectedUserValue READ defaultPreselectedUserValue CONSTANT)
    /**
      Get PreselectedUser
    */
    static
    QString preselectedUser()
    {
      return self()->mPreselectedUser;
    }

    /**
      Is PreselectedUser Immutable
    */
    static
    bool isPreselectedUserImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreselectedUser" ) );
    }

    /**
      Get PreselectedUser default value
    */
    static
    QString defaultPreselectedUserValue()
    {
        return defaultPreselectedUserValue_helper();
    }

    /**
      Set PreselectedSession
    */
    static
    void setPreselectedSession( const QString & v )
    {
      if (v != self()->mPreselectedSession && !self()->isPreselectedSessionImmutable()) {
        self()->mPreselectedSession = v;
        Q_EMIT self()->PreselectedSessionChanged();
      }
    }

    Q_PROPERTY(QString preselectedSession READ preselectedSession WRITE setPreselectedSession NOTIFY PreselectedSessionChanged)
    Q_PROPERTY(bool isPreselectedSessionImmutable READ isPreselectedSessionImmutable CONSTANT)
    Q_PROPERTY(QString defaultPreselectedSessionValue READ defaultPreselectedSessionValue CONSTANT)
    /**
      Get PreselectedSession
    */
    static
    QString preselectedSession()
    {
      return self()->mPreselectedSession;
    }

    /**
      Is PreselectedSession Immutable
    */
    static
    bool isPreselectedSessionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreselectedSession" ) );
    }

    /**
      Get PreselectedSession default value
    */
    static
    QString defaultPreselectedSessionValue()
    {
        return defaultPreselectedSessionValue_helper();
    }

    /**
      Set ShowClock
    */
    static
    void setShowClock( bool v )
    {
      if (v != self()->mShowClock && !self()->isShowClockImmutable()) {
        self()->mShowClock = v;
        Q_EMIT self()->ShowClockChanged();
      }
    }

    Q_PROPERTY(bool showClock READ showClock WRITE setShowClock NOTIFY ShowClockChanged)
    Q_PROPERTY(bool isShowClockImmutable READ isShowClockImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowClockValue READ defaultShowClockValue CONSTANT)
    /**
      Get ShowClock
    */
    static
    bool showClock()
    {
      return self()->mShowClock;
    }

    /**
      Is ShowClock Immutable
    */
    static
    bool isShowClockImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowClock" ) );
    }

    /**
      Get ShowClock default value
    */
    static
    bool defaultShowClockValue()
    {
        return defaultShowClockValue_helper();
    }

    /**
      Set WallpaperPluginId
    */
    static
    void setWallpaperPluginId( const QString & v )
    {
      if (v != self()->mWallpaperPluginId && !self()->isWallpaperPluginIdImmutable()) {
        self()->mWallpaperPluginId = v;
        Q_EMIT self()->WallpaperPluginIdChanged();
      }
    }

    Q_PROPERTY(QString wallpaperPluginId READ wallpaperPluginId WRITE setWallpaperPluginId NOTIFY WallpaperPluginIdChanged)
    Q_PROPERTY(bool isWallpaperPluginIdImmutable READ isWallpaperPluginIdImmutable CONSTANT)
    Q_PROPERTY(QString defaultWallpaperPluginIdValue READ defaultWallpaperPluginIdValue CONSTANT)
    /**
      Get WallpaperPluginId
    */
    static
    QString wallpaperPluginId()
    {
      return self()->mWallpaperPluginId;
    }

    /**
      Is WallpaperPluginId Immutable
    */
    static
    bool isWallpaperPluginIdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WallpaperPluginId" ) );
    }

    /**
      Get WallpaperPluginId default value
    */
    static
    QString defaultWallpaperPluginIdValue()
    {
        return defaultWallpaperPluginIdValue_helper();
    }


    enum {
      signalUserChanged = 1,
      signalSessionChanged = 2,
      signalReloginChanged = 3,
      signalPreselectedUserChanged = 4,
      signalPreselectedSessionChanged = 5,
      signalShowClockChanged = 6,
      signalWallpaperPluginIdChanged = 7
    };

  Q_SIGNALS:
    void UserChanged();

    void SessionChanged();

    void ReloginChanged();

    void PreselectedUserChanged();

    void PreselectedSessionChanged();

    void ShowClockChanged();

    void WallpaperPluginIdChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    PlasmaLoginSettingsBase(KSharedConfig::Ptr config);
    friend class PlasmaLoginSettingsBaseHelper;


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

    // Greeter
    QString mPreselectedUser;
    static QString defaultPreselectedUserValue_helper();
    QString mPreselectedSession;
    static QString defaultPreselectedSessionValue_helper();
    bool mShowClock;
    static bool defaultShowClockValue_helper();
    QString mWallpaperPluginId;
    static QString defaultWallpaperPluginIdValue_helper();
};

#endif

