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

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

#include <QStandardPaths>

class SageSettings : public KConfigSkeleton
{
  public:
    class EnumInlinePlotFormat
    {
      public:
      enum type { pdf, png, COUNT };
    };

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

    /**
      Get Path to the Sage executable
    */
    static
    QUrl path()
    {
      return self()->mPath;
    }

    /**
      Is Path to the Sage executable Immutable
    */
    static
    bool isPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Path" ) );
    }

    /**
      Get Enable LaTeX typesetting for Sage backend
    */
    static
    bool allowLatex()
    {
      return self()->mAllowLatex;
    }

    /**
      Is Enable LaTeX typesetting for Sage backend Immutable
    */
    static
    bool isAllowLatexImmutable()
    {
      return self()->isImmutable( QStringLiteral( "allowLatex" ) );
    }

    /**
      Get Integrate Plots into the Worksheet
    */
    static
    bool integratePlots()
    {
      return self()->mIntegratePlots;
    }

    /**
      Is Integrate Plots into the Worksheet Immutable
    */
    static
    bool isIntegratePlotsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "integratePlots" ) );
    }

    /**
      Get inlinePlotFormat
    */
    static
    int inlinePlotFormat()
    {
      return self()->mInlinePlotFormat;
    }

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

    /**
      Get Default plot width
    */
    static
    double plotWidth()
    {
      return self()->mPlotWidth;
    }

    /**
      Is Default plot width Immutable
    */
    static
    bool isPlotWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "plotWidth" ) );
    }

    /**
      Get Default plot height
    */
    static
    double plotHeight()
    {
      return self()->mPlotHeight;
    }

    /**
      Is Default plot height Immutable
    */
    static
    bool isPlotHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "plotHeight" ) );
    }

    /**
      Get List of scripts to autorun at the beginning of session
    */
    static
    QStringList autorunScripts()
    {
      return self()->mAutorunScripts;
    }

    /**
      Is List of scripts to autorun at the beginning of session Immutable
    */
    static
    bool isAutorunScriptsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "autorunScripts" ) );
    }

  protected:
    SageSettings();
    friend class SageSettingsHelper;


    // SageBackend
    QUrl mPath;
    bool mAllowLatex;
    bool mIntegratePlots;
    int mInlinePlotFormat;
    double mPlotWidth;
    double mPlotHeight;
    QStringList mAutorunScripts;
};

#endif

