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

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

class StyleSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

    StyleSettings( QObject *parent = nullptr );
    ~StyleSettings() override;

    /**
      Set Application style
    */
    void setWidgetStyle( const QString & v )
    {
      if (v != mWidgetStyle && !isWidgetStyleImmutable()) {
        mWidgetStyle = v;
        Q_EMIT widgetStyleChanged();
      }
    }

    Q_PROPERTY(QString widgetStyle READ widgetStyle WRITE setWidgetStyle NOTIFY widgetStyleChanged)
    Q_PROPERTY(bool isWidgetStyleImmutable READ isWidgetStyleImmutable CONSTANT)
    Q_PROPERTY(QString defaultWidgetStyleValue READ defaultWidgetStyleValue CONSTANT)
    /**
      Get Application style
    */
    QString widgetStyle() const
    {
      return mWidgetStyle;
    }

    /**
      Is Application style Immutable
    */
    bool isWidgetStyleImmutable() const
    {
      return isImmutable( QStringLiteral( "widgetStyle" ) );
    }

    /**
      Get Application style default value
    */
    QString defaultWidgetStyleValue() const
    {
        return defaultWidgetStyleValue_helper();
    }

    /**
      Set Show icons on buttons
    */
    void setIconsOnButtons( bool v )
    {
      if (v != mIconsOnButtons && !isIconsOnButtonsImmutable()) {
        mIconsOnButtons = v;
        Q_EMIT iconsOnButtonsChanged();
      }
    }

    Q_PROPERTY(bool iconsOnButtons READ iconsOnButtons WRITE setIconsOnButtons NOTIFY iconsOnButtonsChanged)
    Q_PROPERTY(bool isIconsOnButtonsImmutable READ isIconsOnButtonsImmutable CONSTANT)
    Q_PROPERTY(bool defaultIconsOnButtonsValue READ defaultIconsOnButtonsValue CONSTANT)
    /**
      Get Show icons on buttons
    */
    bool iconsOnButtons() const
    {
      return mIconsOnButtons;
    }

    /**
      Is Show icons on buttons Immutable
    */
    bool isIconsOnButtonsImmutable() const
    {
      return isImmutable( QStringLiteral( "iconsOnButtons" ) );
    }

    /**
      Get Show icons on buttons default value
    */
    bool defaultIconsOnButtonsValue() const
    {
        return defaultIconsOnButtonsValue_helper();
    }

    /**
      Set Show icons in menus
    */
    void setIconsInMenus( bool v )
    {
      if (v != mIconsInMenus && !isIconsInMenusImmutable()) {
        mIconsInMenus = v;
        Q_EMIT iconsInMenusChanged();
      }
    }

    Q_PROPERTY(bool iconsInMenus READ iconsInMenus WRITE setIconsInMenus NOTIFY iconsInMenusChanged)
    Q_PROPERTY(bool isIconsInMenusImmutable READ isIconsInMenusImmutable CONSTANT)
    Q_PROPERTY(bool defaultIconsInMenusValue READ defaultIconsInMenusValue CONSTANT)
    /**
      Get Show icons in menus
    */
    bool iconsInMenus() const
    {
      return mIconsInMenus;
    }

    /**
      Is Show icons in menus Immutable
    */
    bool isIconsInMenusImmutable() const
    {
      return isImmutable( QStringLiteral( "iconsInMenus" ) );
    }

    /**
      Get Show icons in menus default value
    */
    bool defaultIconsInMenusValue() const
    {
        return defaultIconsInMenusValue_helper();
    }

    /**
      Set Main toolbar label
    */
    void setToolButtonStyle( const QString & v )
    {
      if (v != mToolButtonStyle && !isToolButtonStyleImmutable()) {
        mToolButtonStyle = v;
        Q_EMIT toolButtonStyleChanged();
      }
    }

    Q_PROPERTY(QString toolButtonStyle READ toolButtonStyle WRITE setToolButtonStyle NOTIFY toolButtonStyleChanged)
    Q_PROPERTY(bool isToolButtonStyleImmutable READ isToolButtonStyleImmutable CONSTANT)
    Q_PROPERTY(QString defaultToolButtonStyleValue READ defaultToolButtonStyleValue CONSTANT)
    /**
      Get Main toolbar label
    */
    QString toolButtonStyle() const
    {
      return mToolButtonStyle;
    }

    /**
      Is Main toolbar label Immutable
    */
    bool isToolButtonStyleImmutable() const
    {
      return isImmutable( QStringLiteral( "toolButtonStyle" ) );
    }

    /**
      Get Main toolbar label default value
    */
    QString defaultToolButtonStyleValue() const
    {
        return defaultToolButtonStyleValue_helper();
    }

    /**
      Set Secondary toolbar label
    */
    void setToolButtonStyleOtherToolbars( const QString & v )
    {
      if (v != mToolButtonStyleOtherToolbars && !isToolButtonStyleOtherToolbarsImmutable()) {
        mToolButtonStyleOtherToolbars = v;
        Q_EMIT toolButtonStyleOtherToolbarsChanged();
      }
    }

    Q_PROPERTY(QString toolButtonStyleOtherToolbars READ toolButtonStyleOtherToolbars WRITE setToolButtonStyleOtherToolbars NOTIFY toolButtonStyleOtherToolbarsChanged)
    Q_PROPERTY(bool isToolButtonStyleOtherToolbarsImmutable READ isToolButtonStyleOtherToolbarsImmutable CONSTANT)
    Q_PROPERTY(QString defaultToolButtonStyleOtherToolbarsValue READ defaultToolButtonStyleOtherToolbarsValue CONSTANT)
    /**
      Get Secondary toolbar label
    */
    QString toolButtonStyleOtherToolbars() const
    {
      return mToolButtonStyleOtherToolbars;
    }

    /**
      Is Secondary toolbar label Immutable
    */
    bool isToolButtonStyleOtherToolbarsImmutable() const
    {
      return isImmutable( QStringLiteral( "toolButtonStyleOtherToolbars" ) );
    }

    /**
      Get Secondary toolbar label default value
    */
    QString defaultToolButtonStyleOtherToolbarsValue() const
    {
        return defaultToolButtonStyleOtherToolbarsValue_helper();
    }


    enum {
      signalWidgetStyleChanged = 1,
      signalIconsOnButtonsChanged = 2,
      signalIconsInMenusChanged = 3,
      signalToolButtonStyleChanged = 4,
      signalToolButtonStyleOtherToolbarsChanged = 5
    };

  Q_SIGNALS:
    void widgetStyleChanged();

    void iconsOnButtonsChanged();

    void iconsInMenusChanged();

    void toolButtonStyleChanged();

    void toolButtonStyleOtherToolbarsChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // KDE
    QString mWidgetStyle;
    QString defaultWidgetStyleValue_helper() const;
    bool mIconsOnButtons;
    bool defaultIconsOnButtonsValue_helper() const;
    bool mIconsInMenus;
    bool defaultIconsInMenusValue_helper() const;

    // Toolbar style
    QString mToolButtonStyle;
    QString defaultToolButtonStyleValue_helper() const;
    QString mToolButtonStyleOtherToolbars;
    QString defaultToolButtonStyleOtherToolbarsValue_helper() const;
};

#endif

