35 setIcon(QIcon(
QSL(
":adblock/data/adblock.png")));
47 return QSL(
"adblock-icon");
52 return tr(
"AdBlock Icon");
55void AdBlockIcon::toggleCustomFilter()
57 auto* action = qobject_cast<QAction*>(sender());
62 const QString filter = action->data().toString();
75void AdBlockIcon::updateState()
92 setToolTip(tr(
"AdBlock is disabled on this site "));
102void AdBlockIcon::updateBadgeText()
116void AdBlockIcon::webViewChanged(
WebView *view)
121 disconnect(m_view.data(), &WebView::urlChanged,
this, &AdBlockIcon::updateState);
127 connect(m_view.data(), &WebView::urlChanged,
this, &AdBlockIcon::updateState);
131void AdBlockIcon::clicked(ClickController *controller)
141 const QUrl pageUrl = view->url();
143 auto *menu =
new QMenu();
144 menu->setAttribute(Qt::WA_DeleteOnClose);
145 menu->addAction(tr(
"Show AdBlock &Settings"), manager, SLOT(showDialog()));
146 menu->addSeparator();
149 const QString host = view->url().host().contains(QLatin1String(
"www.")) ? pageUrl.host().mid(4) : pageUrl.host();
150 const QString hostFilter =
QSL(
"@@||%1^$document").arg(host);
151 const QString pageFilter =
QSL(
"@@|%1|$document").arg(pageUrl.toString());
153 QAction* act = menu->addAction(tr(
"Disable on %1").arg(host));
154 act->setCheckable(
true);
156 act->setData(hostFilter);
157 connect(act, &QAction::triggered,
this, &AdBlockIcon::toggleCustomFilter);
159 act = menu->addAction(tr(
"Disable only on this page"));
160 act->setCheckable(
true);
162 act->setData(pageFilter);
163 connect(act, &QAction::triggered,
this, &AdBlockIcon::toggleCustomFilter);
166 connect(menu, &QMenu::aboutToHide,
this, [=]() {
167 controller->popupClosed();
170 menu->popup(controller->popupPosition(menu->sizeHint()));
173void AdBlockIcon::blockedRequestsChanged(
const QUrl &url)
176 if (!view || url != view->url()) {
int addRule(AdBlockRule *rule) override
bool removeFilter(const QString &filter)
bool containsFilter(const QString &filter) const
QString id() const override
QString name() const override
AdBlockIcon(QObject *parent=nullptr)
bool canRunOnScheme(const QString &scheme) const
void enabledChanged(bool enabled)
void blockedRequestsChanged(const QUrl &url)
AdBlockCustomList * customList() const
QVector< AdBlockedRequest > blockedRequestsForUrl(const QUrl &url) const
static AdBlockManager * instance()