def roleClicked(self): mli = self.rolesListControl.getSelectedItem() if not mli: return sectionRoles = busy.widthDialog(mli.dataSource.sectionRoles, '') if not sectionRoles: util.DEBUG_LOG('No sections found for actor') return if len(sectionRoles) > 1: x, y = self.getRoleItemDDPosition() options = [{ 'role': r, 'display': r.reasonTitle } for r in sectionRoles] choice = dropdown.showDropdown(options, (x, y), pos_is_bottom=True, close_direction='bottom') if not choice: return role = choice['role'] else: role = sectionRoles[0] self.processCommand(opener.open(role))
def open(obj, auto_play=False): if isinstance(obj, playqueue.PlayQueue): if busy.widthDialog(obj.waitForInitialization, None): if obj.type == 'audio': import musicplayer return handleOpen(musicplayer.MusicPlayerWindow, track=obj.current(), playlist=obj) elif obj.type == 'photo': import photos return handleOpen(photos.PhotoWindow, play_queue=obj) else: import videoplayer videoplayer.play(play_queue=obj) return '' elif isinstance(obj, basestring): key = obj if not obj.startswith('/'): key = '/library/metadata/{0}'.format(obj) return open(plexapp.SERVERMANAGER.selectedServer.getObject(key)) elif obj.TYPE == 'episode': if not auto_play: return episodeClicked(obj) return playableClicked(obj, auto_play=auto_play) elif obj.TYPE == 'movie': return playableClicked(obj, auto_play=auto_play) elif obj.TYPE in ('show'): return showClicked(obj) elif obj.TYPE in ('artist'): return artistClicked(obj) elif obj.TYPE in ('season'): return seasonClicked(obj) elif obj.TYPE in ('album'): return albumClicked(obj) elif obj.TYPE in ('photo', ): return photoClicked(obj) elif obj.TYPE in ('photodirectory'): return photoDirectoryClicked(obj) elif obj.TYPE in ('track'): return trackClicked(obj) elif obj.TYPE in ('playlist'): return playlistClicked(obj) elif obj.TYPE in ('clip'): import videoplayer return videoplayer.play(video=obj) elif obj.TYPE in ('Genre'): return genreClicked(obj) elif obj.TYPE in ('Director'): return directorClicked(obj) elif obj.TYPE in ('Role'): return actorClicked(obj)
def getPlayQueue(self, shuffle=False): if self.playQueue: self.playQueue.on('items.changed', self.fillPqueueList) self.playQueue.on('change', self.updateProperties) self.updateProperties() self.fillPqueueList() else: self.playQueue = playqueue.createPlayQueueForItem( self.photo, options={'shuffle': shuffle}) self.playQueue.on('items.changed', self.fillPqueueList) self.playQueue.on('change', self.updateProperties) util.DEBUG_LOG('waiting for playQueue to initialize') if busy.widthDialog(self.playQueue.waitForInitialization, None): util.DEBUG_LOG('playQueue initialized: {0}'.format( self.playQueue)) else: util.DEBUG_LOG('playQueue timed out wating for initialization') self.showPhoto()