Skip to content

Commit

Permalink
Prevent ExtensionServer.get_controller keyerror, and try to put in a …
Browse files Browse the repository at this point in the history
…more helpful error (real error still not fixed)
  • Loading branch information
friday committed Nov 9, 2021
1 parent 93c68de commit 00c9ae7
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 6 deletions.
2 changes: 1 addition & 1 deletion ulauncher/api/server/ExtensionServer.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def get_controller(self, extension_id):
:param str extension_id:
:rtype: ~ulauncher.api.server.ExtensionController.ExtensionController
"""
return self.controllers[extension_id]
return self.controllers.get(extension_id)

def get_controllers(self):
"""
Expand Down
9 changes: 4 additions & 5 deletions ulauncher/ui/windows/PreferencesUlauncherDialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,9 @@ def prefs_extension_update_prefs(self, url_params):
logger.info('Update extension preferences: %s', query)
prefix = 'pref.'
controller = ExtensionServer.get_instance().get_controller(ext_id)
if not controller:
logger.error("Cannot update preferences. The extension controller is not registered. Try relaunching or restarting Ulauncher")
return
preferences = [(key[len(prefix):], value) for key, value in query.items() if key.startswith(prefix)]
for pref_id, value in preferences:
old_value = controller.preferences.get(pref_id)['value']
Expand Down Expand Up @@ -516,11 +519,7 @@ def _get_all_extensions(self) -> List[ExtensionInfo]:

def _get_extension_info(self, ext_id: str, prefs: ExtensionPreferences, error: ExtError = None) -> ExtensionInfo:
ext_db = ExtensionDb.get_instance()
is_connected = True
try:
ExtensionServer.get_instance().get_controller(ext_id)
except KeyError:
is_connected = False
is_connected = bool(ExtensionServer.get_instance().get_controller(ext_id))
ext_runner = ExtensionRunner.get_instance()
is_running = is_connected or ext_runner.is_running(ext_id)
ext_db_record = ext_db.find(ext_id, {})
Expand Down

0 comments on commit 00c9ae7

Please sign in to comment.