{"action":"created","issue":{"url":"https://api.github.com/repos/mypaint/mypaint/issues/354","labels_url":"https://api.github.com/repos/mypaint/mypaint/issues/354/labels{/name}","comments_url":"https://api.github.com/repos/mypaint/mypaint/issues/354/comments","events_url":"https://api.github.com/repos/mypaint/mypaint/issues/354/events","html_url":"https://github.com/mypaint/mypaint/issues/354","id":91612661,"number":354,"title":"Sometimes, After Selecting a Brush from a Brushes Set,  MyPaint Crashes.","user":{"login":"Ico-dY","id":10749813,"avatar_url":"https://avatars.githubusercontent.com/u/10749813?v=3","gravatar_id":"","url":"https://api.github.com/users/Ico-dY","html_url":"https://github.com/Ico-dY","followers_url":"https://api.github.com/users/Ico-dY/followers","following_url":"https://api.github.com/users/Ico-dY/following{/other_user}","gists_url":"https://api.github.com/users/Ico-dY/gists{/gist_id}","starred_url":"https://api.github.com/users/Ico-dY/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ico-dY/subscriptions","organizations_url":"https://api.github.com/users/Ico-dY/orgs","repos_url":"https://api.github.com/users/Ico-dY/repos","events_url":"https://api.github.com/users/Ico-dY/events{/privacy}","received_events_url":"https://api.github.com/users/Ico-dY/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mypaint/mypaint/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-28T16:11:48Z","updated_at":"2015-06-28T16:17:22Z","closed_at":null,"body":"Sometimes, after selecting a brush from a brushes set, MyPaint crashes.\r\n\r\n```python\r\nMypaint version: 1.2.0-alpha.20150627+git.bfc9831\r\nSystem information: Linux-3.13.0-55-generic-x86_64-with-Ubuntu-14.04-trusty\r\nTraceback (most recent call last):\r\n  File \"/usr/local/share/mypaint/gui/brushselectionwindow.py\", line 130, button_press_cb(self=<BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>, widget=<BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>, event=<void>)\r\n            self.app.device_monitor.device_used(device)\r\n            return pixbuflist.PixbufList.button_press_cb(self, widget, event)\r\n  variables: {'widget': ('local', <BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>), 'self': ('local', <BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>), 'pixbuflist.PixbufList.button_press_cb': ('global', <unbound method PixbufList.button_press_cb>), 'event': ('local', <void at 0x46ed1d0>)}\r\n  File \"/usr/local/share/mypaint/gui/pixbuflist.py\", line 309, button_press_cb(self=<BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>, widget=<BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>, event=<void>)\r\n                self.set_selected(item)\r\n                self.item_selected(item)\r\n                if self.selected is not None:\r\n  variables: {'item': ('local', <ManagedBrush u'shalpin/brushy_variance' p=None>), 'self.item_selected': ('local', <MethodWithObservers gui.brushselectionwindow.BrushList.item_selected>)}\r\n  File \"/usr/local/share/mypaint/lib/observable.py\", line 284, __call__(self=<MethodWithObservers gui.brushselectionwindow.BrushList.item_selected>, *args=(<ManagedBrush u'shalpin/brushy_variance' p=None>,), **kwargs={})\r\n                try:\r\n                    observer(observed, *args, **kwargs)\r\n                except BoundObserverMethod._ReferenceError:\r\n  variables: {'observed': ('local', <BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>), 'args': ('local', (<ManagedBrush u'shalpin/brushy_variance' p=None>,)), 'observer': ('local', <BoundObserverMethod gui.brushselectionwindow.BrushList._item_selected_cb>), 'kwargs': ('local', {})}\r\n  File \"/usr/local/share/mypaint/lib/observable.py\", line 467, __call__(self=<BoundObserverMethod gui.brushselectionwindow.BrushList._item_selected_cb>, observed=<BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>, *args=(<ManagedBrush u'shalpin/brushy_variance' p=None>,), **kwargs={})\r\n                raise self._ReferenceError\r\n            self._observer_func(observer, observed, *args, **kwargs)\r\n            del observer\r\n  variables: {'observed': ('local', <BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>), 'args': ('local', (<ManagedBrush u'shalpin/brushy_variance' p=None>,)), 'self._observer_func': ('local', <function _item_selected_cb at 0x7fba5503c8c0>), 'observer': ('local', <BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>), 'kwargs': ('local', {})}\r\n  File \"/usr/local/share/mypaint/gui/brushselectionwindow.py\", line 169, _item_selected_cb(self=<BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>, self_=<BrushList object at 0x7fba35c76a50 (gui+brushselectionwindow+BrushList at 0x2d45660)>, brush=<ManagedBrush u'shalpin/brushy_variance' p=None>)\r\n                    self.bm.brushes_changed(brushes)\r\n            self.bm.select_brush(brush)\r\n  variables: {'self.bm.select_brush': ('local', <bound method BrushManager.select_brush of <gui.brushmanager.BrushManager object at 0x7fba55022b90>>), 'brush': ('local', <ManagedBrush u'shalpin/brushy_variance' p=None>)}\r\n  File \"/usr/local/share/mypaint/gui/brushmanager.py\", line 701, select_brush(self=<gui.brushmanager.BrushManager object>, brush=<ManagedBrush u'shalpin/brushy_variance' p=None>)\r\n            # brush, amongst other things\r\n            self.brush_selected(brush, brushinfo)\r\n  variables: {'self.brush_selected': ('local', <MethodWithObservers gui.brushmanager.BrushManager.brush_selected>), 'brush': ('local', <ManagedBrush u'shalpin/brushy_variance' p=None>), 'brushinfo': ('local', <lib.brush.BrushInfo object at 0x7fba3c4211d0>)}\r\n  File \"/usr/local/share/mypaint/lib/observable.py\", line 284, __call__(self=<MethodWithObservers gui.brushmanager.BrushManager.brush_selected>, *args=(<ManagedBrush u'shalpin/brushy_variance' p=None>, <lib.brush.BrushInfo object>), **kwargs={})\r\n                try:\r\n                    observer(observed, *args, **kwargs)\r\n                except BoundObserverMethod._ReferenceError:\r\n  variables: {'observed': ('local', <gui.brushmanager.BrushManager object at 0x7fba55022b90>), 'args': ('local', (<ManagedBrush u'shalpin/brushy_variance' p=None>, <lib.brush.BrushInfo object at 0x7fba3c4211d0>)), 'observer': ('local', <BoundObserverMethod gui.brushmodifier.BrushModifier.brush_selected_cb>), 'kwargs': ('local', {})}\r\n  File \"/usr/local/share/mypaint/lib/observable.py\", line 467, __call__(self=<BoundObserverMethod gui.brushmodifier.BrushModifier.brush_selected_cb>, observed=<gui.brushmanager.BrushManager object>, *args=(<ManagedBrush u'shalpin/brushy_variance' p=None>, <lib.brush.BrushInfo object>), **kwargs={})\r\n                raise self._ReferenceError\r\n            self._observer_func(observer, observed, *args, **kwargs)\r\n            del observer\r\n  variables: {'observed': ('local', <gui.brushmanager.BrushManager object at 0x7fba55022b90>), 'args': ('local', (<ManagedBrush u'shalpin/brushy_variance' p=None>, <lib.brush.BrushInfo object at 0x7fba3c4211d0>)), 'self._observer_func': ('local', <function brush_selected_cb at 0x7fba55290668>), 'observer': ('local', <gui.brushmodifier.BrushModifier object at 0x7fba3cf4f690>), 'kwargs': ('local', {})}\r\n  File \"/usr/local/share/mypaint/gui/brushmodifier.py\", line 215, brush_selected_cb(self=<gui.brushmodifier.BrushModifier object>, bm=<gui.brushmanager.BrushManager object>, managed_brush=<ManagedBrush u'shalpin/brushy_variance' p=None>, brushinfo=<lib.brush.BrushInfo object>)\r\n            b.set_color_hsv(color)\r\n            b.set_string_property(\"parent_brush_name\", managed_brush.name)\r\n  variables: {'color': ('local', None), 'b.set_color_hsv': ('local', <bound method BrushInfo.set_color_hsv of <lib.brush.BrushInfo object at 0x7fba552b0890>>)}\r\n  File \"/usr/local/share/mypaint/lib/brush.py\", line 449, set_color_hsv(self=<lib.brush.BrushInfo object>, hsv=None)\r\n            try:\r\n                h, s, v = hsv\r\n                self.set_base_value('color_h', h)\r\n  variables: {'h': (None, []), 's': ('global', <libmypaint.brushsettings.BrushSetting instance at 0x7fba55d56098>), 'hsv': ('local', None), 'v': (None, [])}\r\nTypeError: 'NoneType' object is not iterable\r\n```\r\n\r\n![mypaint_bug](https://cloud.githubusercontent.com/assets/10749813/8397094/1fe8acae-1dc0-11e5-992d-88df59af48f7.png)"},"comment":{"url":"https://api.github.com/repos/mypaint/mypaint/issues/comments/116295315","html_url":"https://github.com/mypaint/mypaint/issues/354#issuecomment-116295315","issue_url":"https://api.github.com/repos/mypaint/mypaint/issues/354","id":116295315,"user":{"login":"achadwick","id":61299,"avatar_url":"https://avatars.githubusercontent.com/u/61299?v=3","gravatar_id":"","url":"https://api.github.com/users/achadwick","html_url":"https://github.com/achadwick","followers_url":"https://api.github.com/users/achadwick/followers","following_url":"https://api.github.com/users/achadwick/following{/other_user}","gists_url":"https://api.github.com/users/achadwick/gists{/gist_id}","starred_url":"https://api.github.com/users/achadwick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/achadwick/subscriptions","organizations_url":"https://api.github.com/users/achadwick/orgs","repos_url":"https://api.github.com/users/achadwick/repos","events_url":"https://api.github.com/users/achadwick/events{/privacy}","received_events_url":"https://api.github.com/users/achadwick/received_events","type":"User","site_admin":false},"created_at":"2015-06-28T16:17:22Z","updated_at":"2015-06-28T16:17:22Z","body":"Does this happen *immediately when* you add the brushpack, or only when you try to\r\n* draw, or\r\n* choose a brush from the newly loaded group?\r\n\r\nCan you share a brushpack .zip which reliably reproduces this error please? I guess it's the \"shalpin\" set, which I've never heard of :("}}