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

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

class BellSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

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

    /**
      Set Use System Bell
    */
    void setSystemBell( bool v )
    {
      if (v != mSystemBell && !isSystemBellImmutable()) {
        mSystemBell = v;
        Q_EMIT SystemBellChanged();
      }
    }

    Q_PROPERTY(bool systemBell READ systemBell WRITE setSystemBell NOTIFY SystemBellChanged)
    Q_PROPERTY(bool isSystemBellImmutable READ isSystemBellImmutable CONSTANT)
    Q_PROPERTY(bool defaultSystemBellValue READ defaultSystemBellValue CONSTANT)
    /**
      Get Use System Bell
    */
    bool systemBell() const
    {
      return mSystemBell;
    }

    /**
      Is Use System Bell Immutable
    */
    bool isSystemBellImmutable() const
    {
      return isImmutable( QStringLiteral( "SystemBell" ) );
    }

    /**
      Get Use System Bell default value
    */
    bool defaultSystemBellValue() const
    {
        return defaultSystemBellValue_helper();
    }

    /**
      Set Customize system bell
    */
    void setCustomBell( bool v )
    {
      if (v != mCustomBell && !isCustomBellImmutable()) {
        mCustomBell = v;
        Q_EMIT CustomBellChanged();
      }
    }

    Q_PROPERTY(bool customBell READ customBell WRITE setCustomBell NOTIFY CustomBellChanged)
    Q_PROPERTY(bool isCustomBellImmutable READ isCustomBellImmutable CONSTANT)
    Q_PROPERTY(bool defaultCustomBellValue READ defaultCustomBellValue CONSTANT)
    /**
      Get Customize system bell
    */
    bool customBell() const
    {
      return mCustomBell;
    }

    /**
      Is Customize system bell Immutable
    */
    bool isCustomBellImmutable() const
    {
      return isImmutable( QStringLiteral( "CustomBell" ) );
    }

    /**
      Get Customize system bell default value
    */
    bool defaultCustomBellValue() const
    {
        return defaultCustomBellValue_helper();
    }

    /**
      Set Sound file for the Bell
    */
    void setCustomBellFile( const QString & v )
    {
      if (v != mCustomBellFile && !isCustomBellFileImmutable()) {
        mCustomBellFile = v;
        Q_EMIT CustomBellFileChanged();
      }
    }

    Q_PROPERTY(QString customBellFile READ customBellFile WRITE setCustomBellFile NOTIFY CustomBellFileChanged)
    Q_PROPERTY(bool isCustomBellFileImmutable READ isCustomBellFileImmutable CONSTANT)
    /**
      Get Sound file for the Bell
    */
    QString customBellFile() const
    {
      return mCustomBellFile;
    }

    /**
      Is Sound file for the Bell Immutable
    */
    bool isCustomBellFileImmutable() const
    {
      return isImmutable( QStringLiteral( "CustomBellFile" ) );
    }

    /**
      Set Use a visual bell instead of a sound
    */
    void setVisibleBell( bool v )
    {
      if (v != mVisibleBell && !isVisibleBellImmutable()) {
        mVisibleBell = v;
        Q_EMIT VisibleBellChanged();
      }
    }

    Q_PROPERTY(bool visibleBell READ visibleBell WRITE setVisibleBell NOTIFY VisibleBellChanged)
    Q_PROPERTY(bool isVisibleBellImmutable READ isVisibleBellImmutable CONSTANT)
    Q_PROPERTY(bool defaultVisibleBellValue READ defaultVisibleBellValue CONSTANT)
    /**
      Get Use a visual bell instead of a sound
    */
    bool visibleBell() const
    {
      return mVisibleBell;
    }

    /**
      Is Use a visual bell instead of a sound Immutable
    */
    bool isVisibleBellImmutable() const
    {
      return isImmutable( QStringLiteral( "VisibleBell" ) );
    }

    /**
      Get Use a visual bell instead of a sound default value
    */
    bool defaultVisibleBellValue() const
    {
        return defaultVisibleBellValue_helper();
    }

    /**
      Set Invert the system colors on the bell
    */
    void setInvertScreen( bool v )
    {
      if (v != mInvertScreen && !isInvertScreenImmutable()) {
        mInvertScreen = v;
        Q_EMIT InvertScreenChanged();
      }
    }

    Q_PROPERTY(bool invertScreen READ invertScreen WRITE setInvertScreen NOTIFY InvertScreenChanged)
    Q_PROPERTY(bool isInvertScreenImmutable READ isInvertScreenImmutable CONSTANT)
    Q_PROPERTY(bool defaultInvertScreenValue READ defaultInvertScreenValue CONSTANT)
    /**
      Get Invert the system colors on the bell
    */
    bool invertScreen() const
    {
      return mInvertScreen;
    }

    /**
      Is Invert the system colors on the bell Immutable
    */
    bool isInvertScreenImmutable() const
    {
      return isImmutable( QStringLiteral( "InvertScreen" ) );
    }

    /**
      Get Invert the system colors on the bell default value
    */
    bool defaultInvertScreenValue() const
    {
        return defaultInvertScreenValue_helper();
    }

    /**
      Set Color of the Visual Bell
    */
    void setVisibleBellColor( const QColor & v )
    {
      if (v != mVisibleBellColor && !isVisibleBellColorImmutable()) {
        mVisibleBellColor = v;
        Q_EMIT VisibleBellColorChanged();
      }
    }

    Q_PROPERTY(QColor visibleBellColor READ visibleBellColor WRITE setVisibleBellColor NOTIFY VisibleBellColorChanged)
    Q_PROPERTY(bool isVisibleBellColorImmutable READ isVisibleBellColorImmutable CONSTANT)
    Q_PROPERTY(QColor defaultVisibleBellColorValue READ defaultVisibleBellColorValue CONSTANT)
    /**
      Get Color of the Visual Bell
    */
    QColor visibleBellColor() const
    {
      return mVisibleBellColor;
    }

    /**
      Is Color of the Visual Bell Immutable
    */
    bool isVisibleBellColorImmutable() const
    {
      return isImmutable( QStringLiteral( "VisibleBellColor" ) );
    }

    /**
      Get Color of the Visual Bell default value
    */
    QColor defaultVisibleBellColorValue() const
    {
        return defaultVisibleBellColorValue_helper();
    }

    /**
      Set Duration of the Visual Bell
    */
    void setVisibleBellPause( int v )
    {
      if (v != mVisibleBellPause && !isVisibleBellPauseImmutable()) {
        mVisibleBellPause = v;
        Q_EMIT VisibleBellPauseChanged();
      }
    }

    Q_PROPERTY(int visibleBellPause READ visibleBellPause WRITE setVisibleBellPause NOTIFY VisibleBellPauseChanged)
    Q_PROPERTY(bool isVisibleBellPauseImmutable READ isVisibleBellPauseImmutable CONSTANT)
    Q_PROPERTY(int defaultVisibleBellPauseValue READ defaultVisibleBellPauseValue CONSTANT)
    /**
      Get Duration of the Visual Bell
    */
    int visibleBellPause() const
    {
      return mVisibleBellPause;
    }

    /**
      Is Duration of the Visual Bell Immutable
    */
    bool isVisibleBellPauseImmutable() const
    {
      return isImmutable( QStringLiteral( "VisibleBellPause" ) );
    }

    /**
      Get Duration of the Visual Bell default value
    */
    int defaultVisibleBellPauseValue() const
    {
        return defaultVisibleBellPauseValue_helper();
    }


    enum {
      signalSystemBellChanged = 1,
      signalCustomBellChanged = 2,
      signalCustomBellFileChanged = 3,
      signalVisibleBellChanged = 4,
      signalInvertScreenChanged = 5,
      signalVisibleBellColorChanged = 6,
      signalVisibleBellPauseChanged = 7
    };

  Q_SIGNALS:
    void SystemBellChanged();

    void CustomBellChanged();

    void CustomBellFileChanged();

    void VisibleBellChanged();

    void InvertScreenChanged();

    void VisibleBellColorChanged();

    void VisibleBellPauseChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // Bell
    bool mSystemBell;
    bool defaultSystemBellValue_helper() const;
    bool mCustomBell;
    bool defaultCustomBellValue_helper() const;
    QString mCustomBellFile;
    QString defaultCustomBellFileValue_helper() const;
    bool mVisibleBell;
    bool defaultVisibleBellValue_helper() const;
    bool mInvertScreen;
    bool defaultInvertScreenValue_helper() const;
    QColor mVisibleBellColor;
    QColor defaultVisibleBellColorValue_helper() const;
    int mVisibleBellPause;
    int defaultVisibleBellPauseValue_helper() const;
};

#endif

