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

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

class Settings : public KConfigSkeleton
{
  public:

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

    /**
      Set If true, the main menu bar is shown.
    */
    static
    void setShowMenuBar( bool v )
    {
      if (!self()->isShowMenuBarImmutable())
        self()->mShowMenuBar = v;
    }

    /**
      Get If true, the main menu bar is shown.
    */
    static
    bool showMenuBar()
    {
      return self()->mShowMenuBar;
    }

    /**
      Is If true, the main menu bar is shown. Immutable
    */
    static
    bool isShowMenuBarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowMenuBar" ) );
    }

    /**
      Set If enabled, course files are only read from the local contributor repository
    */
    static
    void setUseCourseRepository( bool v )
    {
      if (!self()->isUseCourseRepositoryImmutable())
        self()->mUseCourseRepository = v;
    }

    /**
      Get If enabled, course files are only read from the local contributor repository
    */
    static
    bool useCourseRepository()
    {
      return self()->mUseCourseRepository;
    }

    /**
      Is If enabled, course files are only read from the local contributor repository Immutable
    */
    static
    bool isUseCourseRepositoryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseCourseRepository" ) );
    }

    /**
      Set Path to local contributor repository
    */
    static
    void setCourseRepositoryPath( const QString & v )
    {
      if (!self()->isCourseRepositoryPathImmutable())
        self()->mCourseRepositoryPath = v;
    }

    /**
      Get Path to local contributor repository
    */
    static
    QString courseRepositoryPath()
    {
      return self()->mCourseRepositoryPath;
    }

    /**
      Is Path to local contributor repository Immutable
    */
    static
    bool isCourseRepositoryPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CourseRepositoryPath" ) );
    }

    /**
      Set Name of audio input device
    */
    static
    void setAudioInputDevice( const QString & v )
    {
      if (!self()->isAudioInputDeviceImmutable())
        self()->mAudioInputDevice = v;
    }

    /**
      Get Name of audio input device
    */
    static
    QString audioInputDevice()
    {
      return self()->mAudioInputDevice;
    }

    /**
      Is Name of audio input device Immutable
    */
    static
    bool isAudioInputDeviceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AudioInputDevice" ) );
    }

    /**
      Set Audio input volume
    */
    static
    void setAudioInputVolume( int v )
    {
      if (!self()->isAudioInputVolumeImmutable())
        self()->mAudioInputVolume = v;
    }

    /**
      Get Audio input volume
    */
    static
    int audioInputVolume()
    {
      return self()->mAudioInputVolume;
    }

    /**
      Is Audio input volume Immutable
    */
    static
    bool isAudioInputVolumeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AudioInputVolume" ) );
    }

    /**
      Set Audio output volume
    */
    static
    void setAudioOutputVolume( int v )
    {
      if (!self()->isAudioOutputVolumeImmutable())
        self()->mAudioOutputVolume = v;
    }

    /**
      Get Audio output volume
    */
    static
    int audioOutputVolume()
    {
      return self()->mAudioOutputVolume;
    }

    /**
      Is Audio output volume Immutable
    */
    static
    bool isAudioOutputVolumeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AudioOutputVolume" ) );
    }

    /**
      Set Font
    */
    static
    void setTrainingPhraseFont( const QFont & v )
    {
      if (!self()->isTrainingPhraseFontImmutable())
        self()->mTrainingPhraseFont = v;
    }

    /**
      Get Font
    */
    static
    QFont trainingPhraseFont()
    {
      return self()->mTrainingPhraseFont;
    }

    /**
      Is Font Immutable
    */
    static
    bool isTrainingPhraseFontImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TrainingPhraseFont" ) );
    }

    /**
      Set Set either to 'qtmultimediabackend' or 'qtgstreamerbackend', selected on runtime if available.
    */
    static
    void setRecordingBackend( const QString & v )
    {
      if (!self()->isRecordingBackendImmutable())
        self()->mRecordingBackend = v;
    }

    /**
      Get Set either to 'qtmultimediabackend' or 'qtgstreamerbackend', selected on runtime if available.
    */
    static
    QString recordingBackend()
    {
      return self()->mRecordingBackend;
    }

    /**
      Is Set either to 'qtmultimediabackend' or 'qtgstreamerbackend', selected on runtime if available. Immutable
    */
    static
    bool isRecordingBackendImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RecordingBackend" ) );
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // artikulate
    bool mShowMenuBar;
    bool mUseCourseRepository;
    QString mCourseRepositoryPath;
    QString mAudioInputDevice;
    int mAudioInputVolume;
    int mAudioOutputVolume;
    QFont mTrainingPhraseFont;
    QString mRecordingBackend;
};

#endif

