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

#include "libadblockplugin_export.h"

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

#include <adblocklistsutil.h>

class LIBADBLOCKPLUGIN_EXPORT AdBlockSettings : public KConfigSkeleton
{
  public:

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

    /**
      Set Enabled ad block
    */
    static
    void setAdBlockEnabled( bool v )
    {
      if (!self()->isAdBlockEnabledImmutable())
        self()->mAdBlockEnabled = v;
    }

    /**
      Get Enabled ad block
    */
    static
    bool adBlockEnabled()
    {
      return self()->mAdBlockEnabled;
    }

    /**
      Is Enabled ad block Immutable
    */
    static
    bool isAdBlockEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AdBlockEnabled" ) );
    }

    /**
      Get Item object corresponding to AdBlockEnabled()
    */
    ItemBool *adBlockEnabledItem()
    {
      return mAdBlockEnabledItem;
    }

    /**
      Set adblockFilterUrls
    */
    static
    void setAdblockFilterUrls( const QList<QUrl> & v )
    {
      if (!self()->isAdblockFilterUrlsImmutable())
        self()->mAdblockFilterUrls = v;
    }

    /**
      Get adblockFilterUrls
    */
    static
    QList<QUrl> adblockFilterUrls()
    {
      return self()->mAdblockFilterUrls;
    }

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

    /**
      Get Item object corresponding to adblockFilterUrls()
    */
    ItemUrlList *adblockFilterUrlsItem()
    {
      return mAdblockFilterUrlsItem;
    }

    /**
      Set adblockFilterNames
    */
    static
    void setAdblockFilterNames( const QStringList & v )
    {
      if (!self()->isAdblockFilterNamesImmutable())
        self()->mAdblockFilterNames = v;
    }

    /**
      Get adblockFilterNames
    */
    static
    QStringList adblockFilterNames()
    {
      return self()->mAdblockFilterNames;
    }

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

    /**
      Get Item object corresponding to adblockFilterNames()
    */
    ItemStringList *adblockFilterNamesItem()
    {
      return mAdblockFilterNamesItem;
    }

    /**
      Set adblockFilterDownloadDismissed
    */
    static
    void setAdblockFilterDownloadDismissed( bool v )
    {
      if (!self()->isAdblockFilterDownloadDismissedImmutable())
        self()->mAdblockFilterDownloadDismissed = v;
    }

    /**
      Get adblockFilterDownloadDismissed
    */
    static
    bool adblockFilterDownloadDismissed()
    {
      return self()->mAdblockFilterDownloadDismissed;
    }

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

    /**
      Get Item object corresponding to adblockFilterDownloadDismissed()
    */
    ItemBool *adblockFilterDownloadDismissedItem()
    {
      return mAdblockFilterDownloadDismissedItem;
    }

  protected:
    AdBlockSettings();
    friend class AdBlockSettingsHelper;


    // General
    bool mAdBlockEnabled;

    // Adblock
    QList<QUrl> mAdblockFilterUrls;
    QStringList mAdblockFilterNames;
    bool mAdblockFilterDownloadDismissed;

  private:
    ItemBool *mAdBlockEnabledItem;
    ItemUrlList *mAdblockFilterUrlsItem;
    ItemStringList *mAdblockFilterNamesItem;
    ItemBool *mAdblockFilterDownloadDismissedItem;
};

#endif

