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

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

class KnutSettings : public KConfigSkeleton
{
  public:

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

    /**
      Set Path to the Knut data file.
    */
    void setDataFile( const QString & v )
    {
      if (!isDataFileImmutable())
        mDataFile = v;
    }

    /**
      Get Path to the Knut data file.
    */
    QString dataFile() const
    {
      return mDataFile;
    }

    /**
      Is Path to the Knut data file. Immutable
    */
    bool isDataFileImmutable() const
    {
      return isImmutable( QStringLiteral( "DataFile" ) );
    }

    /**
      Get Item object corresponding to DataFile()
    */
    ItemPath *dataFileItem()
    {
      return mDataFileItem;
    }

    /**
      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;
    }

    /**
      Set FileWatchingEnabled
    */
    void setFileWatchingEnabled( bool v )
    {
      if (!isFileWatchingEnabledImmutable())
        mFileWatchingEnabled = v;
    }

    /**
      Get FileWatchingEnabled
    */
    bool fileWatchingEnabled() const
    {
      return mFileWatchingEnabled;
    }

    /**
      Is FileWatchingEnabled Immutable
    */
    bool isFileWatchingEnabledImmutable() const
    {
      return isImmutable( QStringLiteral( "FileWatchingEnabled" ) );
    }

    /**
      Get Item object corresponding to FileWatchingEnabled()
    */
    ItemBool *fileWatchingEnabledItem()
    {
      return mFileWatchingEnabledItem;
    }

  protected:

    // General
    QString mDataFile;
    bool mReadOnly;
    bool mFileWatchingEnabled;

  private:
    ItemPath *mDataFileItem;
    ItemBool *mReadOnlyItem;
    ItemBool *mFileWatchingEnabledItem;
};

#endif

