UNSOLVED Prepolator: various tracebacks
-
1. Closing Font Preview triggers traceback
Steps to reproduce:
• Open two UFO files in RF3.4
• Start Prepolator
• Prepolator window: click "Add Open" icon
• Prepolator window: click "Font Preview" icon
• Font Preview popup: click OK buttonTraceback (most recent call last): File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defconAppKit/controls/glyphCollectionView.py", line 12, in viewDidMoveToWindow wrapper.setPosSize(wrapper.getPosSize()) AttributeError: 'NoneType' object has no attribute 'setPosSize'
-
Okay, that's all for now. Apologies for the long posts! ;)
-
3. Changing start point when multiple items are selected triggers traceback
Steps to reproduce:
• Open two UFO files in RF3.4
• Start Prepolator
• Prepolator window: click "Add Open" icon
• Prepolator window: select a glyph
• Prepolator window: select an outline
• Hit cmd-A ("Select All")
• Prepolator window: click "Next" or "Previous" iconTraceback (most recent call last): File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/vanilla/vanillaBase.py", line 503, in action_ self.callback(sender) File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 824, in startPointNext File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/contour.py", line 223, in setStartPoint self.dirty = True File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 388, in _set_dirty self.postNotification(self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1299, in _contourChanged self.postNotification(notification="Glyph.ContoursChanged") File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/component.py", line 382, in baseGlyphDataChangedNotificationCallback self.postNotification("Component.BaseGlyphDataChanged") File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1308, in _componentBaseGlyphDataChanged self.postNotification(notification=self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/layer.py", line 689, in _glyphDirtyStateChange self.dirty = True File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 388, in _set_dirty self.postNotification(self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/layerSet.py", line 353, in _layerDirtyStateChange self.dirty = True File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 388, in _set_dirty self.postNotification(self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/font.py", line 1139, in _objectDirtyStateChange self.dirty = True File "lib/fontObjects/doodleFont.pyc", line 70, in _set_dirty File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 388, in _set_dirty self.postNotification(self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 1010, in _fontChanged AttributeError: 'NoneType' object has no attribute 'setDocumentEdited_' Traceback (most recent call last): File "lib/doodleDelegate.pyc", line 96, in sendEvent_ File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/vanilla/vanillaBase.py", line 503, in action_ self.callback(sender) File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 824, in startPointNext File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/contour.py", line 223, in setStartPoint self.dirty = True File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 388, in _set_dirty self.postNotification(self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1299, in _contourChanged self.postNotification(notification="Glyph.ContoursChanged") File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/component.py", line 382, in baseGlyphDataChangedNotificationCallback self.postNotification("Component.BaseGlyphDataChanged") File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1308, in _componentBaseGlyphDataChanged self.postNotification(notification=self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/layer.py", line 689, in _glyphDirtyStateChange self.dirty = True File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 388, in _set_dirty self.postNotification(self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/layerSet.py", line 353, in _layerDirtyStateChange self.dirty = True File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 388, in _set_dirty self.postNotification(self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/font.py", line 1139, in _objectDirtyStateChange self.dirty = True File "lib/fontObjects/doodleFont.pyc", line 70, in _set_dirty File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 388, in _set_dirty self.postNotification(self.changeNotificationName) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 219, in postNotification dispatcher.postNotification(notification=notification, observable=self, data=data) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 201, in postNotification callback(notificationObj) File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 1010, in _fontChanged AttributeError: 'NoneType' object has no attribute 'setDocumentEdited_'
-
2. Unable to add open UFO file again after removing it
Steps to reproduce:
• Open two UFO files in RF3.4
• Start Prepolator
• Prepolator window: click "Add Open" icon
• Prepolator window: select one of the masters
• Prepolator window: click "Remove" icon
• Prepolator window: click "Add Open" iconTraceback (most recent call last): File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/vanilla/vanillaBase.py", line 503, in action_ self.callback(sender) File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 688, in addOpenFonts File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 490, in getFontItem File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 981, in subscribeFont File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 101, in addObserver notification=notification, observable=self) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 82, in addObserver notification=key[0], observable=key[1](), observer=observer(), method1=self._registry[key][observer], method2=methodName AssertionError: An observer is only allowed to have one callback for a given notification + observable combination. notification=Font.Changed, observable=<lib.fontObjects.doodleFont.DoodleFont object at 0x115f46190> , observer=<prepolLib.interface.windows.main.PrepolController object at 0x11e96eb50>, existing method=_fontChanged, adding method=_fontChanged Traceback (most recent call last): File "lib/doodleDelegate.pyc", line 96, in sendEvent_ File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/vanilla/vanillaBase.py", line 503, in action_ self.callback(sender) File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 688, in addOpenFonts File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 490, in getFontItem File "/var/folders/qy/sv345q756dg_jsx6jg2tf6240000gn/T/tmp2qze3rbh/lib.3.7/prepolLib/interface/windows/main.py", line 981, in subscribeFont File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 101, in addObserver notification=notification, observable=self) File "/Applications/RoboFont-3.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 82, in addObserver notification=key[0], observable=key[1](), observer=observer(), method1=self._registry[key][observer], method2=methodName AssertionError: An observer is only allowed to have one callback for a given notification + observable combination. notification=Font.Changed, observable=<lib.fontObjects.doodleFont.DoodleFont object at 0x115f46190> , observer=<prepolLib.interface.windows.main.PrepolController object at 0x11e96eb50>, existing method=_fontChanged, adding method=_fontChanged