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

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

class GlobalSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:
    enum EnumLaunchState { Remember, Enable, Disable };
    Q_ENUM(EnumLaunchState)

    static GlobalSettings *self();
    ~GlobalSettings() override;

    /**
      Set Option to determine the bluetooth state at launch
    */
    static
    void setLaunchState( EnumLaunchState v )
    {
      if (v != self()->mLaunchState && !self()->isLaunchStateImmutable()) {
        self()->mLaunchState = v;
        Q_EMIT self()->launchStateChanged();
      }
    }

    Q_PROPERTY(EnumLaunchState launchState READ launchState WRITE setLaunchState NOTIFY launchStateChanged)
    Q_PROPERTY(bool isLaunchStateImmutable READ isLaunchStateImmutable CONSTANT)
    /**
      Get Option to determine the bluetooth state at launch
    */
    static
    EnumLaunchState launchState()
    {
      return static_cast<EnumLaunchState>(self()->mLaunchState);
    }

    /**
      Is Option to determine the bluetooth state at launch Immutable
    */
    static
    bool isLaunchStateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "launchState" ) );
    }

    /**
      Set bluetoothBlocked
    */
    static
    void setBluetoothBlocked( bool v )
    {
      if (v != self()->mBluetoothBlocked && !self()->isBluetoothBlockedImmutable()) {
        self()->mBluetoothBlocked = v;
        Q_EMIT self()->bluetoothBlockedChanged();
      }
    }

    Q_PROPERTY(bool bluetoothBlocked READ bluetoothBlocked WRITE setBluetoothBlocked NOTIFY bluetoothBlockedChanged)
    Q_PROPERTY(bool isBluetoothBlockedImmutable READ isBluetoothBlockedImmutable CONSTANT)
    /**
      Get bluetoothBlocked
    */
    static
    bool bluetoothBlocked()
    {
      return self()->mBluetoothBlocked;
    }

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

    /**
      Set connectedDevices
    */
    static
    void setConnectedDevices( const QStringList & v )
    {
      if (v != self()->mConnectedDevices && !self()->isConnectedDevicesImmutable()) {
        self()->mConnectedDevices = v;
        Q_EMIT self()->connectedDevicesChanged();
      }
    }

    Q_PROPERTY(QStringList connectedDevices READ connectedDevices WRITE setConnectedDevices NOTIFY connectedDevicesChanged)
    Q_PROPERTY(bool isConnectedDevicesImmutable READ isConnectedDevicesImmutable CONSTANT)
    /**
      Get connectedDevices
    */
    static
    QStringList connectedDevices()
    {
      return self()->mConnectedDevices;
    }

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


    enum {
      signalLaunchStateChanged = 1,
      signalBluetoothBlockedChanged = 2,
      signalConnectedDevicesChanged = 3
    };

  Q_SIGNALS:
    void launchStateChanged();

    void bluetoothBlockedChanged();

    void connectedDevicesChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    GlobalSettings();
    friend class GlobalSettingsHelper;


    // General
    int mLaunchState;
    bool mBluetoothBlocked;

    // Devices
    QStringList mConnectedDevices;
};

#endif

