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

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

class SettingsBase : public KConfigSkeleton
{
  public:

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

    /**
      Set Settings Version
    */
    void setSettingsVersion( int v )
    {
      if (!isSettingsVersionImmutable())
        mSettingsVersion = v;
    }

    /**
      Get Settings Version
    */
    int settingsVersion() const
    {
      return mSettingsVersion;
    }

    /**
      Is Settings Version Immutable
    */
    bool isSettingsVersionImmutable() const
    {
      return isImmutable( QStringLiteral( "settingsVersion" ) );
    }

    /**
      Get Item object corresponding to settingsVersion()
    */
    ItemInt *settingsVersionItem()
    {
      return mSettingsVersionItem;
    }

    /**
      Set Display name
    */
    void setDisplayName( const QString & v )
    {
      if (!isDisplayNameImmutable())
        mDisplayName = v;
    }

    /**
      Get Display name
    */
    QString displayName() const
    {
      return mDisplayName;
    }

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

    /**
      Get Item object corresponding to displayName()
    */
    ItemString *displayNameItem()
    {
      return mDisplayNameItem;
    }

    /**
      Set Refresh every
    */
    void setRefreshInterval( int v )
    {
      if (!isRefreshIntervalImmutable())
        mRefreshInterval = v;
    }

    /**
      Get Refresh every
    */
    int refreshInterval() const
    {
      return mRefreshInterval;
    }

    /**
      Is Refresh every Immutable
    */
    bool isRefreshIntervalImmutable() const
    {
      return isImmutable( QStringLiteral( "refreshInterval" ) );
    }

    /**
      Get Item object corresponding to refreshInterval()
    */
    ItemInt *refreshIntervalItem()
    {
      return mRefreshIntervalItem;
    }

    /**
      Set Remote URLs
    */
    void setRemoteUrls( const QStringList & v )
    {
      if (!isRemoteUrlsImmutable())
        mRemoteUrls = v;
    }

    /**
      Get Remote URLs
    */
    QStringList remoteUrls() const
    {
      return mRemoteUrls;
    }

    /**
      Is Remote URLs Immutable
    */
    bool isRemoteUrlsImmutable() const
    {
      return isImmutable( QStringLiteral( "remoteUrls" ) );
    }

    /**
      Get Item object corresponding to remoteUrls()
    */
    ItemStringList *remoteUrlsItem()
    {
      return mRemoteUrlsItem;
    }

    /**
      Set User name
    */
    void setDefaultUsername( const QString & v )
    {
      if (!isDefaultUsernameImmutable())
        mDefaultUsername = v;
    }

    /**
      Get User name
    */
    QString defaultUsername() const
    {
      return mDefaultUsername;
    }

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

    /**
      Get Item object corresponding to defaultUsername()
    */
    ItemString *defaultUsernameItem()
    {
      return mDefaultUsernameItem;
    }

    /**
      Set Limit the data retrieval to the specified time range
    */
    void setLimitSyncRange( bool v )
    {
      if (!isLimitSyncRangeImmutable())
        mLimitSyncRange = v;
    }

    /**
      Get Limit the data retrieval to the specified time range
    */
    bool limitSyncRange() const
    {
      return mLimitSyncRange;
    }

    /**
      Is Limit the data retrieval to the specified time range Immutable
    */
    bool isLimitSyncRangeImmutable() const
    {
      return isImmutable( QStringLiteral( "limitSyncRange" ) );
    }

    /**
      Get Item object corresponding to limitSyncRange()
    */
    ItemBool *limitSyncRangeItem()
    {
      return mLimitSyncRangeItem;
    }

    /**
      Set Period for which to retrieve data, quantity
    */
    void setSyncRangeStartNumber( const QString & v )
    {
      if (!isSyncRangeStartNumberImmutable())
        mSyncRangeStartNumber = v;
    }

    /**
      Get Period for which to retrieve data, quantity
    */
    QString syncRangeStartNumber() const
    {
      return mSyncRangeStartNumber;
    }

    /**
      Is Period for which to retrieve data, quantity Immutable
    */
    bool isSyncRangeStartNumberImmutable() const
    {
      return isImmutable( QStringLiteral( "syncRangeStartNumber" ) );
    }

    /**
      Get Item object corresponding to syncRangeStartNumber()
    */
    ItemString *syncRangeStartNumberItem()
    {
      return mSyncRangeStartNumberItem;
    }

    /**
      Set Period for which to retrieve data, type
    */
    void setSyncRangeStartType( const QString & v )
    {
      if (!isSyncRangeStartTypeImmutable())
        mSyncRangeStartType = v;
    }

    /**
      Get Period for which to retrieve data, type
    */
    QString syncRangeStartType() const
    {
      return mSyncRangeStartType;
    }

    /**
      Is Period for which to retrieve data, type Immutable
    */
    bool isSyncRangeStartTypeImmutable() const
    {
      return isImmutable( QStringLiteral( "syncRangeStartType" ) );
    }

    /**
      Get Item object corresponding to syncRangeStartType()
    */
    ItemString *syncRangeStartTypeItem()
    {
      return mSyncRangeStartTypeItem;
    }

    /**
      Set String representation of the mappings between discovered collections and configured URLs
    */
    void setCollectionsUrlsMappings( const QString & v )
    {
      if (!isCollectionsUrlsMappingsImmutable())
        mCollectionsUrlsMappings = v;
    }

    /**
      Get String representation of the mappings between discovered collections and configured URLs
    */
    QString collectionsUrlsMappings() const
    {
      return mCollectionsUrlsMappings;
    }

    /**
      Is String representation of the mappings between discovered collections and configured URLs Immutable
    */
    bool isCollectionsUrlsMappingsImmutable() const
    {
      return isImmutable( QStringLiteral( "collectionsUrlsMappings" ) );
    }

    /**
      Get Item object corresponding to collectionsUrlsMappings()
    */
    ItemString *collectionsUrlsMappingsItem()
    {
      return mCollectionsUrlsMappingsItem;
    }

    /**
      Set Do not change the actual backend data.
    */
    void setReadOnly( bool v )
    {
      if (!isReadOnlyImmutable())
        mReadOnly = v;
    }

    /**
      Get Do not change the actual backend data.
    */
    bool readOnly() const
    {
      return mReadOnly;
    }

    /**
      Is Do not change the actual backend data. Immutable
    */
    bool isReadOnlyImmutable() const
    {
      return isImmutable( QStringLiteral( "readOnly" ) );
    }

    /**
      Get Item object corresponding to readOnly()
    */
    ItemBool *readOnlyItem()
    {
      return mReadOnlyItem;
    }

  protected:

    // General
    int mSettingsVersion;
    QString mDisplayName;
    int mRefreshInterval;
    QStringList mRemoteUrls;
    QString mDefaultUsername;
    bool mLimitSyncRange;
    QString mSyncRangeStartNumber;
    QString mSyncRangeStartType;
    QString mCollectionsUrlsMappings;
    bool mReadOnly;

  private:
    ItemInt *mSettingsVersionItem;
    ItemString *mDisplayNameItem;
    ItemInt *mRefreshIntervalItem;
    ItemStringList *mRemoteUrlsItem;
    ItemString *mDefaultUsernameItem;
    ItemBool *mLimitSyncRangeItem;
    ItemString *mSyncRangeStartNumberItem;
    ItemString *mSyncRangeStartTypeItem;
    ItemString *mCollectionsUrlsMappingsItem;
    ItemBool *mReadOnlyItem;
};

#endif

