diff --git a/app/browser/buffer.py b/app/browser/buffer.py index 8080715..28ad6ec 100644 --- a/app/browser/buffer.py +++ b/app/browser/buffer.py @@ -51,6 +51,8 @@ class AppBuffer(BrowserBuffer): self.buffer_widget.open_url_in_new_tab.connect(self.open_url_in_new_tab) self.buffer_widget.open_url_in_background_tab.connect(self.open_url_in_background_tab) + self.buffer_widget.urlChanged.connect(self.set_adblock) + # Reset to default zoom when page init or url changed. self.reset_default_zoom() self.buffer_widget.urlChanged.connect(self.update_url) @@ -58,3 +60,7 @@ class AppBuffer(BrowserBuffer): def update_url(self, url): self.reset_default_zoom() self.url = self.buffer_widget.url().toString() + + def set_adblock(self, url): + if self.emacs_var_dict["eaf-browser-enable-adblock"] == "true": + self.buffer_widget.load_adblock() diff --git a/core/browser.py b/core/browser.py index 933503a..6800d31 100644 --- a/core/browser.py +++ b/core/browser.py @@ -51,7 +51,6 @@ class BrowserView(QWebEngineView): self.installEventFilter(self) self.buffer_id = buffer_id self.config_dir = config_dir - self.enable_adblock = True self.web_page = BrowserPage() self.setPage(self.web_page) @@ -66,9 +65,6 @@ class BrowserView(QWebEngineView): self.load_cookie() - if self.enable_adblock: - self.load_css(os.path.join(os.path.dirname(__file__), "adblock.css"),'adblock') - self.search_term = "" self.get_markers_raw = self.read_js_content("get_markers.js") @@ -107,6 +103,9 @@ class BrowserView(QWebEngineView): script.setWorldId(QWebEngineScript.ApplicationWorld) self.web_page.scripts().insert(script) + def load_adblock(self): + self.load_css(os.path.join(os.path.dirname(__file__), "adblock.css"),'adblock') + def remove_css(self, name, immediately): SCRIPT = """ (function() { @@ -166,17 +165,19 @@ class BrowserView(QWebEngineView): self.web_page.findText(self.search_term, self.web_page.FindBackward) else: self.web_page.findText(self.search_term) - + @interactive() def change_adblock_status(self): ''' Change adblock status.''' - if self.enable_adblock == True: - self.enable_adblock = False + if self.buffer.emacs_var_dict["eaf-browser-enable-adblock"] == "true": + self.buffer.emacs_var_dict["eaf-browser-enable-adblock"] = "false" + self.buffer.set_emacs_var.emit("eaf-browser-enable-adblock", "false") self.remove_css('adblock',True) self.buffer.message_to_emacs.emit("Successfully disabled adblock!") - elif self.enable_adblock == False: - self.enable_adblock = True - self.load_css(os.path.join(os.path.dirname(__file__), "adblock.css"),'adblock') + elif self.buffer.emacs_var_dict["eaf-browser-enable-adblock"] == "false": + self.buffer.emacs_var_dict["eaf-browser-enable-adblock"] = "true" + self.buffer.set_emacs_var.emit("eaf-browser-enable-adblock", "true") + self.load_adblock() self.buffer.message_to_emacs.emit("Successfully enabled adblock!") @interactive() diff --git a/eaf.el b/eaf.el index 878897c..a66311d 100644 --- a/eaf.el +++ b/eaf.el @@ -242,6 +242,7 @@ It must defined at `eaf-browser-search-engines'." (defcustom eaf-var-list '((eaf-camera-save-path . "~/Downloads") (eaf-browser-enable-plugin . "true") + (eaf-browser-enable-adblock . "true") (eaf-browser-enable-javascript . "true") (eaf-browser-remember-history . "true") (eaf-browser-default-zoom . "1.0")