diff --git a/addon/globalPlugins/brailleExtender/__init__.py b/addon/globalPlugins/brailleExtender/__init__.py index 2ecb0e8..22489e4 100644 --- a/addon/globalPlugins/brailleExtender/__init__.py +++ b/addon/globalPlugins/brailleExtender/__init__.py @@ -26,6 +26,7 @@ import tones import ui import virtualBuffers +import vision import wx from logHandler import log @@ -195,6 +196,13 @@ def event_valueChange(self, obj, nextHandler): log.error(e) nextHandler() + def event_nameChange(self, obj, nextHandler): + if config.conf["brailleExtender"]["advanced"]["refreshForegroundObjNameChange"]: + obj = api.getForegroundObject() + braille.handler.handleUpdate(obj) + vision.handler.handleUpdate(obj, property="name") + nextHandler() + def createMenu(self): self.submenu = wx.Menu() item = self.submenu.Append(wx.ID_ANY, _("Docu&mentation"), _("Opens the addon's documentation.")) diff --git a/addon/globalPlugins/brailleExtender/addoncfg.py b/addon/globalPlugins/brailleExtender/addoncfg.py index 915093e..eb019fd 100644 --- a/addon/globalPlugins/brailleExtender/addoncfg.py +++ b/addon/globalPlugins/brailleExtender/addoncfg.py @@ -268,6 +268,9 @@ def getConfspec(): "enabled": "boolean(default=False)", "inputMethod": f"option({DOT_BY_DOT}, {BOTH_SIDES}, {ONE_SIDE}, default={ONE_SIDE})", }, + "advanced": { + "refreshForegroundObjNameChange": "boolean(default=False)", + }, } def loadPreferedTables(): diff --git a/addon/globalPlugins/brailleExtender/settings.py b/addon/globalPlugins/brailleExtender/settings.py index e54340b..206efb2 100644 --- a/addon/globalPlugins/brailleExtender/settings.py +++ b/addon/globalPlugins/brailleExtender/settings.py @@ -576,6 +576,21 @@ def onBrowseBtn(self, event): def askCreateQuickLaunch(): gui.messageBox(_("Please create or select a quick launch first"), '%s – %s' % (addonName, _("Error")), wx.OK|wx.ICON_ERROR) + +class AdvancedDlg(gui.settingsDialogs.SettingsPanel): + + # Translators: title of a dialog. + title = _("Advanced") + + def makeSettings(self, settingsSizer): + sHelper = gui.guiHelper.BoxSizerHelper(self, sizer=settingsSizer) + self.refreshForegroundObjNameChange = sHelper.addItem(wx.CheckBox(self, label="event_nameChange: " + _("refresh braille region related to &foreground object"))) + self.refreshForegroundObjNameChange.SetValue(config.conf["brailleExtender"]["advanced"]["refreshForegroundObjNameChange"]) + + def onSave(self): + config.conf["brailleExtender"]["advanced"]["refreshForegroundObjNameChange"] = self.refreshForegroundObjNameChange.IsChecked() + + class AddonSettingsDialog(gui.settingsDialogs.MultiCategorySettingsDialog): categoryClasses=[ GeneralDlg, @@ -588,6 +603,7 @@ class AddonSettingsDialog(gui.settingsDialogs.MultiCategorySettingsDialog): AdvancedInputModeDlg, OneHandModeDlg, RoleLabelsDlg, + AdvancedDlg, ] def __init__(self, parent, initialCategory=None):