26#include <QGraphicsColorizeEffect>
27#include <QWebEngineSettings>
33 setObjectName(
QSL(
"sbi_javascripticon"));
34 setCursor(Qt::PointingHandCursor);
35 setToolTip(tr(
"Modify JavaScript settings per-site and globally"));
37 m_icon = QIcon::fromTheme(
QSL(
"application-x-javascript"), QIcon(
QSL(
":sbi/data/javascript.png")));
38 setPixmap(m_icon.pixmap(16));
40 connect(
m_window->
tabWidget(), SIGNAL(currentChanged(
int)),
this, SLOT(updateIcon()));
46void SBI_JavaScriptIcon::showMenu(
const QPoint &point)
48 QFont boldFont = font();
49 boldFont.setBold(
true);
52 menu.addAction(m_icon, tr(
"Current Page Settings"))->setFont(boldFont);
55 menu.addAction(tr(
"Disable JavaScript (temporarily)"),
this, &SBI_JavaScriptIcon::toggleJavaScript);
58 menu.addAction(tr(
"Enable JavaScript (temporarily)"),
this, &SBI_JavaScriptIcon::toggleJavaScript);
63 menu.actions().at(1)->setEnabled(
false);
67 menu.addAction(m_icon, tr(
"Global Settings"))->setFont(boldFont);
68 menu.addAction(tr(
"Manage JavaScript settings"),
this, &SBI_JavaScriptIcon::openJavaScriptSettings);
72void SBI_JavaScriptIcon::updateIcon()
75 setGraphicsEffect(
nullptr);
78 auto* effect =
new QGraphicsColorizeEffect(
this);
79 effect->setColor(Qt::gray);
80 setGraphicsEffect(effect);
84void SBI_JavaScriptIcon::toggleJavaScript()
94 m_settings[page] = !current;
98 page->settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, m_settings[page]);
107void SBI_JavaScriptIcon::openJavaScriptSettings()
TabWidget * tabWidget() const
TabbedWebView * weView() const
void setCurrentPageWebAttribute(QWebEngineSettings::WebAttribute attr, bool value)
WebPage * currentPage() const
bool testCurrentPageWebAttribute(QWebEngineSettings::WebAttribute attr) const
SBI_JavaScriptIcon(BrowserWindow *window)
void navigationRequestAccepted(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame)