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

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

class QQmlEngine;
class QJSEngine;

class Config : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:
    enum EnumProfile { Car, Bicycle, Pedestrian };
    Q_ENUM(EnumProfile)

    static Config *self();
    static Config *create(QQmlEngine *, QJSEngine *);
    ~Config() override;

    /**
      Set The marble theme id
    */
    static
    void setMapThemeId( const QString & v )
    {
      if (v != self()->mMapThemeId && !self()->isMapThemeIdImmutable()) {
        self()->mMapThemeId = v;
        Q_EMIT self()->MapThemeIdChanged();
      }
    }

    Q_PROPERTY(QString mapThemeId READ mapThemeId WRITE setMapThemeId NOTIFY MapThemeIdChanged)
    Q_PROPERTY(bool isMapThemeIdImmutable READ isMapThemeIdImmutable CONSTANT)
    Q_PROPERTY(QString defaultMapThemeIdValue READ defaultMapThemeIdValue CONSTANT)
    /**
      Get The marble theme id
    */
    static
    QString mapThemeId()
    {
      return self()->mMapThemeId;
    }

    /**
      Is The marble theme id Immutable
    */
    static
    bool isMapThemeIdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MapThemeId" ) );
    }

    /**
      Get The marble theme id default value
    */
    static
    QString defaultMapThemeIdValue()
    {
        return defaultMapThemeIdValue_helper();
    }

    /**
      Set Routing profile
    */
    static
    void setProfile( int v )
    {
      if (v != self()->mProfile && !self()->isProfileImmutable()) {
        self()->mProfile = v;
        Q_EMIT self()->ProfileChanged();
      }
    }

    Q_PROPERTY(int profile READ profile WRITE setProfile NOTIFY ProfileChanged)
    Q_PROPERTY(bool isProfileImmutable READ isProfileImmutable CONSTANT)
    Q_PROPERTY(int defaultProfileValue READ defaultProfileValue CONSTANT)
    /**
      Get Routing profile
    */
    static
    int profile()
    {
      return self()->mProfile;
    }

    /**
      Is Routing profile Immutable
    */
    static
    bool isProfileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Profile" ) );
    }

    /**
      Get Routing profile default value
    */
    static
    int defaultProfileValue()
    {
        return defaultProfileValue_helper();
    }


    enum {
      signalMapThemeIdChanged = 1,
      signalProfileChanged = 2
    };

  Q_SIGNALS:
    void MapThemeIdChanged();

    void ProfileChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    Config(QObject *parent = nullptr);
    friend class ConfigHelper;


    // General
    QString mMapThemeId;
    static QString defaultMapThemeIdValue_helper();

    // Routing
    int mProfile;
    static int defaultProfileValue_helper();
};

#endif

