<type 'exceptions.AttributeError'>
Python 2.5.2: /usr/bin/python
Tue Aug 5 20:57:40 2008
A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
/usr/lib/python2.5/site-packages/elisa/plugins/pigment/pigment_frontend.py in handle_input(self=<elisa.plugins.pigment.pigment_frontend.PigmentFrontend object at 0x7f80be24dcd0>, input_manager=<InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>, input_event=<elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>)
430 def handle_input(self, input_manager, input_event):
431 # forward it to the controller
432 self.controller.handle_input(input_manager, input_event)
433
434 def _initialize_theme(self):
self = <elisa.plugins.pigment.pigment_frontend.PigmentFrontend object at 0x7f80be24dcd0>
self.controller = <PoblesecController object at 0x7f80be31cf00 (GObject at 0x398c160)>
self.controller.handle_input = <bound method PoblesecController.handle_input of...object at 0x7f80be31cf00 (GObject at 0x398c160)>>
input_manager = <InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>
input_event = <elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>
/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/main.py in handle_input(self=<PoblesecController object at 0x7f80be31cf00 (GObject at 0x398c160)>, manager=<InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>, input_event=<elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>)
269 def handle_input(self, manager, input_event):
270
271 if self.focused_controller.handle_input(manager, input_event):
272 return True
273
self = <PoblesecController object at 0x7f80be31cf00 (GObject at 0x398c160)>
self.focused_controller = <PlayerController object at 0x7f80b812c9b0 (GObject at 0x3b55120)>
self.focused_controller.handle_input = <bound method PlayerController.handle_input of <...object at 0x7f80b812c9b0 (GObject at 0x3b55120)>>
manager = <InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>
input_event = <elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>
/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/poblesec_browser_controller.py in handle_input(self=<PoblesecBrowserController object at 0x7f80be31cf50 (GObject at 0x3a2d700)>, manager=<InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>, input_event=<elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>)
603
604 if self.history.current.has_focus() == True and \
605 self.history.current.handle_input(manager, input_event) == True:
606 return True
607
self = <PoblesecBrowserController object at 0x7f80be31cf50 (GObject at 0x3a2d700)>
self.history = <History object at 0x7f80be3472d0 (elisa+plugins+poblesec+history+History at 0x3a2d800)>
self.history.current = <TracksListSwitcher object at 0x7f80b5309dc0 (GObject at 0x4c39a60)>
self.history.current.handle_input = <bound method TracksListSwitcher.handle_input of...object at 0x7f80b5309dc0 (GObject at 0x4c39a60)>>
manager = <InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>
input_event = <elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>
builtinTrue = True
/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/list_switcher.py in handle_input(self=<TracksListSwitcher object at 0x7f80b5309dc0 (GObject at 0x4c39a60)>, manager=<InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>, input_event=<elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>)
90
91 def handle_input(self, manager, input_event):
92 return self.list_controller.handle_input(manager, input_event)
93
94 def prepare(self):
self = <TracksListSwitcher object at 0x7f80b5309dc0 (GObject at 0x4c39a60)>
self.list_controller = <TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>
self.list_controller.handle_input = <bound method TracksDbVerticalWithPreview.handle...object at 0x7f80b5309b90 (GObject at 0x4a43b00)>>
manager = <InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>
input_event = <elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>
/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/fast_scroll_controller.py in handle_input(self=<TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>, manager=<InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>, input_event=<elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>)
172 self._shortcut_selected(shortcut)
173 return True
174
175 return super(FastScrollListController, self).handle_input(manager,
176 input_event)
input_event = <elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>
/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/vertical_list.py in handle_input(self=<TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>, manager=<InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>, input_event=<elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>)
58 elif input_event.value == EventValue.KEY_GO_DOWN:
59 self.nodes.selected_item_index += 1
60 return True
61 else:
62 return super(VerticalListController, self).handle_input(manager, input_event)
builtinsuper = <type 'super'>
global VerticalListController = <class 'elisa.plugins.poblesec.vertical_list.VerticalListController'>
self = <TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>
).handle_input = <bound method TracksDbVerticalWithPreview.handle...object at 0x7f80b5309b90 (GObject at 0x4a43b00)>>
manager = <InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>
input_event = <elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>
/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/list_controller.py in handle_input(self=<TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>, manager=<InputManager object at 0x7f80c2877460 (elisa+core+input_manager+InputManager at 0x2a638a0)>, input_event=<elisa.core.input_event.InputEvent instance at 0x7f80b53074d0>)
83 try:
84 item = self.nodes.model[self.nodes.selected_item_index]
85 self.node_clicked(self.nodes, item)
86 except IndexError:
87 self.debug("selected-item-index out of range: %s" % self.nodes.selected_item_index)
self = <TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>
self.node_clicked = <bound method TracksDbVerticalWithPreview.node_c...object at 0x7f80b5309b90 (GObject at 0x4a43b00)>>
self.nodes = <ListVertical object at 0x4970690 (elisa+plugins+pigment+widgets+list+List at 0x43cf880)>
item = <elisa.plugins.database.models.MusicTrack object at 0x4977b50>
/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/artists_browser.py in node_clicked(self=<TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>, widget=<ListVertical object at 0x4970690 (elisa+plugins+pigment+widgets+list+List at 0x43cf880)>, model=<elisa.plugins.database.models.MusicTrack object at 0x4977b50>)
343 if selected_item != self._previous_clicked:
344 self._previous_clicked = selected_item
345 self.play_audio(model)
346
347 def play_audio(self, model):
self = <TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>
self.play_audio = <bound method TracksDbVerticalWithPreview.play_a...object at 0x7f80b5309b90 (GObject at 0x4a43b00)>>
model = <elisa.plugins.database.models.MusicTrack object at 0x4977b50>
/usr/lib/python2.5/site-packages/elisa/plugins/database/controller.py in play_audio(self=<TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>, model=<elisa.plugins.database.models.MusicTrack object at 0x4977b50>)
280 main = controllers[0]
281 main.show_music_player()
282 self.stop_loading_animation()
283
284 # enqueue all the following items of the container
self = <TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>
self.stop_loading_animation = <bound method TracksDbVerticalWithPreview.stop_l...object at 0x7f80b5309b90 (GObject at 0x4a43b00)>>
/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/list_controller.py in stop_loading_animation(self=<TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>)
56 # copy&paste code.
57 if self._previous_clicked and hasattr(self._previous_clicked, '_toggle_loading_animation'):
58 self._previous_clicked._toggle_loading_animation(False)
59 self._previous_clicked = None
60
self = <TracksDbVerticalWithPreview object at 0x7f80b5309b90 (GObject at 0x4a43b00)>
self._previous_clicked = <DoubleLineMenuItemWidget object at 0x497b370 (e...gins+pigment+widgets+widget+Widget at 0x46e2d60)>
self._previous_clicked._toggle_loading_animation = <bound method DoubleLineMenuItemWidget._toggle_l...ins+pigment+widgets+widget+Widget at 0x46e2d60)>>
builtinFalse = False
/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/section.py in _toggle_loading_animation(self=<DoubleLineMenuItemWidget object at 0x497b370 (e...gins+pigment+widgets+widget+Widget at 0x46e2d60)>, enabled=False)
104 self._allow_animation = False
105 self._loading = False
106 self._interaction.clear()
107 self._interaction.visible = False
108 settings = {'end_callback' : lambda ctrl: self._toggle_loading_animation(True),
self = <DoubleLineMenuItemWidget object at 0x497b370 (e...gins+pigment+widgets+widget+Widget at 0x46e2d60)>
self._interaction undefined
<type 'exceptions.AttributeError'>: 'DoubleLineMenuItemWidget' object has no attribute '_interaction'
__class__ = <type 'exceptions.AttributeError'>
__delattr__ = <method-wrapper '__delattr__' of exceptions.AttributeError object at 0x495aab8>
__dict__ = {}
__doc__ = 'Attribute not found.'
__getattribute__ = <method-wrapper '__getattribute__' of exceptions.AttributeError object at 0x495aab8>
__getitem__ = <method-wrapper '__getitem__' of exceptions.AttributeError object at 0x495aab8>
__getslice__ = <method-wrapper '__getslice__' of exceptions.AttributeError object at 0x495aab8>
__hash__ = <method-wrapper '__hash__' of exceptions.AttributeError object at 0x495aab8>
__init__ = <method-wrapper '__init__' of exceptions.AttributeError object at 0x495aab8>
__new__ = <built-in method __new__ of type object at 0x7f80cf44d820>
__reduce__ = <built-in method __reduce__ of exceptions.AttributeError object at 0x495aab8>
__reduce_ex__ = <built-in method __reduce_ex__ of exceptions.AttributeError object at 0x495aab8>
__repr__ = <method-wrapper '__repr__' of exceptions.AttributeError object at 0x495aab8>
__setattr__ = <method-wrapper '__setattr__' of exceptions.AttributeError object at 0x495aab8>
__setstate__ = <built-in method __setstate__ of exceptions.AttributeError object at 0x495aab8>
__str__ = <method-wrapper '__str__' of exceptions.AttributeError object at 0x495aab8>
args = ("'DoubleLineMenuItemWidget' object has no attribute '_interaction'",)
message = "'DoubleLineMenuItemWidget' object has no attribute '_interaction'"
The above is a description of an error in a Python program. Here is
the original traceback:
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/elisa/plugins/pigment/pigment_frontend.py", line 432, in handle_input
self.controller.handle_input(input_manager, input_event)
File "/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/main.py", line 271, in handle_input
if self.focused_controller.handle_input(manager, input_event):
File "/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/poblesec_browser_controller.py", line 605, in handle_input
self.history.current.handle_input(manager, input_event) == True:
File "/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/list_switcher.py", line 92, in handle_input
return self.list_controller.handle_input(manager, input_event)
File "/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/fast_scroll_controller.py", line 176, in handle_input
input_event)
File "/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/vertical_list.py", line 62, in handle_input
return super(VerticalListController, self).handle_input(manager, input_event)
File "/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/list_controller.py", line 85, in handle_input
self.node_clicked(self.nodes, item)
File "/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/artists_browser.py", line 345, in node_clicked
self.play_audio(model)
File "/usr/lib/python2.5/site-packages/elisa/plugins/database/controller.py", line 282, in play_audio
self.stop_loading_animation()
File "/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/list_controller.py", line 58, in stop_loading_animation
self._previous_clicked._toggle_loading_animation(False)
File "/usr/lib/python2.5/site-packages/elisa/plugins/poblesec/section.py", line 106, in _toggle_loading_animation
self._interaction.clear()
AttributeError: 'DoubleLineMenuItemWidget' object has no attribute '_interaction'