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

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

class Settings : public KConfigSkeleton
{
  public:

    Settings( KSharedConfig::Ptr config = KSharedConfig::openConfig() );
    ~Settings() override;

    /**
      Set name
    */
    void setName( const QString & v )
    {
      if (!isNameImmutable())
        mName = v;
    }

    /**
      Get name
    */
    QString name() const
    {
      return mName;
    }

    /**
      Is name Immutable
    */
    bool isNameImmutable() const
    {
      return isImmutable( QStringLiteral( "name" ) );
    }

    /**
      Get Item object corresponding to name()
    */
    ItemString *nameItem()
    {
      return mNameItem;
    }

    /**
      Set Server URL
    */
    void setBaseUrl( const QString & v )
    {
      if (!isBaseUrlImmutable())
        mBaseUrl = v;
    }

    /**
      Get Server URL
    */
    QString baseUrl() const
    {
      return mBaseUrl;
    }

    /**
      Is Server URL Immutable
    */
    bool isBaseUrlImmutable() const
    {
      return isImmutable( QStringLiteral( "BaseUrl" ) );
    }

    /**
      Get Item object corresponding to BaseUrl()
    */
    ItemString *baseUrlItem()
    {
      return mBaseUrlItem;
    }

    /**
      Set Username
    */
    void setUsername( const QString & v )
    {
      if (!isUsernameImmutable())
        mUsername = v;
    }

    /**
      Get Username
    */
    QString username() const
    {
      return mUsername;
    }

    /**
      Is Username Immutable
    */
    bool isUsernameImmutable() const
    {
      return isImmutable( QStringLiteral( "Username" ) );
    }

    /**
      Get Item object corresponding to Username()
    */
    ItemString *usernameItem()
    {
      return mUsernameItem;
    }

    /**
      Set Path to base directory
    */
    void setBasePath( const QString & v )
    {
      if (!isBasePathImmutable())
        mBasePath = v;
    }

    /**
      Get Path to base directory
    */
    QString basePath() const
    {
      return mBasePath;
    }

    /**
      Is Path to base directory Immutable
    */
    bool isBasePathImmutable() const
    {
      return isImmutable( QStringLiteral( "BasePath" ) );
    }

    /**
      Get Item object corresponding to BasePath()
    */
    ItemPath *basePathItem()
    {
      return mBasePathItem;
    }

  protected:

    // General
    QString mName;
    QString mBaseUrl;
    QString mUsername;
    QString mBasePath;

  private:
    ItemString *mNameItem;
    ItemString *mBaseUrlItem;
    ItemString *mUsernameItem;
    ItemPath *mBasePathItem;
};

#endif

