From cf229cb9c8e91cc40df4a216e557dfa3bda760f7 Mon Sep 17 00:00:00 2001 From: Michal Siedlaczek Date: Sun, 20 Aug 2017 10:39:09 -0700 Subject: [PATCH] Dictionary path bug fix & added warning whenever a selected dictionary isn't installed --- qutebrowser/browser/webengine/spell.py | 2 +- qutebrowser/browser/webengine/webenginesettings.py | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/qutebrowser/browser/webengine/spell.py b/qutebrowser/browser/webengine/spell.py index 66c87f2a5..99595160c 100644 --- a/qutebrowser/browser/webengine/spell.py +++ b/qutebrowser/browser/webengine/spell.py @@ -79,7 +79,7 @@ class Language: def get_dictionary_dir(): """Return the path to the QtWebEngine's dictionaries directory.""" return os.path.join(QLibraryInfo.location(QLibraryInfo.DataPath), - '/qtwebengine_dictionaries') + 'qtwebengine_dictionaries') def get_language_list_file(): diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index 1ee017660..9124fec06 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -140,9 +140,16 @@ class DictionaryLanguageSetter(DefaultProfileSetter): if settings is not None: raise ValueError("'settings' may not be set with " "DictionaryLanguageSetter!") - files = [lang.file[:-5] - for lang in get_installed_languages() if lang.code in value] - super()._set(files, settings) + installed_langs = dict([(lang.code, lang.file) + for lang in get_installed_languages()]) + lang_files = [] + for lang_code in value: + if lang_code in installed_langs: + lang_files.append(installed_langs[lang_code][:-5]) + else: + message.warning('Language {} is not installed.' + .format(lang_code)) + super()._set(lang_files, settings) def _init_stylesheet(profile):