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

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

#include "jobparameters.h"

namespace Clazy {

class GlobalSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

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

    /**
      Get executablePath
    */
    static
    QUrl executablePath()
    {
      return self()->mExecutablePath;
    }

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

    /**
      Get docsPath
    */
    static
    QUrl docsPath()
    {
      return self()->mDocsPath;
    }

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

    /**
      Get parallelJobsEnabled
    */
    static
    bool parallelJobsEnabled()
    {
      return self()->mParallelJobsEnabled;
    }

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

    /**
      Get parallelJobsAutoCount
    */
    static
    bool parallelJobsAutoCount()
    {
      return self()->mParallelJobsAutoCount;
    }

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

    /**
      Get parallelJobsFixedCount
    */
    static
    int parallelJobsFixedCount()
    {
      return self()->mParallelJobsFixedCount;
    }

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

    /**
      Get hideOutputView
    */
    static
    bool hideOutputView()
    {
      return self()->mHideOutputView;
    }

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

    /**
      Get verboseOutput
    */
    static
    bool verboseOutput()
    {
      return self()->mVerboseOutput;
    }

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


    enum {
      signalDocsPathChanged = 1
    };

  Q_SIGNALS:
    void docsPathChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    GlobalSettings();
    friend class GlobalSettingsHelper;

    bool usrSave() override;

    // Clazy
    QUrl mExecutablePath;
    QUrl mDocsPath;
    bool mParallelJobsEnabled;
    bool mParallelJobsAutoCount;
    int mParallelJobsFixedCount;
    bool mHideOutputView;
    bool mVerboseOutput;

  private:
    QSet<quint64> mSettingsChanged;
};

}

#endif

