// This file is generated by kconfig_compiler_kf6 from angelfishsettings.kcfg.
// All changes you do to this file will be lost.

#include "angelfishsettings.h"

#include <qglobal.h>
#include <QFile>
#include <QQmlEngine>

class AngelfishSettingsHelper
{
  public:
    AngelfishSettingsHelper() noexcept : q(nullptr) {}
    ~AngelfishSettingsHelper() noexcept { delete q; q = nullptr; }
    AngelfishSettingsHelper(const AngelfishSettingsHelper&) = delete;
    AngelfishSettingsHelper& operator=(const AngelfishSettingsHelper&) = delete;
    AngelfishSettings *q;
};
Q_GLOBAL_STATIC(AngelfishSettingsHelper, s_globalAngelfishSettings)
AngelfishSettings *AngelfishSettings::self()
{
  if (!s_globalAngelfishSettings()->q) {
    new AngelfishSettings;
    s_globalAngelfishSettings()->q->read();
  }

  return s_globalAngelfishSettings()->q;
}

AngelfishSettings *AngelfishSettings::create(QQmlEngine *, QJSEngine *)
{
  QQmlEngine::setObjectOwnership(self(), QQmlEngine::CppOwnership);
  return self();
}

AngelfishSettings::AngelfishSettings( QObject *parent )
  : KConfigSkeleton( QStringLiteral( "angelfishrc" ) )
{
  setParent(parent);
  Q_ASSERT(!s_globalAngelfishSettings()->q);
  s_globalAngelfishSettings()->q = this;
  KConfigCompilerSignallingItem::NotifyFunction notifyFunction = static_cast<KConfigCompilerSignallingItem::NotifyFunction>(&AngelfishSettings::itemChanged);

  setCurrentGroup( QStringLiteral( "SettingsPage" ) );

  KConfigCompilerSignallingItem  *itemSearchCustomUrl;
  KConfigSkeleton::ItemString  *innerItemSearchCustomUrl;
  innerItemSearchCustomUrl = new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "searchCustomUrl" ), mSearchCustomUrl );
  itemSearchCustomUrl = new KConfigCompilerSignallingItem(innerItemSearchCustomUrl, this, notifyFunction, signalSearchCustomUrlChanged);
  itemSearchCustomUrl->setWriteFlags(KConfigBase::Notify);
  addItem( itemSearchCustomUrl, QStringLiteral( "searchCustomUrl" ) );

  setCurrentGroup( QStringLiteral( "Browser" ) );

  KConfigCompilerSignallingItem  *itemHomepage;
  KConfigSkeleton::ItemUrl  *innerItemHomepage;
  innerItemHomepage = new KConfigSkeleton::ItemUrl( currentGroup(), QStringLiteral( "homepage" ), mHomepage, QUrl::fromUserInput( QStringLiteral( "https://noai.duckduckgo.com" )) );
  itemHomepage = new KConfigCompilerSignallingItem(innerItemHomepage, this, notifyFunction, signalHomepageChanged);
  itemHomepage->setWriteFlags(KConfigBase::Notify);
  addItem( itemHomepage, QStringLiteral( "homepage" ) );
  KConfigCompilerSignallingItem  *itemShowHomeButton;
  KConfigSkeleton::ItemBool  *innerItemShowHomeButton;
  innerItemShowHomeButton = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "showHomeButton" ), mShowHomeButton, true );
  itemShowHomeButton = new KConfigCompilerSignallingItem(innerItemShowHomeButton, this, notifyFunction, signalShowHomeButtonChanged);
  itemShowHomeButton->setWriteFlags(KConfigBase::Notify);
  addItem( itemShowHomeButton, QStringLiteral( "showHomeButton" ) );
  KConfigCompilerSignallingItem  *itemShowTabBar;
  KConfigSkeleton::ItemBool  *innerItemShowTabBar;
  innerItemShowTabBar = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "showTabBar" ), mShowTabBar, true );
  itemShowTabBar = new KConfigCompilerSignallingItem(innerItemShowTabBar, this, notifyFunction, signalShowTabBarChanged);
  itemShowTabBar->setWriteFlags(KConfigBase::Notify);
  addItem( itemShowTabBar, QStringLiteral( "showTabBar" ) );
  KConfigCompilerSignallingItem  *itemSearchBaseUrl;
  KConfigSkeleton::ItemUrl  *innerItemSearchBaseUrl;
  innerItemSearchBaseUrl = new KConfigSkeleton::ItemUrl( currentGroup(), QStringLiteral( "searchBaseUrl" ), mSearchBaseUrl, QUrl::fromUserInput( QStringLiteral( "https://noai.duckduckgo.com/?q=" )) );
  itemSearchBaseUrl = new KConfigCompilerSignallingItem(innerItemSearchBaseUrl, this, notifyFunction, signalSearchBaseUrlChanged);
  itemSearchBaseUrl->setWriteFlags(KConfigBase::Notify);
  addItem( itemSearchBaseUrl, QStringLiteral( "searchBaseUrl" ) );
  KConfigCompilerSignallingItem  *itemNewTabUrl;
  KConfigSkeleton::ItemUrl  *innerItemNewTabUrl;
  innerItemNewTabUrl = new KConfigSkeleton::ItemUrl( currentGroup(), QStringLiteral( "newTabUrl" ), mNewTabUrl, QUrl::fromUserInput( QStringLiteral( "https://noai.duckduckgo.com/?q=" )) );
  itemNewTabUrl = new KConfigCompilerSignallingItem(innerItemNewTabUrl, this, notifyFunction, signalNewTabUrlChanged);
  itemNewTabUrl->setWriteFlags(KConfigBase::Notify);
  addItem( itemNewTabUrl, QStringLiteral( "newTabUrl" ) );
  KConfigCompilerSignallingItem  *itemSwitchToNewTab;
  KConfigSkeleton::ItemBool  *innerItemSwitchToNewTab;
  innerItemSwitchToNewTab = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "switchToNewTab" ), mSwitchToNewTab, false );
  itemSwitchToNewTab = new KConfigCompilerSignallingItem(innerItemSwitchToNewTab, this, notifyFunction, signalSwitchToNewTabChanged);
  itemSwitchToNewTab->setWriteFlags(KConfigBase::Notify);
  addItem( itemSwitchToNewTab, QStringLiteral( "switchToNewTab" ) );

  setCurrentGroup( QStringLiteral( "WebView" ) );

  KConfigCompilerSignallingItem  *itemProfile;
  KConfigSkeleton::ItemString  *innerItemProfile;
  innerItemProfile = new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "profile" ), mProfile, QStringLiteral( "DefaultProfile" ) );
  itemProfile = new KConfigCompilerSignallingItem(innerItemProfile, this, notifyFunction, signalProfileChanged);
  itemProfile->setWriteFlags(KConfigBase::Notify);
  addItem( itemProfile, QStringLiteral( "profile" ) );
  KConfigCompilerSignallingItem  *itemWebAutoLoadImages;
  KConfigSkeleton::ItemBool  *innerItemWebAutoLoadImages;
  innerItemWebAutoLoadImages = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "webAutoLoadImages" ), mWebAutoLoadImages, true );
  itemWebAutoLoadImages = new KConfigCompilerSignallingItem(innerItemWebAutoLoadImages, this, notifyFunction, signalWebAutoLoadImagesChanged);
  itemWebAutoLoadImages->setWriteFlags(KConfigBase::Notify);
  addItem( itemWebAutoLoadImages, QStringLiteral( "webAutoLoadImages" ) );
  KConfigCompilerSignallingItem  *itemWebJavaScriptEnabled;
  KConfigSkeleton::ItemBool  *innerItemWebJavaScriptEnabled;
  innerItemWebJavaScriptEnabled = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "webJavaScriptEnabled" ), mWebJavaScriptEnabled, true );
  itemWebJavaScriptEnabled = new KConfigCompilerSignallingItem(innerItemWebJavaScriptEnabled, this, notifyFunction, signalWebJavaScriptEnabledChanged);
  itemWebJavaScriptEnabled->setWriteFlags(KConfigBase::Notify);
  addItem( itemWebJavaScriptEnabled, QStringLiteral( "webJavaScriptEnabled" ) );
  KConfigCompilerSignallingItem  *itemWebSmoothScrollingEnabled;
  KConfigSkeleton::ItemBool  *innerItemWebSmoothScrollingEnabled;
  innerItemWebSmoothScrollingEnabled = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "webSmoothScrollingEnabled" ), mWebSmoothScrollingEnabled, false );
  itemWebSmoothScrollingEnabled = new KConfigCompilerSignallingItem(innerItemWebSmoothScrollingEnabled, this, notifyFunction, signalWebSmoothScrollingEnabledChanged);
  itemWebSmoothScrollingEnabled->setWriteFlags(KConfigBase::Notify);
  addItem( itemWebSmoothScrollingEnabled, QStringLiteral( "webSmoothScrollingEnabled" ) );
  KConfigCompilerSignallingItem  *itemWebDarkModeEnabled;
  KConfigSkeleton::ItemBool  *innerItemWebDarkModeEnabled;
  innerItemWebDarkModeEnabled = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "webDarkModeEnabled" ), mWebDarkModeEnabled, false );
  itemWebDarkModeEnabled = new KConfigCompilerSignallingItem(innerItemWebDarkModeEnabled, this, notifyFunction, signalWebDarkModeEnabledChanged);
  itemWebDarkModeEnabled->setWriteFlags(KConfigBase::Notify);
  addItem( itemWebDarkModeEnabled, QStringLiteral( "webDarkModeEnabled" ) );

  setCurrentGroup( QStringLiteral( "NavigationBar" ) );

  KConfigCompilerSignallingItem  *itemNavBarMainMenu;
  KConfigSkeleton::ItemBool  *innerItemNavBarMainMenu;
  innerItemNavBarMainMenu = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "navBarMainMenu" ), mNavBarMainMenu, true );
  itemNavBarMainMenu = new KConfigCompilerSignallingItem(innerItemNavBarMainMenu, this, notifyFunction, signalNavBarMainMenuChanged);
  itemNavBarMainMenu->setWriteFlags(KConfigBase::Notify);
  addItem( itemNavBarMainMenu, QStringLiteral( "navBarMainMenu" ) );
  KConfigCompilerSignallingItem  *itemNavBarTabs;
  KConfigSkeleton::ItemBool  *innerItemNavBarTabs;
  innerItemNavBarTabs = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "navBarTabs" ), mNavBarTabs, true );
  itemNavBarTabs = new KConfigCompilerSignallingItem(innerItemNavBarTabs, this, notifyFunction, signalNavBarTabsChanged);
  itemNavBarTabs->setWriteFlags(KConfigBase::Notify);
  addItem( itemNavBarTabs, QStringLiteral( "navBarTabs" ) );
  KConfigCompilerSignallingItem  *itemNavBarBack;
  KConfigSkeleton::ItemBool  *innerItemNavBarBack;
  innerItemNavBarBack = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "navBarBack" ), mNavBarBack, !SettingsHelper::isMobile() );
  itemNavBarBack = new KConfigCompilerSignallingItem(innerItemNavBarBack, this, notifyFunction, signalNavBarBackChanged);
  itemNavBarBack->setWriteFlags(KConfigBase::Notify);
  addItem( itemNavBarBack, QStringLiteral( "navBarBack" ) );
  KConfigCompilerSignallingItem  *itemNavBarForward;
  KConfigSkeleton::ItemBool  *innerItemNavBarForward;
  innerItemNavBarForward = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "navBarForward" ), mNavBarForward, !SettingsHelper::isMobile() );
  itemNavBarForward = new KConfigCompilerSignallingItem(innerItemNavBarForward, this, notifyFunction, signalNavBarForwardChanged);
  itemNavBarForward->setWriteFlags(KConfigBase::Notify);
  addItem( itemNavBarForward, QStringLiteral( "navBarForward" ) );
  KConfigCompilerSignallingItem  *itemNavBarReload;
  KConfigSkeleton::ItemBool  *innerItemNavBarReload;
  innerItemNavBarReload = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "navBarReload" ), mNavBarReload, !SettingsHelper::isMobile() );
  itemNavBarReload = new KConfigCompilerSignallingItem(innerItemNavBarReload, this, notifyFunction, signalNavBarReloadChanged);
  itemNavBarReload->setWriteFlags(KConfigBase::Notify);
  addItem( itemNavBarReload, QStringLiteral( "navBarReload" ) );
  KConfigCompilerSignallingItem  *itemNavBarContextMenu;
  KConfigSkeleton::ItemBool  *innerItemNavBarContextMenu;
  innerItemNavBarContextMenu = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "navBarContextMenu" ), mNavBarContextMenu );
  itemNavBarContextMenu = new KConfigCompilerSignallingItem(innerItemNavBarContextMenu, this, notifyFunction, signalNavBarContextMenuChanged);
  itemNavBarContextMenu->setWriteFlags(KConfigBase::Notify);
  addItem( itemNavBarContextMenu, QStringLiteral( "navBarContextMenu" ) );

  setCurrentGroup( QStringLiteral( "Window" ) );

  KConfigCompilerSignallingItem  *itemWindowX;
  KConfigSkeleton::ItemInt  *innerItemWindowX;
  innerItemWindowX = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "windowX" ), mWindowX );
  itemWindowX = new KConfigCompilerSignallingItem(innerItemWindowX, this, notifyFunction, signalWindowXChanged);
  itemWindowX->setWriteFlags(KConfigBase::Notify);
  addItem( itemWindowX, QStringLiteral( "windowX" ) );
  KConfigCompilerSignallingItem  *itemWindowY;
  KConfigSkeleton::ItemInt  *innerItemWindowY;
  innerItemWindowY = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "windowY" ), mWindowY );
  itemWindowY = new KConfigCompilerSignallingItem(innerItemWindowY, this, notifyFunction, signalWindowYChanged);
  itemWindowY->setWriteFlags(KConfigBase::Notify);
  addItem( itemWindowY, QStringLiteral( "windowY" ) );
  KConfigCompilerSignallingItem  *itemWindowWidth;
  KConfigSkeleton::ItemInt  *innerItemWindowWidth;
  innerItemWindowWidth = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "windowWidth" ), mWindowWidth, SettingsHelper::isMobile() ? 300 : 1020 );
  itemWindowWidth = new KConfigCompilerSignallingItem(innerItemWindowWidth, this, notifyFunction, signalWindowWidthChanged);
  itemWindowWidth->setWriteFlags(KConfigBase::Notify);
  addItem( itemWindowWidth, QStringLiteral( "windowWidth" ) );
  KConfigCompilerSignallingItem  *itemWindowHeight;
  KConfigSkeleton::ItemInt  *innerItemWindowHeight;
  innerItemWindowHeight = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "windowHeight" ), mWindowHeight, SettingsHelper::isMobile() ? 450 : 680 );
  itemWindowHeight = new KConfigCompilerSignallingItem(innerItemWindowHeight, this, notifyFunction, signalWindowHeightChanged);
  itemWindowHeight->setWriteFlags(KConfigBase::Notify);
  addItem( itemWindowHeight, QStringLiteral( "windowHeight" ) );

  setCurrentGroup( QStringLiteral( "Adblock" ) );

  KConfigCompilerSignallingItem  *itemAdblockEnabled;
  KConfigSkeleton::ItemBool  *innerItemAdblockEnabled;
  innerItemAdblockEnabled = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "adblockEnabled" ), mAdblockEnabled, true );
  itemAdblockEnabled = new KConfigCompilerSignallingItem(innerItemAdblockEnabled, this, notifyFunction, signalAdblockEnabledChanged);
  itemAdblockEnabled->setWriteFlags(KConfigBase::Notify);
  addItem( itemAdblockEnabled, QStringLiteral( "adblockEnabled" ) );
  QList<QUrl> defaultadblockFilterUrls;
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://easylist.to/easylist/easyprivacy.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://easylist.to/easylist/easylist.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://filters.adtidy.org/extension/ublock/filters/14.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://easylist-downloads.adblockplus.org/antiadblockfilters.txt" ) ) );

  KConfigCompilerSignallingItem  *itemAdblockFilterUrls;
  KConfigSkeleton::ItemUrlList  *innerItemAdblockFilterUrls;
  innerItemAdblockFilterUrls = new KConfigSkeleton::ItemUrlList( currentGroup(), QStringLiteral( "adblockFilterUrls" ), mAdblockFilterUrls, defaultadblockFilterUrls );
  itemAdblockFilterUrls = new KConfigCompilerSignallingItem(innerItemAdblockFilterUrls, this, notifyFunction, signalAdblockFilterUrlsChanged);
  itemAdblockFilterUrls->setWriteFlags(KConfigBase::Notify);
  addItem( itemAdblockFilterUrls, QStringLiteral( "adblockFilterUrls" ) );
  QStringList defaultadblockFilterNames;
  defaultadblockFilterNames.append( QString::fromUtf8( "uBlock filters" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "uBlock filters – Privacy" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "uBlock filters – Resource abuse" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "uBlock filters – Unbreak" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "EasyPrivacy" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "Easylist" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "AdGuard Annoyances" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "Adblock Warning Removal List" ) );

  KConfigCompilerSignallingItem  *itemAdblockFilterNames;
  KConfigSkeleton::ItemStringList  *innerItemAdblockFilterNames;
  innerItemAdblockFilterNames = new KConfigSkeleton::ItemStringList( currentGroup(), QStringLiteral( "adblockFilterNames" ), mAdblockFilterNames, defaultadblockFilterNames );
  itemAdblockFilterNames = new KConfigCompilerSignallingItem(innerItemAdblockFilterNames, this, notifyFunction, signalAdblockFilterNamesChanged);
  itemAdblockFilterNames->setWriteFlags(KConfigBase::Notify);
  addItem( itemAdblockFilterNames, QStringLiteral( "adblockFilterNames" ) );
  KConfigCompilerSignallingItem  *itemAdblockFilterDownloadDismissed;
  KConfigSkeleton::ItemBool  *innerItemAdblockFilterDownloadDismissed;
  innerItemAdblockFilterDownloadDismissed = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "adblockFilterDownloadDismissed" ), mAdblockFilterDownloadDismissed, false );
  itemAdblockFilterDownloadDismissed = new KConfigCompilerSignallingItem(innerItemAdblockFilterDownloadDismissed, this, notifyFunction, signalAdblockFilterDownloadDismissedChanged);
  itemAdblockFilterDownloadDismissed->setWriteFlags(KConfigBase::Notify);
  addItem( itemAdblockFilterDownloadDismissed, QStringLiteral( "adblockFilterDownloadDismissed" ) );
}

QUrl AngelfishSettings::defaultHomepageValue_helper()
{

  return QUrl::fromUserInput( QStringLiteral( "https://noai.duckduckgo.com" ));
}

bool AngelfishSettings::defaultShowHomeButtonValue_helper()
{

  return true;
}

bool AngelfishSettings::defaultShowTabBarValue_helper()
{

  return true;
}

QUrl AngelfishSettings::defaultSearchBaseUrlValue_helper()
{

  return QUrl::fromUserInput( QStringLiteral( "https://noai.duckduckgo.com/?q=" ));
}

QUrl AngelfishSettings::defaultNewTabUrlValue_helper()
{

  return QUrl::fromUserInput( QStringLiteral( "https://noai.duckduckgo.com/?q=" ));
}

bool AngelfishSettings::defaultSwitchToNewTabValue_helper()
{

  return false;
}

QString AngelfishSettings::defaultProfileValue_helper()
{

  return QStringLiteral( "DefaultProfile" );
}

bool AngelfishSettings::defaultWebAutoLoadImagesValue_helper()
{

  return true;
}

bool AngelfishSettings::defaultWebJavaScriptEnabledValue_helper()
{

  return true;
}

bool AngelfishSettings::defaultWebSmoothScrollingEnabledValue_helper()
{

  return false;
}

bool AngelfishSettings::defaultWebDarkModeEnabledValue_helper()
{

  return false;
}

bool AngelfishSettings::defaultNavBarMainMenuValue_helper()
{

  return true;
}

bool AngelfishSettings::defaultNavBarTabsValue_helper()
{

  return true;
}

bool AngelfishSettings::defaultNavBarBackValue_helper()
{

  return !SettingsHelper::isMobile();
}

bool AngelfishSettings::defaultNavBarForwardValue_helper()
{

  return !SettingsHelper::isMobile();
}

bool AngelfishSettings::defaultNavBarReloadValue_helper()
{

  return !SettingsHelper::isMobile();
}

int AngelfishSettings::defaultWindowWidthValue_helper()
{

  return SettingsHelper::isMobile() ? 300 : 1020;
}

int AngelfishSettings::defaultWindowHeightValue_helper()
{

  return SettingsHelper::isMobile() ? 450 : 680;
}

bool AngelfishSettings::defaultAdblockEnabledValue_helper()
{

  return true;
}

QList<QUrl> AngelfishSettings::defaultAdblockFilterUrlsValue_helper()
{
  QList<QUrl> defaultadblockFilterUrls;
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://easylist.to/easylist/easyprivacy.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://easylist.to/easylist/easylist.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://filters.adtidy.org/extension/ublock/filters/14.txt" ) ) );
  defaultadblockFilterUrls.append( QUrl::fromUserInput(QString::fromUtf8( "https://easylist-downloads.adblockplus.org/antiadblockfilters.txt" ) ) );

  return defaultadblockFilterUrls;
}

QStringList AngelfishSettings::defaultAdblockFilterNamesValue_helper()
{
  QStringList defaultadblockFilterNames;
  defaultadblockFilterNames.append( QString::fromUtf8( "uBlock filters" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "uBlock filters – Privacy" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "uBlock filters – Resource abuse" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "uBlock filters – Unbreak" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "EasyPrivacy" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "Easylist" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "AdGuard Annoyances" ) );
  defaultadblockFilterNames.append( QString::fromUtf8( "Adblock Warning Removal List" ) );

  return defaultadblockFilterNames;
}

bool AngelfishSettings::defaultAdblockFilterDownloadDismissedValue_helper()
{

  return false;
}

AngelfishSettings::~AngelfishSettings()
{
  if (s_globalAngelfishSettings.exists() && !s_globalAngelfishSettings.isDestroyed()) {
    s_globalAngelfishSettings()->q = nullptr;
  }
}


void AngelfishSettings::itemChanged(quint64 signalFlag) {

  switch (signalFlag) {
  case signalSearchCustomUrlChanged:
    Q_EMIT searchCustomUrlChanged();
    break;
  case signalHomepageChanged:
    Q_EMIT homepageChanged();
    break;
  case signalShowHomeButtonChanged:
    Q_EMIT showHomeButtonChanged();
    break;
  case signalShowTabBarChanged:
    Q_EMIT showTabBarChanged();
    break;
  case signalSearchBaseUrlChanged:
    Q_EMIT searchBaseUrlChanged();
    break;
  case signalNewTabUrlChanged:
    Q_EMIT newTabUrlChanged();
    break;
  case signalSwitchToNewTabChanged:
    Q_EMIT switchToNewTabChanged();
    break;
  case signalProfileChanged:
    Q_EMIT profileChanged();
    break;
  case signalWebAutoLoadImagesChanged:
    Q_EMIT webAutoLoadImagesChanged();
    break;
  case signalWebJavaScriptEnabledChanged:
    Q_EMIT webJavaScriptEnabledChanged();
    break;
  case signalWebSmoothScrollingEnabledChanged:
    Q_EMIT webSmoothScrollingEnabledChanged();
    break;
  case signalWebDarkModeEnabledChanged:
    Q_EMIT webDarkModeEnabledChanged();
    break;
  case signalNavBarMainMenuChanged:
    Q_EMIT navBarMainMenuChanged();
    break;
  case signalNavBarTabsChanged:
    Q_EMIT navBarTabsChanged();
    break;
  case signalNavBarBackChanged:
    Q_EMIT navBarBackChanged();
    break;
  case signalNavBarForwardChanged:
    Q_EMIT navBarForwardChanged();
    break;
  case signalNavBarReloadChanged:
    Q_EMIT navBarReloadChanged();
    break;
  case signalNavBarContextMenuChanged:
    Q_EMIT navBarContextMenuChanged();
    break;
  case signalWindowXChanged:
    Q_EMIT windowXChanged();
    break;
  case signalWindowYChanged:
    Q_EMIT windowYChanged();
    break;
  case signalWindowWidthChanged:
    Q_EMIT windowWidthChanged();
    break;
  case signalWindowHeightChanged:
    Q_EMIT windowHeightChanged();
    break;
  case signalAdblockEnabledChanged:
    Q_EMIT adblockEnabledChanged();
    break;
  case signalAdblockFilterUrlsChanged:
    Q_EMIT adblockFilterUrlsChanged();
    break;
  case signalAdblockFilterNamesChanged:
    Q_EMIT adblockFilterNamesChanged();
    break;
  case signalAdblockFilterDownloadDismissedChanged:
    Q_EMIT adblockFilterDownloadDismissedChanged();
    break;
  }
}
