diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-01-27 16:22:42 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-01-27 17:10:32 +0100 |
commit | 5ee28105ad972dd635fcdc0ea56e5f82de478fb1 (patch) | |
tree | 9f9c7fa42ecde3563ef78d1fbd9df308d8248bc2 /qutebrowser | |
parent | 7ee0236184e063825d48113a851181b4c8356f9f (diff) | |
download | qutebrowser-5ee28105ad972dd635fcdc0ea56e5f82de478fb1.tar.gz qutebrowser-5ee28105ad972dd635fcdc0ea56e5f82de478fb1.zip |
Show changelog after upgrades
Diffstat (limited to 'qutebrowser')
-rw-r--r-- | qutebrowser/app.py | 22 | ||||
-rw-r--r-- | qutebrowser/config/configdata.yml | 5 | ||||
-rw-r--r-- | qutebrowser/config/configfiles.py | 5 |
3 files changed, 32 insertions, 0 deletions
diff --git a/qutebrowser/app.py b/qutebrowser/app.py index 51a5db8b7..249f8da1e 100644 --- a/qutebrowser/app.py +++ b/qutebrowser/app.py @@ -383,6 +383,28 @@ def _open_special_pages(args): tabbed_browser.tabopen(QUrl(url), background=False) general_sect[state] = '1' + # Show changelog on new releases + if not configfiles.state.qutebrowser_version_changed: + return + if not config.val.changelog_after_upgrade: + log.init.debug("Showing changelog is disabled") + return + + try: + changelog = utils.read_file('html/doc/changelog.html') + except OSError as e: + log.init.warning(f"Not showing changelog due to {e}") + return + + version = qutebrowser.__version__ + if f'id="v{version}"' not in changelog: + log.init.warning("Not showing changelog (anchor not found)") + return + + message.info(f"Showing changelog after upgrade to qutebrowser v{version}.") + changelog_url = f'qute://help/changelog.html#v{version}' + tabbed_browser.tabopen(QUrl(changelog_url), background=False) + def on_focus_changed(_old, new): """Register currently focused main window in the object registry.""" diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index e39193165..96ea5ee21 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -35,6 +35,11 @@ history_gap_interval: Items with less time between them are grouped when being displayed in `:history`. Use -1 to disable separation. +changelog_after_upgrade: + type: Bool + default: true + desc: Whether to show a changelog after qutebrowser was upgraded. + ignore_case: renamed: search.ignore_case diff --git a/qutebrowser/config/configfiles.py b/qutebrowser/config/configfiles.py index dcf1c9e5a..542e66eea 100644 --- a/qutebrowser/config/configfiles.py +++ b/qutebrowser/config/configfiles.py @@ -60,14 +60,19 @@ class StateConfig(configparser.ConfigParser): self._filename = os.path.join(standarddir.data(), 'state') self.read(self._filename, encoding='utf-8') qt_version = qVersion() + # We handle this here, so we can avoid setting qt_version_changed if # the config is brand new, but can still set it when qt_version wasn't # there before... if 'general' in self: old_qt_version = self['general'].get('qt_version', None) + old_qutebrowser_version = self['general'].get('version', None) self.qt_version_changed = old_qt_version != qt_version + self.qutebrowser_version_changed = ( + old_qutebrowser_version != qutebrowser.__version__) else: self.qt_version_changed = False + self.qutebrowser_version_changed = False for sect in ['general', 'geometry', 'inspector']: try: |