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

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

#include <QStandardPaths>

class JuliaSettings : public KConfigSkeleton
{
  public:
    class EnumInlinePlotFormat
    {
      public:
      enum type { pdf, svg, png, COUNT };
    };
    class EnumPlotExtenstionGraphicPackage
    {
      public:
      enum type { gr, plots, pyplot, gadfly, COUNT };
    };

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

    /**
      Get Enable Variable Management
    */
    static
    bool variableManagement()
    {
      return self()->mVariableManagement;
    }

    /**
      Is Enable Variable Management Immutable
    */
    static
    bool isVariableManagementImmutable()
    {
      return self()->isImmutable( QStringLiteral( "variableManagement" ) );
    }

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

    /**
      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 Graphical package for the Plot-Assistant
    */
    static
    int plotExtenstionGraphicPackage()
    {
      return self()->mPlotExtenstionGraphicPackage;
    }

    /**
      Is Graphical package for the Plot-Assistant Immutable
    */
    static
    bool isPlotExtenstionGraphicPackageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "plotExtenstionGraphicPackage" ) );
    }

  protected:
    JuliaSettings();
    friend class JuliaSettingsHelper;


    // JuliaBackend
    bool mVariableManagement;
    QStringList mAutorunScripts;
    bool mIntegratePlots;
    int mInlinePlotFormat;
    double mPlotWidth;
    double mPlotHeight;
    int mPlotExtenstionGraphicPackage;
};

#endif

