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

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

class SMServerSettings : public KConfigSkeleton
{
  public:
    enum LoginModeType { restorePreviousLogout, restoreSavedSession, emptySession };

    SMServerSettings( );
    ~SMServerSettings() override;

    /**
      Set Confirm logout
    */
    void setConfirmLogout( bool v )
    {
      if (!isConfirmLogoutImmutable())
        mConfirmLogout = v;
    }

    /**
      Get Confirm logout
    */
    bool confirmLogout() const
    {
      return mConfirmLogout;
    }

    /**
      Is Confirm logout Immutable
    */
    bool isConfirmLogoutImmutable() const
    {
      return isImmutable( QStringLiteral( "confirmLogout" ) );
    }

    /**
      Set Default leave option
    */
    void setShutdownType( int v )
    {
      if (!isShutdownTypeImmutable())
        mShutdownType = v;
    }

    /**
      Get Default leave option
    */
    int shutdownType() const
    {
      return mShutdownType;
    }

    /**
      Is Default leave option Immutable
    */
    bool isShutdownTypeImmutable() const
    {
      return isImmutable( QStringLiteral( "shutdownType" ) );
    }

    /**
      Set On login
    */
    void setLoginMode( int v )
    {
      if (!isLoginModeImmutable())
        mLoginMode = v;
    }

    /**
      Get On login
    */
    int loginMode() const
    {
      return mLoginMode;
    }

    /**
      Is On login Immutable
    */
    bool isLoginModeImmutable() const
    {
      return isImmutable( QStringLiteral( "loginMode" ) );
    }

    /**
      Set Applications to be excluded from session
    */
    void setExcludeApps( const QString & v )
    {
      if (!isExcludeAppsImmutable())
        mExcludeApps = v;
    }

    /**
      Get Applications to be excluded from session
    */
    QString excludeApps() const
    {
      return mExcludeApps;
    }

    /**
      Is Applications to be excluded from session Immutable
    */
    bool isExcludeAppsImmutable() const
    {
      return isImmutable( QStringLiteral( "excludeApps" ) );
    }

  protected:

    // General
    bool mConfirmLogout;
    int mShutdownType;
    int mLoginMode;
    QString mExcludeApps;
};

#endif

