Skip to content

Commit

Permalink
Merge pull request #393 from HollowMan6/set-default-zoom-for-each-web…
Browse files Browse the repository at this point in the history
…site

Add set default zoom for each website function #392
  • Loading branch information
manateelazycat authored Sep 7, 2020
2 parents 167a04a + 2749c7f commit 86c6c55
Showing 1 changed file with 53 additions and 1 deletion.
54 changes: 53 additions & 1 deletion core/browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -306,11 +306,19 @@ def open_url_background_buffer(self, url):
def zoom_in(self):
''' Zoom in.'''
self.setZoomFactor(min(5, self.zoomFactor() + 0.25))
if float(self.buffer.emacs_var_dict["eaf-browser-default-zoom"]) == self.zoomFactor():
self.buffer.zoom_data.delete_entry(urlparse(self.buffer.current_url).hostname)
else:
self.buffer.zoom_data.add_entry(urlparse(self.buffer.current_url).hostname, self.zoomFactor())

@interactive(insert_or_do=True)
def zoom_out(self):
''' Zoom out.'''
self.setZoomFactor(max(0.25, self.zoomFactor() - 0.25))
if float(self.buffer.emacs_var_dict["eaf-browser-default-zoom"]) == self.zoomFactor():
self.buffer.zoom_data.delete_entry(urlparse(self.buffer.current_url).hostname)
else:
self.buffer.zoom_data.add_entry(urlparse(self.buffer.current_url).hostname, self.zoomFactor())

@interactive(insert_or_do=True)
def zoom_reset(self):
Expand Down Expand Up @@ -603,6 +611,8 @@ def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module
self.autofill = PasswordDb(os.path.join(os.path.dirname(config_dir), "browser", "password.db"))
self.autofill_id = 0

self.zoom_data = ZoomSizeDb(os.path.join(os.path.dirname(config_dir), "browser", "zoom_data.db"))

self.history_list = []
if self.emacs_var_dict["eaf-browser-remember-history"] == "true":
self.history_log_file_path = os.path.join(self.config_dir, "browser", "history", "log.txt")
Expand Down Expand Up @@ -1228,7 +1238,11 @@ def edit_url(self):
def reset_default_zoom(self):
''' Reset default magnification.'''
if hasattr(self, "buffer_widget"):
self.buffer_widget.setZoomFactor(float(self.emacs_var_dict["eaf-browser-default-zoom"]))
result = self.zoom_data.get_entry(urlparse(self.url).hostname)
zoom_factor = float(self.emacs_var_dict["eaf-browser-default-zoom"])
for row in result:
zoom_factor = float(row[0])
self.buffer_widget.setZoomFactor(zoom_factor)

def edit_focus_text(self):
''' Edit the focus text.'''
Expand Down Expand Up @@ -1439,3 +1453,41 @@ def get_entries(self, host, id):
SELECT id, host, password, form_data FROM autofill
WHERE host=? and id>? ORDER BY id
""", (host, id))

class ZoomSizeDb(object):
def __init__(self, dbpath):
self._conn = sqlite3.connect(dbpath)
self._conn.execute("""
CREATE TABLE IF NOT EXISTS ZoomSize
(Host TEXT PRIMARY KEY, ZoomScale REAL)
""")

def add_entry(self, host, zoom_scale):
result = self._conn.execute("""
SELECT Host, ZoomScale FROM ZoomSize
WHERE Host=?
""", (host,))
if len(list(result))>0:
self._conn.execute("""
UPDATE ZoomSize SET ZoomScale=?
WHERE Host=?
""", (zoom_scale, host))
else:
self._conn.execute("""
INSERT INTO ZoomSize (Host, ZoomScale)
VALUES (?, ?)
""", (host, zoom_scale))
self._conn.commit()

def get_entry(self, host):
return self._conn.execute("""
SELECT ZoomScale FROM ZoomSize
WHERE Host=?
""", (host,))

def delete_entry(self, host):
self._conn.execute("""
DELETE FROM ZoomSize
WHERE Host=?
""", (host,))
self._conn.commit()

0 comments on commit 86c6c55

Please sign in to comment.