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

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

class TerminalSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

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

    /**
      Set colorScheme
    */
    static
    void setColorScheme( const QString & v )
    {
      if (v != self()->mColorScheme && !self()->isColorSchemeImmutable()) {
        self()->mColorScheme = v;
        Q_EMIT self()->colorSchemeChanged();
      }
    }

    Q_PROPERTY(QString colorScheme READ colorScheme WRITE setColorScheme NOTIFY colorSchemeChanged)
    Q_PROPERTY(bool isColorSchemeImmutable READ isColorSchemeImmutable CONSTANT)
    Q_PROPERTY(QString defaultColorSchemeValue READ defaultColorSchemeValue CONSTANT)
    /**
      Get colorScheme
    */
    static
    QString colorScheme()
    {
      return self()->mColorScheme;
    }

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

    /**
      Get colorScheme default value
    */
    static
    QString defaultColorSchemeValue()
    {
        return defaultColorSchemeValue_helper();
    }

    /**
      Set fontFamily
    */
    static
    void setFontFamily( const QString & v )
    {
      if (v != self()->mFontFamily && !self()->isFontFamilyImmutable()) {
        self()->mFontFamily = v;
        Q_EMIT self()->fontFamilyChanged();
      }
    }

    Q_PROPERTY(QString fontFamily READ fontFamily WRITE setFontFamily NOTIFY fontFamilyChanged)
    Q_PROPERTY(bool isFontFamilyImmutable READ isFontFamilyImmutable CONSTANT)
    Q_PROPERTY(QString defaultFontFamilyValue READ defaultFontFamilyValue CONSTANT)
    /**
      Get fontFamily
    */
    static
    QString fontFamily()
    {
      return self()->mFontFamily;
    }

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

    /**
      Get fontFamily default value
    */
    static
    QString defaultFontFamilyValue()
    {
        return defaultFontFamilyValue_helper();
    }

    /**
      Set fontSize
    */
    static
    void setFontSize( int v )
    {
      if (v != self()->mFontSize && !self()->isFontSizeImmutable()) {
        self()->mFontSize = v;
        Q_EMIT self()->fontSizeChanged();
      }
    }

    Q_PROPERTY(int fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
    Q_PROPERTY(bool isFontSizeImmutable READ isFontSizeImmutable CONSTANT)
    Q_PROPERTY(int defaultFontSizeValue READ defaultFontSizeValue CONSTANT)
    /**
      Get fontSize
    */
    static
    int fontSize()
    {
      return self()->mFontSize;
    }

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

    /**
      Get fontSize default value
    */
    static
    int defaultFontSizeValue()
    {
        return defaultFontSizeValue_helper();
    }

    /**
      Set windowOpacity
    */
    static
    void setWindowOpacity( double v )
    {
      if (v != self()->mWindowOpacity && !self()->isWindowOpacityImmutable()) {
        self()->mWindowOpacity = v;
        Q_EMIT self()->windowOpacityChanged();
      }
    }

    Q_PROPERTY(double windowOpacity READ windowOpacity WRITE setWindowOpacity NOTIFY windowOpacityChanged)
    Q_PROPERTY(bool isWindowOpacityImmutable READ isWindowOpacityImmutable CONSTANT)
    Q_PROPERTY(double defaultWindowOpacityValue READ defaultWindowOpacityValue CONSTANT)
    /**
      Get windowOpacity
    */
    static
    double windowOpacity()
    {
      return self()->mWindowOpacity;
    }

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

    /**
      Get windowOpacity default value
    */
    static
    double defaultWindowOpacityValue()
    {
        return defaultWindowOpacityValue_helper();
    }

    /**
      Set actions
    */
    static
    void setActions( const QStringList & v )
    {
      if (v != self()->mActions && !self()->isActionsImmutable()) {
        self()->mActions = v;
        Q_EMIT self()->actionsChanged();
      }
    }

    Q_PROPERTY(QStringList actions READ actions WRITE setActions NOTIFY actionsChanged)
    Q_PROPERTY(bool isActionsImmutable READ isActionsImmutable CONSTANT)
    /**
      Get actions
    */
    static
    QStringList actions()
    {
      return self()->mActions;
    }

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

    /**
      Set blurWindow
    */
    static
    void setBlurWindow( bool v )
    {
      if (v != self()->mBlurWindow && !self()->isBlurWindowImmutable()) {
        self()->mBlurWindow = v;
        Q_EMIT self()->blurWindowChanged();
      }
    }

    Q_PROPERTY(bool blurWindow READ blurWindow WRITE setBlurWindow NOTIFY blurWindowChanged)
    Q_PROPERTY(bool isBlurWindowImmutable READ isBlurWindowImmutable CONSTANT)
    Q_PROPERTY(bool defaultBlurWindowValue READ defaultBlurWindowValue CONSTANT)
    /**
      Get blurWindow
    */
    static
    bool blurWindow()
    {
      return self()->mBlurWindow;
    }

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

    /**
      Get blurWindow default value
    */
    static
    bool defaultBlurWindowValue()
    {
        return defaultBlurWindowValue_helper();
    }

    /**
      Set forceModifierButtons
    */
    static
    void setForceModifierButtons( bool v )
    {
      if (v != self()->mForceModifierButtons && !self()->isForceModifierButtonsImmutable()) {
        self()->mForceModifierButtons = v;
        Q_EMIT self()->forceModifierButtonsChanged();
      }
    }

    Q_PROPERTY(bool forceModifierButtons READ forceModifierButtons WRITE setForceModifierButtons NOTIFY forceModifierButtonsChanged)
    Q_PROPERTY(bool isForceModifierButtonsImmutable READ isForceModifierButtonsImmutable CONSTANT)
    Q_PROPERTY(bool defaultForceModifierButtonsValue READ defaultForceModifierButtonsValue CONSTANT)
    /**
      Get forceModifierButtons
    */
    static
    bool forceModifierButtons()
    {
      return self()->mForceModifierButtons;
    }

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

    /**
      Get forceModifierButtons default value
    */
    static
    bool defaultForceModifierButtonsValue()
    {
        return defaultForceModifierButtonsValue_helper();
    }


    enum {
      signalColorSchemeChanged = 1,
      signalFontFamilyChanged = 2,
      signalFontSizeChanged = 3,
      signalWindowOpacityChanged = 4,
      signalActionsChanged = 5,
      signalBlurWindowChanged = 6,
      signalForceModifierButtonsChanged = 7
    };

  Q_SIGNALS:
    void colorSchemeChanged();

    void fontFamilyChanged();

    void fontSizeChanged();

    void windowOpacityChanged();

    void actionsChanged();

    void blurWindowChanged();

    void forceModifierButtonsChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    TerminalSettings(QObject *parent = nullptr);
    friend class TerminalSettingsHelper;


    // General
    QString mColorScheme;
    static QString defaultColorSchemeValue_helper();
    QString mFontFamily;
    static QString defaultFontFamilyValue_helper();
    int mFontSize;
    static int defaultFontSizeValue_helper();
    double mWindowOpacity;
    static double defaultWindowOpacityValue_helper();
    QStringList mActions;
    static QStringList defaultActionsValue_helper();
    bool mBlurWindow;
    static bool defaultBlurWindowValue_helper();
    bool mForceModifierButtons;
    static bool defaultForceModifierButtonsValue_helper();
};

#endif

