132
132
def node_clicked(self, widget, item):
133
widget_index = self.nodes._widget_index_from_item_index(widget.model.index(item))
134
selected_item = self.nodes._widgets[widget_index]
136
if selected_item != self._previous_clicked:
137
self.cancel_deferreds(id(self))
138
selected_item.activate(previous=self._previous_clicked)
140
self._previous_clicked = selected_item
142
if isinstance(item, Action):
143
def silence_canceller(failure):
144
failure.trap(CancelledError)
147
dfr.addErrback(silence_canceller)
148
self.register_deferred(id(self), dfr)
150
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
151
path = self.artist_controller_path
152
deferred = browser.history.append_controller(path, item.name, artist=item)
133
self.cancel_deferreds(id(self))
135
if isinstance(item, Action):
136
def silence_canceller(failure):
137
failure.trap(CancelledError)
140
dfr.addErrback(silence_canceller)
141
self.register_deferred(id(self), dfr)
143
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
144
path = self.artist_controller_path
145
deferred = browser.history.append_controller(path, item.name, artist=item)
154
147
def make_actions(self):
311
304
def node_clicked(self, widget, item):
312
widget_index = self.nodes._widget_index_from_item_index(widget.model.index(item))
313
selected_item = self.nodes._widgets[widget_index]
315
if selected_item != self._previous_clicked:
316
selected_item.activate(previous=self._previous_clicked)
318
self._previous_clicked = selected_item
320
if isinstance(item, Action):
322
elif hasattr(item, 'all_tracks'):
323
# Dummy "All Tracks" album
324
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
325
dfr = browser.history.append_controller('/poblesec/database/music/tracks',
328
elif hasattr(item, 'action') and issubclass(item.action, Action):
329
action = item.action(self)
330
dfr = action.run(item)
332
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
333
path = self.album_controller_path
334
dfr = browser.history.append_controller(path,
305
if isinstance(item, Action):
307
elif hasattr(item, 'all_tracks'):
308
# Dummy "All Tracks" album
309
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
310
dfr = browser.history.append_controller('/poblesec/database/music/tracks',
313
elif hasattr(item, 'action') and issubclass(item.action, Action):
314
action = item.action(self)
315
dfr = action.run(item)
317
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
318
path = self.album_controller_path
319
dfr = browser.history.append_controller(path,
340
325
class AlbumsDbController(GenericAlbumsDbController):
562
547
def node_clicked(self, widget, item):
563
widget_index = self.nodes._widget_index_from_item_index(widget.model.index(item))
564
selected_item = self.nodes._widgets[widget_index]
566
if selected_item != self._previous_clicked:
567
selected_item.activate(previous=self._previous_clicked)
568
self._previous_clicked = selected_item
569
if isinstance(item, Action):
571
elif hasattr(item, 'action') and issubclass(item.action, Action):
572
action = item.action(self)
573
dfr = action.run(item)
575
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
576
path = self.track_controller_path
578
tracks = [t for t in self.model if not isinstance(t, Action)]
579
args = {'track': item,
581
dfr = browser.history.append_controller(path, title, **args)
548
if isinstance(item, Action):
550
elif hasattr(item, 'action') and issubclass(item.action, Action):
551
action = item.action(self)
552
dfr = action.run(item)
554
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
555
path = self.track_controller_path
557
tracks = [t for t in self.model if not isinstance(t, Action)]
558
args = {'track': item,
560
dfr = browser.history.append_controller(path, title, **args)
584
563
class TracksDbController(GenericTracksDbController):
812
791
def node_clicked(self, widget, item):
813
widget_index = self.nodes._widget_index_from_item_index(widget.model.index(item))
814
selected_item = self.nodes._widgets[widget_index]
816
if selected_item != self._previous_clicked:
817
selected_item.activate(previous=self._previous_clicked)
818
self._previous_clicked = selected_item
819
if isinstance(item, Action):
822
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
823
path = item.controller_path
824
args = item.controller_args
825
dfr = browser.history.append_controller(path, item.label, **args)
792
if isinstance(item, Action):
795
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
796
path = item.controller_path
797
args = item.controller_args
798
dfr = browser.history.append_controller(path, item.label, **args)
828
801
class GenresDbPreviewListController(GenresDbController, MenuItemPreviewListController):
935
908
def node_clicked(self, widget, item):
936
widget_index = self.nodes._widget_index_from_item_index(widget.model.index(item))
937
selected_item = self.nodes._widgets[widget_index]
939
if selected_item != self._previous_clicked:
940
selected_item.activate(previous=self._previous_clicked)
941
self._previous_clicked = selected_item
942
if isinstance(item, Action):
945
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
946
path = '/poblesec/database/music/time'
947
args = item.controller_args
948
dfr = browser.history.append_controller(path, item.label, **args)
909
if isinstance(item, Action):
912
browser = self.frontend.retrieve_controllers('/poblesec/browser')[0]
913
path = '/poblesec/database/music/time'
914
args = item.controller_args
915
dfr = browser.history.append_controller(path, item.label, **args)
951
918
class DecadesDbPreviewListController(DecadesDbController, MenuItemPreviewListController):