(self, position)
| 772 | menu.exec_(self.playlist.viewport().mapToGlobal(position)) |
| 773 | |
| 774 | def openRoomMenu(self, position): |
| 775 | # TODO: Deselect items after right click |
| 776 | indexes = self.listTreeView.selectedIndexes() |
| 777 | if len(indexes) > 0: |
| 778 | item = self.listTreeView.selectedIndexes()[0] |
| 779 | else: |
| 780 | return |
| 781 | |
| 782 | menu = QtWidgets.QMenu() |
| 783 | username = item.sibling(item.row(), 0).data() |
| 784 | |
| 785 | if len(username) < 15: |
| 786 | shortUsername = username |
| 787 | else: |
| 788 | shortUsername = "{}...".format(username[0:12]) |
| 789 | |
| 790 | if username == self._syncplayClient.userlist.currentUser.username: |
| 791 | addUsersFileToPlaylistLabelText = getMessage("addyourfiletoplaylist-menu-label") |
| 792 | addUsersStreamToPlaylistLabelText = getMessage("addyourstreamstoplaylist-menu-label") |
| 793 | else: |
| 794 | addUsersFileToPlaylistLabelText = getMessage("addotherusersfiletoplaylist-menu-label").format(shortUsername) |
| 795 | addUsersStreamToPlaylistLabelText = getMessage("addotherusersstreamstoplaylist-menu-label").format(shortUsername) |
| 796 | |
| 797 | filename = item.sibling(item.row(), 3).data() |
| 798 | while item.parent().row() != -1: |
| 799 | item = item.parent() |
| 800 | roomToJoin = item.sibling(item.row(), 0).data() |
| 801 | if roomToJoin != self._syncplayClient.getRoom(): |
| 802 | menu.addAction(getMessage("joinroom-menu-label").format(roomToJoin), lambda: self.joinRoom(roomToJoin)) |
| 803 | elif username and filename and filename != getMessage("nofile-note"): |
| 804 | if self.config['sharedPlaylistEnabled'] and not self.isItemInPlaylist(filename): |
| 805 | if isURL(filename): |
| 806 | menu.addAction(QtGui.QPixmap(resourcespath + "world_add.png"), addUsersStreamToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename)) |
| 807 | else: |
| 808 | menu.addAction(QtGui.QPixmap(resourcespath + "film_add.png"), addUsersFileToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename)) |
| 809 | |
| 810 | if self._syncplayClient.userlist.currentUser.file is None or filename != self._syncplayClient.userlist.currentUser.file["name"]: |
| 811 | if isURL(filename): |
| 812 | menu.addAction(QtGui.QPixmap(resourcespath + "world_go.png"), getMessage("openusersstream-menu-label").format(shortUsername), lambda: self.openFile(filename, resetPosition=False, fromUser=True)) |
| 813 | else: |
| 814 | pathFound = self._syncplayClient.fileSwitch.findFilepath(filename) |
| 815 | if pathFound: |
| 816 | menu.addAction(QtGui.QPixmap(resourcespath + "film_go.png"), getMessage("openusersfile-menu-label").format(shortUsername), lambda: self.openFile(pathFound, resetPosition=False, fromUser=True)) |
| 817 | if self._syncplayClient.isUntrustedTrustableURI(filename): |
| 818 | domain = utils.getDomainFromURL(filename) |
| 819 | if domain: |
| 820 | menu.addAction(QtGui.QPixmap(resourcespath + "shield_add.png"), getMessage("addtrusteddomain-menu-label").format(domain), lambda: self.addTrustedDomain(domain)) |
| 821 | |
| 822 | if not isURL(filename) and filename != getMessage("nofile-note"): |
| 823 | path = self._syncplayClient.fileSwitch.findFilepath(filename) |
| 824 | if path: |
| 825 | menu.addAction(QtGui.QPixmap(resourcespath + "folder_film.png"), getMessage('open-containing-folder'), lambda: utils.open_system_file_browser(path)) |
| 826 | |
| 827 | if roomToJoin == self._syncplayClient.getRoom() and self._syncplayClient.userlist.currentUser.canControl() and self._syncplayClient.userlist.isReadinessSupported(requiresOtherUsers=False) and self._syncplayClient.serverFeatures["setOthersReadiness"]: |
| 828 | if self._syncplayClient.userlist.isReady(username): |
| 829 | addSetUserAsReadyText = getMessage("setasnotready-menu-label").format(shortUsername) |
| 830 | menu.addAction(QtGui.QPixmap(resourcespath + "cross.png"), addSetUserAsReadyText, lambda: self._syncplayClient.setOthersReadiness(username, False)) |
| 831 | else: |
nothing calls this directly
no test coverage detected