From c4bb13431331b7c5aad5696f54998210c12a1f12 Mon Sep 17 00:00:00 2001 From: "mhm@mhm.com" Date: Sat, 18 Nov 2017 11:04:04 +0100 Subject: [PATCH] lazy sessions, improved version --- qutebrowser/misc/sessions.py | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/qutebrowser/misc/sessions.py b/qutebrowser/misc/sessions.py index 4784f796a..da49205df 100644 --- a/qutebrowser/misc/sessions.py +++ b/qutebrowser/misc/sessions.py @@ -323,6 +323,18 @@ class SessionManager(QObject): def _load_tab(self, new_tab, data): """Load yaml data into a newly opened tab.""" entries = [] + + if config.val.session_lazy_restore and data['history']: + last = data['history'][-1] + + if not last['url'].startswith('qute://'): + data['history'].append({ + 'title': last['title'], + 'url': 'qute://back#' + last['title'], + 'active': last.get('active', False) + }) + last['active'] = False + for histentry in data['history']: user_data = {} @@ -347,9 +359,7 @@ class SessionManager(QObject): if 'pinned' in histentry: new_tab.data.pinned = histentry['pinned'] - active = (histentry.get('active', False) and - (not config.val.session_lazy_restore or - histentry['url'].startswith('qute://'))) + active = histentry.get('active', False) url = QUrl.fromEncoded(histentry['url'].encode('ascii')) if 'original-url' in histentry: orig_url = QUrl.fromEncoded( @@ -363,20 +373,6 @@ class SessionManager(QObject): if active: new_tab.title_changed.emit(histentry['title']) - if config.val.session_lazy_restore and data['history']: - last = data['history'][-1] - title = last['title'] - url = 'qute://back#' + title - active = last.get('active', False) - - if not last['url'].startswith('qute://'): - entries.append(TabHistoryItem( - url=QUrl.fromEncoded(url.encode('ascii')), - title=title, active=active, user_data={})) - - if active: - new_tab.title_changed.emit(title) - try: new_tab.history.load_items(entries) except ValueError as e: