Skip to content

Commit 0e12e8a

Browse files
JulienCochuytXLTechie
authored andcommitted
Add ability to reset all gestures to their factory default (#10293)
* Add ability to reset all gestures to their factory default * Review action #10293 (comment) Co-Authored-By: Leonard de Ruijter <leonardder@users.noreply.github.com> * Remove dev log leftover Re https://github.com/nvaccess/nvda/pull/10293/files#r329491860 * Handle failure to save gestures.ini * Review action #10293 (comment) Co-Authored-By: Luke Davis <8139760+XLTechie@users.noreply.github.com> * Review action #10293 (comment) Co-Authored-By: Luke Davis <8139760+XLTechie@users.noreply.github.com>
1 parent 6cdb7be commit 0e12e8a

1 file changed

Lines changed: 42 additions & 2 deletions

File tree

‎source/gui/settingsDialogs.py‎

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3248,7 +3248,7 @@ def makeSettings(self, settingsSizer):
32483248
filterSizer = wx.BoxSizer(wx.HORIZONTAL)
32493249
# Translators: The label of a text field to search for gestures in the Input Gestures dialog.
32503250
filterLabel = wx.StaticText(self, label=pgettext("inputGestures", "&Filter by:"))
3251-
filter = wx.TextCtrl(self)
3251+
filter = self.filter = wx.TextCtrl(self)
32523252
filterSizer.Add(filterLabel, flag=wx.ALIGN_CENTER_VERTICAL)
32533253
filterSizer.AddSpacer(guiHelper.SPACE_BETWEEN_ASSOCIATED_CONTROL_HORIZONTAL)
32543254
filterSizer.Add(filter, proportion=1)
@@ -3279,10 +3279,16 @@ def makeSettings(self, settingsSizer):
32793279
self.removeButton.Bind(wx.EVT_BUTTON, self.onRemove)
32803280
self.removeButton.Disable()
32813281

3282+
bHelper.sizer.AddStretchSpacer()
3283+
# Translators: The label of a button to reset all gestures in the Input Gestures dialog.
3284+
resetButton = wx.Button(self, label=_("Reset to factory &defaults"))
3285+
bHelper.sizer.Add(resetButton, flag=wx.ALIGN_RIGHT)
3286+
resetButton.Bind(wx.EVT_BUTTON, self.onReset)
3287+
32823288
self.pendingAdds = set()
32833289
self.pendingRemoves = set()
32843290

3285-
settingsSizer.Add(bHelper.sizer)
3291+
settingsSizer.Add(bHelper.sizer, flag=wx.EXPAND)
32863292

32873293
def postInit(self):
32883294
self.tree.SetFocus()
@@ -3408,6 +3414,40 @@ def onRemove(self, evt):
34083414
scriptInfo.gestures.remove(gesture)
34093415
self.tree.SetFocus()
34103416

3417+
def onReset(self, evt):
3418+
if gui.messageBox(
3419+
# Translators: A prompt for confirmation to reset all gestures in the Input Gestures dialog.
3420+
_("""Are you sure you want to reset all gestures to their factory defaults?
3421+
3422+
All of your user defined gestures, whether previously set or defined during this session, will be lost.
3423+
This cannot be undone."""),
3424+
style=wx.YES | wx.NO | wx.NO_DEFAULT
3425+
) != wx.YES:
3426+
return
3427+
self.pendingAdds.clear()
3428+
self.pendingRemoves.clear()
3429+
inputCore.manager.userGestureMap.clear()
3430+
try:
3431+
inputCore.manager.userGestureMap.save()
3432+
except: # noqa: E722
3433+
log.debugWarning("", exc_info=True)
3434+
# Translators: An error displayed when saving user defined input gestures fails.
3435+
gui.messageBox(
3436+
_("Error saving user defined gestures - probably read only file system."),
3437+
caption=_("Error"),
3438+
style=wx.OK | wx.ICON_ERROR
3439+
)
3440+
self.onCancel(None)
3441+
return
3442+
inputCore.manager.userGestureMap.save()
3443+
self.gestures = inputCore.manager.getAllGestureMappings(
3444+
obj=gui.mainFrame.prevFocus,
3445+
ancestors=gui.mainFrame.prevFocusAncestors
3446+
)
3447+
self.tree.DeleteChildren(self.treeRoot)
3448+
self.populateTree(filter=self.filter.GetValue())
3449+
self.tree.SetFocus()
3450+
34113451
def onOk(self, evt):
34123452
for gesture, module, className, scriptName in self.pendingRemoves:
34133453
try:

0 commit comments

Comments
 (0)