Terry J. Reedy added the comment:

I looked at _set3 and it looks plausible and possibly complete other than 
testing.  I added something about testing customizations to #27099.  This 
applied cleanly to 3.6.  3.6 started, dialog opened, new key set selected, 
dialog closed, config-main.cfg looks good.  Open dialog, same as custom, close 
dialog, config-keys and config main changed as expected.  Open 3.5, open 
dialog, everything looks fine.

Now the problems.

1. To delete, one must select as current.  After deletion, config tries to 
reread the keyset just deleted.  This prints a warning to console for each item 
in the set, with message as to default used instead.   The same happens with 
deleting custom themes.  I may have noted this somewhere, but cannot find.

In any case, the solution for both problems is to either allow deletion of 
non-selected sets, and only such, or to switch to *something* before 
re-reading.  I open a new issue, #27245, for this.

2. More serious, the warnigs are followed by
Exception in Tkinter callback
Traceback (most recent call last):
  File "F:\Python\dev\35\lib\tkinter\__init__.py", line 1550, in __call__
    return self.func(*args)
  File "F:\Python\dev\35\lib\idlelib\configDialog.py", line 1182, in Ok
    self.Apply()
  File "F:\Python\dev\35\lib\idlelib\configDialog.py", line 1186, in Apply
    self.DeactivateCurrentConfig()
  File "F:\Python\dev\35\lib\idlelib\configDialog.py", line 1166, in 
DeactivateCurrentConfig
    instance.RemoveKeybindings()
  File "F:\Python\dev\35\lib\idlelib\EditorWindow.py", line 771, in 
RemoveKeybindings
    self.text.event_delete(event, *keylist)
  File "F:\Python\dev\35\lib\idlelib\MultiCall.py", line 391, in event_delete
    self.__binders[triplet[1]].unbind(triplet, func)
  File "F:\Python\dev\35\lib\idlelib\MultiCall.py", line 234, in unbind
    doit()
  File "F:\Python\dev\35\lib\idlelib\MultiCall.py", line 232, in <lambda>
    doit = lambda: self.bindedfuncs[triplet[2]][triplet[0]].remove(func)
ValueError: list.remove(x): x not in list

Hitting OK repeats warnings and traceback (the last line might have been a bit 
different the first time).  Only Cancel would close.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue27173>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to