commit: 49ec078717b4228f64ab42d6957e078ad03091f0 Author: Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net> AuthorDate: Thu Oct 8 18:20:10 2020 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net> CommitDate: Thu Oct 8 18:20:10 2020 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=49ec0787
media-video/syncplay: version bump 1.6.6_beta1 Package-Manager: Portage-3.0.8, Repoman-3.0.1 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> riseup.net> media-video/syncplay/Manifest | 2 +- .../syncplay/files/syncplay-allow-PyQt5.patch | 412 +-------------------- .../files/syncplay-change-alignment-operator.patch | 41 ++ ...ake-qpixmap-to-qicon-conversion-explicit.patch} | 216 ++--------- ...play-use-lambda-to-connect-behind-wrapper.patch | 168 +++++++++ media-video/syncplay/metadata.xml | 3 - ...1.6.5-r1.ebuild => syncplay-1.6.6_beta1.ebuild} | 35 +- 7 files changed, 276 insertions(+), 601 deletions(-) diff --git a/media-video/syncplay/Manifest b/media-video/syncplay/Manifest index 2a6da87b..54b04a06 100644 --- a/media-video/syncplay/Manifest +++ b/media-video/syncplay/Manifest @@ -1 +1 @@ -DIST syncplay-1.6.5.tar.gz 1849668 BLAKE2B ec0d9037b68adbedac3ae107fc2b7650cfa20f5361d256f839a54dfd3fd73d3ae76c01f4e0b703efcb2c1cac39364208d3bed5ec341e38f1ab3036d91c53bad8 SHA512 c3dba4211e7b57a84cc967a8d2c4827e814287dde866bfd9830d8b3c07af472f1532d0dae35e393fce39b35f586d0765de2c23fc473c41ae277a079f6f3a6db0 +DIST syncplay-1.6.6_beta1.tar.gz 1843061 BLAKE2B 2b940596d96ac6ea859bb27bfc3f987ef52b2be7f1d50976d6c205d3a4d0fed92f29dc530336bb92c0d67bd9661719720e0181331e549af648868104c2b21c63 SHA512 0d75d9505adfa50aaa56bd4e99f62ee5fa77a7085dd3933a5a4a886d8e898eddac887ae42ac8d133bda048ef14ae22402ced368f75fdf234e35a697ea2cb4443 diff --git a/media-video/syncplay/files/syncplay-allow-PyQt5.patch b/media-video/syncplay/files/syncplay-allow-PyQt5.patch index 89c9de33..b922bdbb 100644 --- a/media-video/syncplay/files/syncplay-allow-PyQt5.patch +++ b/media-video/syncplay/files/syncplay-allow-PyQt5.patch @@ -1,19 +1,8 @@ -From c759525889f303195e677f9341cf325decf74809 Mon Sep 17 00:00:00 2001 -From: Andrew Ammerlaan <[email protected]> -Date: Wed, 7 Oct 2020 13:31:46 +0200 -Subject: [PATCH] PyQt5 compatability - ---- - syncplay/ui/ConfigurationGetter.py | 4 +- - syncplay/ui/GuiConfiguration.py | 16 ++-- - syncplay/ui/gui.py | 130 ++++++++++++++++------------- - 3 files changed, 82 insertions(+), 68 deletions(-) - diff --git a/syncplay/ui/ConfigurationGetter.py b/syncplay/ui/ConfigurationGetter.py -index dd1d8ec0..6d83c650 100755 +index dd1d8ec..6d83c65 100755 --- a/syncplay/ui/ConfigurationGetter.py +++ b/syncplay/ui/ConfigurationGetter.py -@@ -513,10 +513,10 @@ def getConfiguration(self): +@@ -513,10 +513,10 @@ class ConfigurationGetter(object): self._overrideConfigWithArgs(args) if not self._config['noGui']: try: @@ -27,10 +16,10 @@ index dd1d8ec0..6d83c650 100755 if QCoreApplication.instance() is None: self.app = QtWidgets.QApplication(sys.argv) diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py -index 96915814..cfe51b26 100755 +index 9ce6a42..1ad5bd7 100755 --- a/syncplay/ui/GuiConfiguration.py +++ b/syncplay/ui/GuiConfiguration.py -@@ -11,7 +11,7 @@ +@@ -11,7 +11,7 @@ from syncplay.players.playerFactory import PlayerFactory from syncplay.utils import isBSD, isLinux, isMacOS, isWindows from syncplay.utils import resourcespath, posixresourcespath @@ -39,16 +28,7 @@ index 96915814..cfe51b26 100755 from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine, QEventLoop, Signal from syncplay.vendor.Qt.QtWidgets import QApplication, QLineEdit, QLabel, QCheckBox, QButtonGroup, QRadioButton, QDoubleSpinBox, QPlainTextEdit from syncplay.vendor.Qt.QtGui import QCursor, QIcon, QImage, QDesktopServices -@@ -21,6 +21,8 @@ - QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) - if IsPySide2: - from PySide2.QtCore import QStandardPaths -+elif IsPyQt5: -+ from PyQt5.QtCore import QStandardPaths - - - class GuiConfiguration: -@@ -445,7 +447,7 @@ def browseMediapath(self): +@@ -445,7 +445,7 @@ class ConfigDialog(QtWidgets.QDialog): defaultdirectory = QDesktopServices.storageLocation(QDesktopServices.HomeLocation) else: defaultdirectory = "" @@ -57,205 +37,29 @@ index 96915814..cfe51b26 100755 if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]): defaultdirectory = self.config["mediaSearchDirectories"][0] elif os.path.isdir(self.mediadirectory): -@@ -1181,7 +1183,7 @@ def addMessageTab(self): - - self.displaySettingsGroup = QtWidgets.QGroupBox(getMessage("messages-other-title")) - self.displaySettingsLayout = QtWidgets.QVBoxLayout() -- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft) -+ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft) - self.displaySettingsFrame = QtWidgets.QFrame() - - self.showDurationNotificationCheckbox = QCheckBox(getMessage("showdurationnotification-label")) -@@ -1193,7 +1195,7 @@ def addMessageTab(self): - self.languageLayout.setContentsMargins(0, 0, 0, 0) - self.languageFrame.setLayout(self.languageLayout) - self.languageFrame.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) -- self.languageLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft) -+ self.languageLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft) - self.languageLabel = QLabel(getMessage("language-label"), self) - self.languageCombobox = QtWidgets.QComboBox(self) - self.languageCombobox.addItem(getMessage("automatic-language").format(getMessage("LANGUAGE", getInitialLanguage()))) -@@ -1214,7 +1216,7 @@ def addMessageTab(self): - - self.displaySettingsGroup.setLayout(self.displaySettingsLayout) - self.displaySettingsGroup.setMaximumHeight(self.displaySettingsGroup.minimumSizeHint().height()) -- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft) -+ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft) - self.messageLayout.addWidget(self.displaySettingsGroup) - - # messageFrame -@@ -1394,7 +1396,9 @@ def __init__(self, config, playerpaths, error, defaultConfig): - self.publicServerAddresses = [] - - self._playerProbeThread = GetPlayerIconThread() -- self._playerProbeThread.done.connect(self._updateExecutableIcon) -+ # To-Do: Why does this not work with PyQt5 -+ if not IsPyQt5: -+ self._playerProbeThread.done.connect(self._updateExecutableIcon) - self._playerProbeThread.start() - - if self.config['clearGUIData'] == True: diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py -index c59c5697..a8fe427d 100755 +index b7a9a9f..d2ad6e5 100755 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py -@@ -18,8 +18,7 @@ - from syncplay.utils import resourcespath +@@ -19,7 +19,7 @@ from syncplay.utils import resourcespath from syncplay.utils import isLinux, isWindows, isMacOS from syncplay.utils import formatTime, sameFilename, sameFilesize, sameFileduration, RoomPasswordProvider, formatSize, isURL --from syncplay.vendor import Qt + from syncplay.vendor import Qt -from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, __binding_version__, __qt_version__, IsPySide, IsPySide2 +from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, __binding_version__, __qt_version__, IsPySide, IsPySide2, IsPyQt5 from syncplay.vendor.Qt.QtCore import Qt, QSettings, QSize, QPoint, QUrl, QLine, QDateTime applyDPIScaling = True if isLinux(): -@@ -32,15 +31,17 @@ +@@ -32,6 +32,8 @@ if hasattr(QtCore.Qt, 'AA_UseHighDpiPixmaps'): QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, applyDPIScaling) if IsPySide2: from PySide2.QtCore import QStandardPaths -+elif IsPyQt5: ++if IsPyQt5: + from PyQt5.QtCore import QStandardPaths if isMacOS() and IsPySide: from Foundation import NSURL from Cocoa import NSString, NSUTF8StringEncoding - lastCheckedForUpdates = None - from syncplay.vendor import darkdetect - if isMacOS(): -- isDarkMode = darkdetect.isDark() -+ isDarkMode = darkdetect.isDark() - else: -- isDarkMode = None -+ isDarkMode = None - - - class ConsoleInGUI(ConsoleUI): -@@ -139,7 +140,7 @@ def __init__(self, parent=None): - self.setWindowTitle(getMessage("about-dialog-title")) - if isWindows(): - self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) -- self.setWindowIcon(QtGui.QPixmap(resourcespath + 'syncplay.png')) -+ self.setWindowIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'syncplay.png'))) - nameLabel = QtWidgets.QLabel("<center><strong>Syncplay</strong></center>") - nameLabel.setFont(QtGui.QFont("Helvetica", 18)) - linkLabel = QtWidgets.QLabel() -@@ -202,7 +203,7 @@ def __init__(self, tlsData, parent=None): - self.setWindowTitle(getMessage("tls-information-title")) - if isWindows(): - self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) -- self.setWindowIcon(QtGui.QPixmap(resourcespath + 'syncplay.png')) -+ self.setWindowIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'syncplay.png'))) - statusLabel = QtWidgets.QLabel(getMessage("tls-dialog-status-label").format(tlsData["subject"])) - descLabel = QtWidgets.QLabel(getMessage("tls-dialog-desc-label").format(tlsData["subject"])) - connDataLabel = QtWidgets.QLabel(getMessage("tls-dialog-connection-label").format(tlsData["protocolVersion"], tlsData["cipher"])) -@@ -454,6 +455,15 @@ def mouseMoveEvent(self, event): - def needsClient(f): # @NoSelf - @wraps(f) - def wrapper(self, *args, **kwds): -+ # To-Do: For some strange reason the args tumple contains False -+ # for some functions, resulting in a crash as the function only accepts -+ # one argument (self). I do not understand where this 'False' is coming -+ # from, it does not seem to be added when the function is called. -+ # This very ugly workaround fixes the problem -+ if IsPyQt5: -+ if len(args)>0: -+ if not args[0]: -+ args = () - if not self._syncplayClient: - self.showDebugMessage("Tried to use client before it was ready!") - return -@@ -614,11 +624,11 @@ def showUserList(self, currentUser, rooms): - - if isControlledRoom: - if room == currentUser.room and currentUser.isController(): -- roomitem.setIcon(QtGui.QPixmap(resourcespath + 'lock_open.png')) -+ roomitem.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'lock_open.png'))) - else: -- roomitem.setIcon(QtGui.QPixmap(resourcespath + 'lock.png')) -+ roomitem.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'lock.png'))) - else: -- roomitem.setIcon(QtGui.QPixmap(resourcespath + 'chevrons_right.png')) -+ roomitem.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'chevrons_right.png'))) - - for user in rooms[room]: - useritem = QtGui.QStandardItem(user.username) -@@ -719,31 +729,31 @@ def openPlaylistMenu(self, position): - pathFound = self._syncplayClient.fileSwitch.findFilepath(firstFile) if not isURL(firstFile) else None - if self._syncplayClient.userlist.currentUser.file is None or firstFile != self._syncplayClient.userlist.currentUser.file["name"]: - if isURL(firstFile): -- menu.addAction(QtGui.QPixmap(resourcespath + "world_go.png"), getMessage("openstreamurl-menu-label"), lambda: self.openFile(firstFile, resetPosition=True, fromUser=True)) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "world_go.png")), getMessage("openstreamurl-menu-label"), lambda: self.openFile(firstFile, resetPosition=True, fromUser=True)) - elif pathFound: -- menu.addAction(QtGui.QPixmap(resourcespath + "film_go.png"), getMessage("openmedia-menu-label"), lambda: self.openFile(pathFound, resetPosition=True, fromUser=True)) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_go.png")), getMessage("openmedia-menu-label"), lambda: self.openFile(pathFound, resetPosition=True, fromUser=True)) - if pathFound: -- menu.addAction(QtGui.QPixmap(resourcespath + "folder_film.png"), -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "folder_film.png")), - getMessage('open-containing-folder'), - lambda: utils.open_system_file_browser(pathFound)) - if self._syncplayClient.isUntrustedTrustableURI(firstFile): - domain = utils.getDomainFromURL(firstFile) -- menu.addAction(QtGui.QPixmap(resourcespath + "shield_add.png"), getMessage("addtrusteddomain-menu-label").format(domain), lambda: self.addTrustedDomain(domain)) -- menu.addAction(QtGui.QPixmap(resourcespath + "delete.png"), getMessage("removefromplaylist-menu-label"), lambda: self.deleteSelectedPlaylistItems()) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "shield_add.png")), getMessage("addtrusteddomain-menu-label").format(domain), lambda: self.addTrustedDomain(domain)) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "delete.png")), getMessage("removefromplaylist-menu-label"), lambda: self.deleteSelectedPlaylistItems()) - menu.addSeparator() -- menu.addAction(QtGui.QPixmap(resourcespath + "arrow_switch.png"), getMessage("shuffleremainingplaylist-menu-label"), lambda: self.shuffleRemainingPlaylist()) -- menu.addAction(QtGui.QPixmap(resourcespath + "arrow_switch.png"), getMessage("shuffleentireplaylist-menu-label"), lambda: self.shuffleEntirePlaylist()) -- menu.addAction(QtGui.QPixmap(resourcespath + "arrow_undo.png"), getMessage("undoplaylist-menu-label"), lambda: self.undoPlaylistChange()) -- menu.addAction(QtGui.QPixmap(resourcespath + "film_edit.png"), getMessage("editplaylist-menu-label"), lambda: self.openEditPlaylistDialog()) -- menu.addAction(QtGui.QPixmap(resourcespath + "film_add.png"), getMessage("addfilestoplaylist-menu-label"), lambda: self.OpenAddFilesToPlaylistDialog()) -- menu.addAction(QtGui.QPixmap(resourcespath + "world_add.png"), getMessage("addurlstoplaylist-menu-label"), lambda: self.OpenAddURIsToPlaylistDialog()) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "arrow_switch.png")), getMessage("shuffleremainingplaylist-menu-label"), lambda: self.shuffleRemainingPlaylist()) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "arrow_switch.png")), getMessage("shuffleentireplaylist-menu-label"), lambda: self.shuffleEntirePlaylist()) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "arrow_undo.png")), getMessage("undoplaylist-menu-label"), lambda: self.undoPlaylistChange()) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_edit.png")), getMessage("editplaylist-menu-label"), lambda: self.openEditPlaylistDialog()) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_add.png")), getMessage("addfilestoplaylist-menu-label"), lambda: self.OpenAddFilesToPlaylistDialog()) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "world_add.png")), getMessage("addurlstoplaylist-menu-label"), lambda: self.OpenAddURIsToPlaylistDialog()) - menu.addSeparator() - menu.addAction(getMessage("loadplaylistfromfile-menu-label"),lambda: self.OpenLoadPlaylistFromFileDialog()) # TODO: Add icon - menu.addAction("Load and shuffle playlist from file",lambda: self.OpenLoadPlaylistFromFileDialog(shuffle=True)) # TODO: Add icon and messages_en - menu.addAction(getMessage("saveplaylisttofile-menu-label"),lambda: self.OpenSavePlaylistToFileDialog()) # TODO: Add icon - menu.addSeparator() -- menu.addAction(QtGui.QPixmap(resourcespath + "film_folder_edit.png"), getMessage("setmediadirectories-menu-label"), lambda: self.openSetMediaDirectoriesDialog()) -- menu.addAction(QtGui.QPixmap(resourcespath + "shield_edit.png"), getMessage("settrusteddomains-menu-label"), lambda: self.openSetTrustedDomainsDialog()) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_folder_edit.png")), getMessage("setmediadirectories-menu-label"), lambda: self.openSetMediaDirectoriesDialog()) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "shield_edit.png")), getMessage("settrusteddomains-menu-label"), lambda: self.openSetTrustedDomainsDialog()) - menu.exec_(self.playlist.viewport().mapToGlobal(position)) - - def openRoomMenu(self, position): -@@ -778,25 +788,25 @@ def openRoomMenu(self, position): - elif username and filename and filename != getMessage("nofile-note"): - if self.config['sharedPlaylistEnabled'] and not self.isItemInPlaylist(filename): - if isURL(filename): -- menu.addAction(QtGui.QPixmap(resourcespath + "world_add.png"), addUsersStreamToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename)) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "world_add.png")), addUsersStreamToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename)) - else: -- menu.addAction(QtGui.QPixmap(resourcespath + "film_add.png"), addUsersFileToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename)) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_add.png")), addUsersFileToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename)) - - if self._syncplayClient.userlist.currentUser.file is None or filename != self._syncplayClient.userlist.currentUser.file["name"]: - if isURL(filename): -- menu.addAction(QtGui.QPixmap(resourcespath + "world_go.png"), getMessage("openusersstream-menu-label").format(shortUsername), lambda: self.openFile(filename, resetPosition=False, fromUser=True)) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "world_go.png")), getMessage("openusersstream-menu-label").format(shortUsername), lambda: self.openFile(filename, resetPosition=False, fromUser=True)) - else: - pathFound = self._syncplayClient.fileSwitch.findFilepath(filename) - if pathFound: -- menu.addAction(QtGui.QPixmap(resourcespath + "film_go.png"), getMessage("openusersfile-menu-label").format(shortUsername), lambda: self.openFile(pathFound, resetPosition=False, fromUser=True)) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_go.png")), getMessage("openusersfile-menu-label").format(shortUsername), lambda: self.openFile(pathFound, resetPosition=False, fromUser=True)) - if self._syncplayClient.isUntrustedTrustableURI(filename): - domain = utils.getDomainFromURL(filename) -- menu.addAction(QtGui.QPixmap(resourcespath + "shield_add.png"), getMessage("addtrusteddomain-menu-label").format(domain), lambda: self.addTrustedDomain(domain)) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "shield_add.png")), getMessage("addtrusteddomain-menu-label").format(domain), lambda: self.addTrustedDomain(domain)) - - if not isURL(filename) and filename != getMessage("nofile-note"): - path = self._syncplayClient.fileSwitch.findFilepath(filename) - if path: -- menu.addAction(QtGui.QPixmap(resourcespath + "folder_film.png"), getMessage('open-containing-folder'), lambda: utils.open_system_file_browser(path)) -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "folder_film.png")), getMessage('open-containing-folder'), lambda: utils.open_system_file_browser(path)) - else: - return - menu.exec_(self.listTreeView.viewport().mapToGlobal(position)) -@@ -808,7 +818,7 @@ def updateListGeometry(self): +@@ -808,7 +810,7 @@ class MainWindow(QtWidgets.QMainWindow): self.listTreeView.setFirstColumnSpanned(roomtocheck, self.listTreeView.rootIndex(), True) roomtocheck += 1 self.listTreeView.header().setStretchLastSection(False) @@ -264,7 +68,7 @@ index c59c5697..a8fe427d 100755 self.listTreeView.header().setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents) self.listTreeView.header().setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents) self.listTreeView.header().setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents) -@@ -822,7 +832,7 @@ def updateListGeometry(self): +@@ -822,7 +824,7 @@ class MainWindow(QtWidgets.QMainWindow): if self.listTreeView.header().width() < (NarrowTabsWidth+self.listTreeView.header().sectionSize(3)): self.listTreeView.header().resizeSection(3, self.listTreeView.header().width()-NarrowTabsWidth) else: @@ -273,7 +77,7 @@ index c59c5697..a8fe427d 100755 self.listTreeView.header().setSectionResizeMode(3, QtWidgets.QHeaderView.Stretch) if IsPySide: self.listTreeView.header().setResizeMode(3, QtWidgets.QHeaderView.Stretch) -@@ -1003,7 +1013,7 @@ def getInitialMediaDirectory(self, includeUserSpecifiedDirectories=True): +@@ -1003,7 +1005,7 @@ class MainWindow(QtWidgets.QMainWindow): defaultdirectory = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.HomeLocation) else: defaultdirectory = "" @@ -282,193 +86,3 @@ index c59c5697..a8fe427d 100755 if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]) and includeUserSpecifiedDirectories: defaultdirectory = self.config["mediaSearchDirectories"][0] elif includeUserSpecifiedDirectories and os.path.isdir(self.mediadirectory): -@@ -1410,7 +1420,7 @@ def addTopLayout(self, window): - window.chatInput.setMaxLength(constants.MAX_CHAT_MESSAGE_LENGTH) - window.chatInput.returnPressed.connect(self.sendChatMessage) - window.chatButton = QtWidgets.QPushButton( -- QtGui.QPixmap(resourcespath + 'email_go.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'email_go.png')), - getMessage("sendmessage-label")) - window.chatButton.pressed.connect(self.sendChatMessage) - window.chatLayout = QtWidgets.QHBoxLayout() -@@ -1445,7 +1455,7 @@ def addTopLayout(self, window): - window.listlabel = QtWidgets.QLabel(getMessage("userlist-heading-label")) - if isMacOS: - window.listlabel.setMinimumHeight(21) -- window.sslButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'lock_green.png').scaled(14, 14),"") -+ window.sslButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'lock_green.png').scaled(14, 14)),"") - window.sslButton.setVisible(False) - window.sslButton.setFixedHeight(21) - window.sslButton.setFixedWidth(21) -@@ -1453,7 +1463,7 @@ def addTopLayout(self, window): - window.sslButton.setStyleSheet("QPushButton:!hover{border: 1px solid gray;} QPushButton:hover{border:2px solid black;}") - else: - window.listlabel.setMinimumHeight(27) -- window.sslButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'lock_green.png'),"") -+ window.sslButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'lock_green.png')),"") - window.sslButton.setVisible(False) - window.sslButton.setFixedHeight(27) - window.sslButton.setFixedWidth(27) -@@ -1485,7 +1495,7 @@ def addTopLayout(self, window): - window.roomsCombobox.setEditable(True) - #window.roomsCombobox.setMaxLength(constants.MAX_ROOM_NAME_LENGTH) - window.roomButton = QtWidgets.QPushButton( -- QtGui.QPixmap(resourcespath + 'door_in.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'door_in.png')), - getMessage("joinroom-label")) - window.roomButton.pressed.connect(self.joinRoom) - window.roomButton.setFixedWidth(window.roomButton.sizeHint().width()+3) -@@ -1620,24 +1630,24 @@ def addPlaybackLayout(self, window): - window.playbackFrame.setLayout(window.playbackLayout) - window.seekInput = QtWidgets.QLineEdit() - window.seekInput.returnPressed.connect(self.seekFromButton) -- window.seekButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'clock_go.png'), "") -+ window.seekButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'clock_go.png')), "") - window.seekButton.setToolTip(getMessage("seektime-menu-label")) - window.seekButton.pressed.connect(self.seekFromButton) - window.seekInput.setText("0:00") - window.seekInput.setFixedWidth(60) - window.playbackLayout.addWidget(window.seekInput) - window.playbackLayout.addWidget(window.seekButton) -- window.unseekButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'arrow_undo.png'), "") -+ window.unseekButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'arrow_undo.png')), "") - window.unseekButton.setToolTip(getMessage("undoseek-menu-label")) - window.unseekButton.pressed.connect(self.undoSeek) - - window.miscLayout = QtWidgets.QHBoxLayout() - window.playbackLayout.addWidget(window.unseekButton) -- window.playButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'control_play_blue.png'), "") -+ window.playButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_play_blue.png')), "") - window.playButton.setToolTip(getMessage("play-menu-label")) - window.playButton.pressed.connect(self.play) - window.playbackLayout.addWidget(window.playButton) -- window.pauseButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'control_pause_blue.png'), "") -+ window.pauseButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_pause_blue.png')), "") - window.pauseButton.setToolTip(getMessage("pause-menu-label")) - window.pauseButton.pressed.connect(self.pause) - window.playbackLayout.addWidget(window.pauseButton) -@@ -1657,13 +1667,13 @@ def populateMenubar(self, window): - # File menu - - window.fileMenu = QtWidgets.QMenu(getMessage("file-menu-label"), self) -- window.openAction = window.fileMenu.addAction(QtGui.QPixmap(resourcespath + 'folder_explore.png'), -+ window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'folder_explore.png')), - getMessage("openmedia-menu-label")) - window.openAction.triggered.connect(self.browseMediapath) -- window.openAction = window.fileMenu.addAction(QtGui.QPixmap(resourcespath + 'world_explore.png'), -+ window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'world_explore.png')), - getMessage("openstreamurl-menu-label")) - window.openAction.triggered.connect(self.promptForStreamURL) -- window.openAction = window.fileMenu.addAction(QtGui.QPixmap(resourcespath + 'film_folder_edit.png'), -+ window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'film_folder_edit.png')), - getMessage("setmediadirectories-menu-label")) - window.openAction.triggered.connect(self.openSetMediaDirectoriesDialog) - -@@ -1671,7 +1681,7 @@ def populateMenubar(self, window): - if isMacOS(): - window.exitAction.setMenuRole(QtWidgets.QAction.QuitRole) - else: -- window.exitAction.setIcon(QtGui.QPixmap(resourcespath + 'cross.png')) -+ window.exitAction.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'cross.png'))) - window.exitAction.triggered.connect(self.exitSyncplay) - - if(window.editMenu is not None): -@@ -1683,19 +1693,19 @@ def populateMenubar(self, window): - - window.playbackMenu = QtWidgets.QMenu(getMessage("playback-menu-label"), self) - window.playAction = window.playbackMenu.addAction( -- QtGui.QPixmap(resourcespath + 'control_play_blue.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_play_blue.png')), - getMessage("play-menu-label")) - window.playAction.triggered.connect(self.play) - window.pauseAction = window.playbackMenu.addAction( -- QtGui.QPixmap(resourcespath + 'control_pause_blue.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_pause_blue.png')), - getMessage("pause-menu-label")) - window.pauseAction.triggered.connect(self.pause) - window.seekAction = window.playbackMenu.addAction( -- QtGui.QPixmap(resourcespath + 'clock_go.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'clock_go.png')), - getMessage("seektime-menu-label")) - window.seekAction.triggered.connect(self.seekPositionDialog) - window.unseekAction = window.playbackMenu.addAction( -- QtGui.QPixmap(resourcespath + 'arrow_undo.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'arrow_undo.png')), - getMessage("undoseek-menu-label")) - window.unseekAction.triggered.connect(self.undoSeek) - -@@ -1705,17 +1715,17 @@ def populateMenubar(self, window): - - window.advancedMenu = QtWidgets.QMenu(getMessage("advanced-menu-label"), self) - window.setoffsetAction = window.advancedMenu.addAction( -- QtGui.QPixmap(resourcespath + 'timeline_marker.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'timeline_marker.png')), - getMessage("setoffset-menu-label")) - window.setoffsetAction.triggered.connect(self.setOffset) - window.setTrustedDomainsAction = window.advancedMenu.addAction( -- QtGui.QPixmap(resourcespath + 'shield_edit.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'shield_edit.png')), - getMessage("settrusteddomains-menu-label")) - window.setTrustedDomainsAction.triggered.connect(self.openSetTrustedDomainsDialog) - window.createcontrolledroomAction = window.advancedMenu.addAction( -- QtGui.QPixmap(resourcespath + 'page_white_key.png'), getMessage("createcontrolledroom-menu-label")) -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'page_white_key.png')), getMessage("createcontrolledroom-menu-label")) - window.createcontrolledroomAction.triggered.connect(self.createControlledRoom) -- window.identifyascontroller = window.advancedMenu.addAction(QtGui.QPixmap(resourcespath + 'key_go.png'), -+ window.identifyascontroller = window.advancedMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'key_go.png')), - getMessage("identifyascontroller-menu-label")) - window.identifyascontroller.triggered.connect(self.identifyAsController) - -@@ -1743,18 +1753,18 @@ def populateMenubar(self, window): - window.helpMenu = QtWidgets.QMenu(getMessage("help-menu-label"), self) - - window.userguideAction = window.helpMenu.addAction( -- QtGui.QPixmap(resourcespath + 'help.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'help.png')), - getMessage("userguide-menu-label")) - window.userguideAction.triggered.connect(self.openUserGuide) - window.updateAction = window.helpMenu.addAction( -- QtGui.QPixmap(resourcespath + 'application_get.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'application_get.png')), - getMessage("update-menu-label")) - window.updateAction.triggered.connect(self.userCheckForUpdates) - - if not isMacOS(): - window.helpMenu.addSeparator() - window.about = window.helpMenu.addAction( -- QtGui.QPixmap(resourcespath + 'syncplay.png'), -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'syncplay.png')), - getMessage("about-menu-label")) - else: - window.about = window.helpMenu.addAction("&About") -@@ -1835,16 +1845,16 @@ def changeAutoplayState(self, source=None): - def updateReadyIcon(self): - ready = self.readyPushButton.isChecked() - if ready: -- self.readyPushButton.setIcon(QtGui.QPixmap(resourcespath + 'tick_checkbox.png')) -+ self.readyPushButton.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'tick_checkbox.png'))) - else: -- self.readyPushButton.setIcon(QtGui.QPixmap(resourcespath + 'empty_checkbox.png')) -+ self.readyPushButton.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'empty_checkbox.png'))) - - def updateAutoPlayIcon(self): - ready = self.autoplayPushButton.isChecked() - if ready: -- self.autoplayPushButton.setIcon(QtGui.QPixmap(resourcespath + 'tick_checkbox.png')) -+ self.autoplayPushButton.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'tick_checkbox.png'))) - else: -- self.autoplayPushButton.setIcon(QtGui.QPixmap(resourcespath + 'empty_checkbox.png')) -+ self.autoplayPushButton.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'empty_checkbox.png'))) - - def automaticUpdateCheck(self): - currentDateTimeValue = QDateTime.currentDateTime() -@@ -2060,7 +2070,7 @@ def __init__(self, passedBar=None): - self.populateMenubar(self) - self.addMainFrame(self) - self.loadSettings() -- self.setWindowIcon(QtGui.QPixmap(resourcespath + "syncplay.png")) -+ self.setWindowIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + "syncplay.png"))) - self.setWindowFlags(self.windowFlags() & Qt.WindowCloseButtonHint & Qt.WindowMinimizeButtonHint & ~Qt.WindowContextHelpButtonHint) - self.show() - self.setAcceptDrops(True) - diff --git a/media-video/syncplay/files/syncplay-change-alignment-operator.patch b/media-video/syncplay/files/syncplay-change-alignment-operator.patch new file mode 100644 index 00000000..15c9f67a --- /dev/null +++ b/media-video/syncplay/files/syncplay-change-alignment-operator.patch @@ -0,0 +1,41 @@ +From 61584550ca734d2f3fa3b811d73f2cebd2b7f30f Mon Sep 17 00:00:00 2001 +From: Andrew Ammerlaan <[email protected]> +Date: Thu, 8 Oct 2020 08:37:58 +0200 +Subject: [PATCH] replace & with | in Alignment, visually identical + +--- + syncplay/ui/GuiConfiguration.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py +index 96915814..e0713adf 100755 +--- a/syncplay/ui/GuiConfiguration.py ++++ b/syncplay/ui/GuiConfiguration.py +@@ -1181,7 +1181,7 @@ def addMessageTab(self): + + self.displaySettingsGroup = QtWidgets.QGroupBox(getMessage("messages-other-title")) + self.displaySettingsLayout = QtWidgets.QVBoxLayout() +- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft) ++ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft) + self.displaySettingsFrame = QtWidgets.QFrame() + + self.showDurationNotificationCheckbox = QCheckBox(getMessage("showdurationnotification-label")) +@@ -1193,7 +1193,7 @@ def addMessageTab(self): + self.languageLayout.setContentsMargins(0, 0, 0, 0) + self.languageFrame.setLayout(self.languageLayout) + self.languageFrame.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) +- self.languageLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft) ++ self.languageLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft) + self.languageLabel = QLabel(getMessage("language-label"), self) + self.languageCombobox = QtWidgets.QComboBox(self) + self.languageCombobox.addItem(getMessage("automatic-language").format(getMessage("LANGUAGE", getInitialLanguage()))) +@@ -1214,7 +1214,7 @@ def addMessageTab(self): + + self.displaySettingsGroup.setLayout(self.displaySettingsLayout) + self.displaySettingsGroup.setMaximumHeight(self.displaySettingsGroup.minimumSizeHint().height()) +- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft) ++ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft) + self.messageLayout.addWidget(self.displaySettingsGroup) + + # messageFrame + diff --git a/media-video/syncplay/files/syncplay-allow-PyQt5.patch b/media-video/syncplay/files/syncplay-make-qpixmap-to-qicon-conversion-explicit.patch similarity index 69% copy from media-video/syncplay/files/syncplay-allow-PyQt5.patch copy to media-video/syncplay/files/syncplay-make-qpixmap-to-qicon-conversion-explicit.patch index 89c9de33..2ff08f7e 100644 --- a/media-video/syncplay/files/syncplay-allow-PyQt5.patch +++ b/media-video/syncplay/files/syncplay-make-qpixmap-to-qicon-conversion-explicit.patch @@ -1,135 +1,17 @@ -From c759525889f303195e677f9341cf325decf74809 Mon Sep 17 00:00:00 2001 +From b0e018d0cda148ef8dba07857fcbe8d751800992 Mon Sep 17 00:00:00 2001 From: Andrew Ammerlaan <[email protected]> -Date: Wed, 7 Oct 2020 13:31:46 +0200 -Subject: [PATCH] PyQt5 compatability +Date: Thu, 8 Oct 2020 08:47:44 +0200 +Subject: [PATCH] make conversion from QPixmap to QIcon explicit --- - syncplay/ui/ConfigurationGetter.py | 4 +- - syncplay/ui/GuiConfiguration.py | 16 ++-- - syncplay/ui/gui.py | 130 ++++++++++++++++------------- - 3 files changed, 82 insertions(+), 68 deletions(-) + syncplay/ui/gui.py | 106 ++++++++++++++++++++++----------------------- + 1 file changed, 53 insertions(+), 53 deletions(-) -diff --git a/syncplay/ui/ConfigurationGetter.py b/syncplay/ui/ConfigurationGetter.py -index dd1d8ec0..6d83c650 100755 ---- a/syncplay/ui/ConfigurationGetter.py -+++ b/syncplay/ui/ConfigurationGetter.py -@@ -513,10 +513,10 @@ def getConfiguration(self): - self._overrideConfigWithArgs(args) - if not self._config['noGui']: - try: -- from syncplay.vendor.Qt import QtWidgets, IsPySide, IsPySide2 -+ from syncplay.vendor.Qt import QtWidgets, IsPySide, IsPySide2, IsPyQt5 - from syncplay.vendor.Qt.QtCore import QCoreApplication - from syncplay.vendor import qt5reactor -- if not (IsPySide2 or IsPySide): -+ if not (IsPySide2 or IsPySide or IsPyQt5): - raise ImportError - if QCoreApplication.instance() is None: - self.app = QtWidgets.QApplication(sys.argv) -diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py -index 96915814..cfe51b26 100755 ---- a/syncplay/ui/GuiConfiguration.py -+++ b/syncplay/ui/GuiConfiguration.py -@@ -11,7 +11,7 @@ - from syncplay.utils import isBSD, isLinux, isMacOS, isWindows - from syncplay.utils import resourcespath, posixresourcespath - --from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, IsPySide, IsPySide2 -+from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, IsPySide, IsPySide2, IsPyQt5 - from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine, QEventLoop, Signal - from syncplay.vendor.Qt.QtWidgets import QApplication, QLineEdit, QLabel, QCheckBox, QButtonGroup, QRadioButton, QDoubleSpinBox, QPlainTextEdit - from syncplay.vendor.Qt.QtGui import QCursor, QIcon, QImage, QDesktopServices -@@ -21,6 +21,8 @@ - QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) - if IsPySide2: - from PySide2.QtCore import QStandardPaths -+elif IsPyQt5: -+ from PyQt5.QtCore import QStandardPaths - - - class GuiConfiguration: -@@ -445,7 +447,7 @@ def browseMediapath(self): - defaultdirectory = QDesktopServices.storageLocation(QDesktopServices.HomeLocation) - else: - defaultdirectory = "" -- elif IsPySide2: -+ elif IsPySide2 or IsPyQt5: - if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]): - defaultdirectory = self.config["mediaSearchDirectories"][0] - elif os.path.isdir(self.mediadirectory): -@@ -1181,7 +1183,7 @@ def addMessageTab(self): - - self.displaySettingsGroup = QtWidgets.QGroupBox(getMessage("messages-other-title")) - self.displaySettingsLayout = QtWidgets.QVBoxLayout() -- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft) -+ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft) - self.displaySettingsFrame = QtWidgets.QFrame() - - self.showDurationNotificationCheckbox = QCheckBox(getMessage("showdurationnotification-label")) -@@ -1193,7 +1195,7 @@ def addMessageTab(self): - self.languageLayout.setContentsMargins(0, 0, 0, 0) - self.languageFrame.setLayout(self.languageLayout) - self.languageFrame.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) -- self.languageLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft) -+ self.languageLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft) - self.languageLabel = QLabel(getMessage("language-label"), self) - self.languageCombobox = QtWidgets.QComboBox(self) - self.languageCombobox.addItem(getMessage("automatic-language").format(getMessage("LANGUAGE", getInitialLanguage()))) -@@ -1214,7 +1216,7 @@ def addMessageTab(self): - - self.displaySettingsGroup.setLayout(self.displaySettingsLayout) - self.displaySettingsGroup.setMaximumHeight(self.displaySettingsGroup.minimumSizeHint().height()) -- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft) -+ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft) - self.messageLayout.addWidget(self.displaySettingsGroup) - - # messageFrame -@@ -1394,7 +1396,9 @@ def __init__(self, config, playerpaths, error, defaultConfig): - self.publicServerAddresses = [] - - self._playerProbeThread = GetPlayerIconThread() -- self._playerProbeThread.done.connect(self._updateExecutableIcon) -+ # To-Do: Why does this not work with PyQt5 -+ if not IsPyQt5: -+ self._playerProbeThread.done.connect(self._updateExecutableIcon) - self._playerProbeThread.start() - - if self.config['clearGUIData'] == True: diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py -index c59c5697..a8fe427d 100755 +index c59c5697..2a4bd1a5 100755 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py -@@ -18,8 +18,7 @@ - from syncplay.utils import resourcespath - from syncplay.utils import isLinux, isWindows, isMacOS - from syncplay.utils import formatTime, sameFilename, sameFilesize, sameFileduration, RoomPasswordProvider, formatSize, isURL --from syncplay.vendor import Qt --from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, __binding_version__, __qt_version__, IsPySide, IsPySide2 -+from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, __binding_version__, __qt_version__, IsPySide, IsPySide2, IsPyQt5 - from syncplay.vendor.Qt.QtCore import Qt, QSettings, QSize, QPoint, QUrl, QLine, QDateTime - applyDPIScaling = True - if isLinux(): -@@ -32,15 +31,17 @@ - QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, applyDPIScaling) - if IsPySide2: - from PySide2.QtCore import QStandardPaths -+elif IsPyQt5: -+ from PyQt5.QtCore import QStandardPaths - if isMacOS() and IsPySide: - from Foundation import NSURL - from Cocoa import NSString, NSUTF8StringEncoding - lastCheckedForUpdates = None - from syncplay.vendor import darkdetect - if isMacOS(): -- isDarkMode = darkdetect.isDark() -+ isDarkMode = darkdetect.isDark() - else: -- isDarkMode = None -+ isDarkMode = None - - - class ConsoleInGUI(ConsoleUI): -@@ -139,7 +140,7 @@ def __init__(self, parent=None): +@@ -139,7 +139,7 @@ def __init__(self, parent=None): self.setWindowTitle(getMessage("about-dialog-title")) if isWindows(): self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) @@ -138,7 +20,7 @@ index c59c5697..a8fe427d 100755 nameLabel = QtWidgets.QLabel("<center><strong>Syncplay</strong></center>") nameLabel.setFont(QtGui.QFont("Helvetica", 18)) linkLabel = QtWidgets.QLabel() -@@ -202,7 +203,7 @@ def __init__(self, tlsData, parent=None): +@@ -202,7 +202,7 @@ def __init__(self, tlsData, parent=None): self.setWindowTitle(getMessage("tls-information-title")) if isWindows(): self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) @@ -147,23 +29,7 @@ index c59c5697..a8fe427d 100755 statusLabel = QtWidgets.QLabel(getMessage("tls-dialog-status-label").format(tlsData["subject"])) descLabel = QtWidgets.QLabel(getMessage("tls-dialog-desc-label").format(tlsData["subject"])) connDataLabel = QtWidgets.QLabel(getMessage("tls-dialog-connection-label").format(tlsData["protocolVersion"], tlsData["cipher"])) -@@ -454,6 +455,15 @@ def mouseMoveEvent(self, event): - def needsClient(f): # @NoSelf - @wraps(f) - def wrapper(self, *args, **kwds): -+ # To-Do: For some strange reason the args tumple contains False -+ # for some functions, resulting in a crash as the function only accepts -+ # one argument (self). I do not understand where this 'False' is coming -+ # from, it does not seem to be added when the function is called. -+ # This very ugly workaround fixes the problem -+ if IsPyQt5: -+ if len(args)>0: -+ if not args[0]: -+ args = () - if not self._syncplayClient: - self.showDebugMessage("Tried to use client before it was ready!") - return -@@ -614,11 +624,11 @@ def showUserList(self, currentUser, rooms): +@@ -614,11 +614,11 @@ def showUserList(self, currentUser, rooms): if isControlledRoom: if room == currentUser.room and currentUser.isController(): @@ -178,7 +44,7 @@ index c59c5697..a8fe427d 100755 for user in rooms[room]: useritem = QtGui.QStandardItem(user.username) -@@ -719,31 +729,31 @@ def openPlaylistMenu(self, position): +@@ -719,31 +719,31 @@ def openPlaylistMenu(self, position): pathFound = self._syncplayClient.fileSwitch.findFilepath(firstFile) if not isURL(firstFile) else None if self._syncplayClient.userlist.currentUser.file is None or firstFile != self._syncplayClient.userlist.currentUser.file["name"]: if isURL(firstFile): @@ -223,7 +89,7 @@ index c59c5697..a8fe427d 100755 menu.exec_(self.playlist.viewport().mapToGlobal(position)) def openRoomMenu(self, position): -@@ -778,25 +788,25 @@ def openRoomMenu(self, position): +@@ -778,25 +778,25 @@ def openRoomMenu(self, position): elif username and filename and filename != getMessage("nofile-note"): if self.config['sharedPlaylistEnabled'] and not self.isItemInPlaylist(filename): if isURL(filename): @@ -255,34 +121,7 @@ index c59c5697..a8fe427d 100755 else: return menu.exec_(self.listTreeView.viewport().mapToGlobal(position)) -@@ -808,7 +818,7 @@ def updateListGeometry(self): - self.listTreeView.setFirstColumnSpanned(roomtocheck, self.listTreeView.rootIndex(), True) - roomtocheck += 1 - self.listTreeView.header().setStretchLastSection(False) -- if IsPySide2: -+ if IsPySide2 or IsPyQt5: - self.listTreeView.header().setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents) - self.listTreeView.header().setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents) - self.listTreeView.header().setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents) -@@ -822,7 +832,7 @@ def updateListGeometry(self): - if self.listTreeView.header().width() < (NarrowTabsWidth+self.listTreeView.header().sectionSize(3)): - self.listTreeView.header().resizeSection(3, self.listTreeView.header().width()-NarrowTabsWidth) - else: -- if IsPySide2: -+ if IsPySide2 or IsPyQt5: - self.listTreeView.header().setSectionResizeMode(3, QtWidgets.QHeaderView.Stretch) - if IsPySide: - self.listTreeView.header().setResizeMode(3, QtWidgets.QHeaderView.Stretch) -@@ -1003,7 +1013,7 @@ def getInitialMediaDirectory(self, includeUserSpecifiedDirectories=True): - defaultdirectory = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.HomeLocation) - else: - defaultdirectory = "" -- elif IsPySide2: -+ elif IsPySide2 or IsPyQt5: - if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]) and includeUserSpecifiedDirectories: - defaultdirectory = self.config["mediaSearchDirectories"][0] - elif includeUserSpecifiedDirectories and os.path.isdir(self.mediadirectory): -@@ -1410,7 +1420,7 @@ def addTopLayout(self, window): +@@ -1410,7 +1410,7 @@ def addTopLayout(self, window): window.chatInput.setMaxLength(constants.MAX_CHAT_MESSAGE_LENGTH) window.chatInput.returnPressed.connect(self.sendChatMessage) window.chatButton = QtWidgets.QPushButton( @@ -291,7 +130,7 @@ index c59c5697..a8fe427d 100755 getMessage("sendmessage-label")) window.chatButton.pressed.connect(self.sendChatMessage) window.chatLayout = QtWidgets.QHBoxLayout() -@@ -1445,7 +1455,7 @@ def addTopLayout(self, window): +@@ -1445,7 +1445,7 @@ def addTopLayout(self, window): window.listlabel = QtWidgets.QLabel(getMessage("userlist-heading-label")) if isMacOS: window.listlabel.setMinimumHeight(21) @@ -300,7 +139,7 @@ index c59c5697..a8fe427d 100755 window.sslButton.setVisible(False) window.sslButton.setFixedHeight(21) window.sslButton.setFixedWidth(21) -@@ -1453,7 +1463,7 @@ def addTopLayout(self, window): +@@ -1453,7 +1453,7 @@ def addTopLayout(self, window): window.sslButton.setStyleSheet("QPushButton:!hover{border: 1px solid gray;} QPushButton:hover{border:2px solid black;}") else: window.listlabel.setMinimumHeight(27) @@ -309,7 +148,7 @@ index c59c5697..a8fe427d 100755 window.sslButton.setVisible(False) window.sslButton.setFixedHeight(27) window.sslButton.setFixedWidth(27) -@@ -1485,7 +1495,7 @@ def addTopLayout(self, window): +@@ -1485,7 +1485,7 @@ def addTopLayout(self, window): window.roomsCombobox.setEditable(True) #window.roomsCombobox.setMaxLength(constants.MAX_ROOM_NAME_LENGTH) window.roomButton = QtWidgets.QPushButton( @@ -318,7 +157,7 @@ index c59c5697..a8fe427d 100755 getMessage("joinroom-label")) window.roomButton.pressed.connect(self.joinRoom) window.roomButton.setFixedWidth(window.roomButton.sizeHint().width()+3) -@@ -1620,24 +1630,24 @@ def addPlaybackLayout(self, window): +@@ -1620,24 +1620,24 @@ def addPlaybackLayout(self, window): window.playbackFrame.setLayout(window.playbackLayout) window.seekInput = QtWidgets.QLineEdit() window.seekInput.returnPressed.connect(self.seekFromButton) @@ -347,7 +186,7 @@ index c59c5697..a8fe427d 100755 window.pauseButton.setToolTip(getMessage("pause-menu-label")) window.pauseButton.pressed.connect(self.pause) window.playbackLayout.addWidget(window.pauseButton) -@@ -1657,13 +1667,13 @@ def populateMenubar(self, window): +@@ -1657,13 +1657,13 @@ def populateMenubar(self, window): # File menu window.fileMenu = QtWidgets.QMenu(getMessage("file-menu-label"), self) @@ -364,7 +203,7 @@ index c59c5697..a8fe427d 100755 getMessage("setmediadirectories-menu-label")) window.openAction.triggered.connect(self.openSetMediaDirectoriesDialog) -@@ -1671,7 +1681,7 @@ def populateMenubar(self, window): +@@ -1671,7 +1671,7 @@ def populateMenubar(self, window): if isMacOS(): window.exitAction.setMenuRole(QtWidgets.QAction.QuitRole) else: @@ -373,7 +212,7 @@ index c59c5697..a8fe427d 100755 window.exitAction.triggered.connect(self.exitSyncplay) if(window.editMenu is not None): -@@ -1683,19 +1693,19 @@ def populateMenubar(self, window): +@@ -1683,19 +1683,19 @@ def populateMenubar(self, window): window.playbackMenu = QtWidgets.QMenu(getMessage("playback-menu-label"), self) window.playAction = window.playbackMenu.addAction( @@ -397,7 +236,7 @@ index c59c5697..a8fe427d 100755 getMessage("undoseek-menu-label")) window.unseekAction.triggered.connect(self.undoSeek) -@@ -1705,17 +1715,17 @@ def populateMenubar(self, window): +@@ -1705,17 +1705,17 @@ def populateMenubar(self, window): window.advancedMenu = QtWidgets.QMenu(getMessage("advanced-menu-label"), self) window.setoffsetAction = window.advancedMenu.addAction( @@ -419,7 +258,16 @@ index c59c5697..a8fe427d 100755 getMessage("identifyascontroller-menu-label")) window.identifyascontroller.triggered.connect(self.identifyAsController) -@@ -1743,18 +1753,18 @@ def populateMenubar(self, window): +@@ -1725,7 +1725,7 @@ def populateMenubar(self, window): + + window.windowMenu = QtWidgets.QMenu(getMessage("window-menu-label"), self) + +- window.editroomsAction = window.windowMenu.addAction(QtGui.QPixmap(resourcespath + 'door_open_edit.png'), getMessage("roomlist-msgbox-label")) ++ window.editroomsAction = window.windowMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'door_open_edit.png')), getMessage("roomlist-msgbox-label")) + window.editroomsAction.triggered.connect(self.openEditRoomsDialog) + window.menuBar.addMenu(window.windowMenu) + +@@ -1743,18 +1743,18 @@ def populateMenubar(self, window): window.helpMenu = QtWidgets.QMenu(getMessage("help-menu-label"), self) window.userguideAction = window.helpMenu.addAction( @@ -441,7 +289,7 @@ index c59c5697..a8fe427d 100755 getMessage("about-menu-label")) else: window.about = window.helpMenu.addAction("&About") -@@ -1835,16 +1845,16 @@ def changeAutoplayState(self, source=None): +@@ -1835,16 +1835,16 @@ def changeAutoplayState(self, source=None): def updateReadyIcon(self): ready = self.readyPushButton.isChecked() if ready: @@ -462,7 +310,7 @@ index c59c5697..a8fe427d 100755 def automaticUpdateCheck(self): currentDateTimeValue = QDateTime.currentDateTime() -@@ -2060,7 +2070,7 @@ def __init__(self, passedBar=None): +@@ -2060,7 +2060,7 @@ def __init__(self, passedBar=None): self.populateMenubar(self) self.addMainFrame(self) self.loadSettings() diff --git a/media-video/syncplay/files/syncplay-use-lambda-to-connect-behind-wrapper.patch b/media-video/syncplay/files/syncplay-use-lambda-to-connect-behind-wrapper.patch new file mode 100644 index 00000000..822b21b8 --- /dev/null +++ b/media-video/syncplay/files/syncplay-use-lambda-to-connect-behind-wrapper.patch @@ -0,0 +1,168 @@ +From f880d4773238a31ac7046ff290910a4ff4920d53 Mon Sep 17 00:00:00 2001 +From: Andrew Ammerlaan <[email protected]> +Date: Thu, 8 Oct 2020 11:41:41 +0200 +Subject: [PATCH] use lambda when connect() to function with @wrapper + +--- + syncplay/ui/GuiConfiguration.py | 2 +- + syncplay/ui/gui.py | 40 ++++++++++++++++----------------- + 2 files changed, 21 insertions(+), 21 deletions(-) + +diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py +index e0713adf..9ce6a429 100755 +--- a/syncplay/ui/GuiConfiguration.py ++++ b/syncplay/ui/GuiConfiguration.py +@@ -1394,7 +1394,7 @@ def __init__(self, config, playerpaths, error, defaultConfig): + self.publicServerAddresses = [] + + self._playerProbeThread = GetPlayerIconThread() +- self._playerProbeThread.done.connect(self._updateExecutableIcon) ++ self._playerProbeThread.done.connect(lambda iconpath, playerpath: self._updateExecutableIcon(iconpath, playerpath)) + self._playerProbeThread.start() + + if self.config['clearGUIData'] == True: +diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py +index 2a4bd1a5..b7a9a9f0 100755 +--- a/syncplay/ui/gui.py ++++ b/syncplay/ui/gui.py +@@ -1457,7 +1457,7 @@ def addTopLayout(self, window): + window.sslButton.setVisible(False) + window.sslButton.setFixedHeight(27) + window.sslButton.setFixedWidth(27) +- window.sslButton.pressed.connect(self.openSSLDetails) ++ window.sslButton.pressed.connect(lambda: self.openSSLDetails()) + window.sslButton.setToolTip(getMessage("sslconnection-tooltip")) + window.listFrame = QtWidgets.QFrame() + window.listFrame.setLineWidth(0) +@@ -1487,7 +1487,7 @@ def addTopLayout(self, window): + window.roomButton = QtWidgets.QPushButton( + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'door_in.png')), + getMessage("joinroom-label")) +- window.roomButton.pressed.connect(self.joinRoom) ++ window.roomButton.pressed.connect(lambda room=None: self.joinRoom(room)) + window.roomButton.setFixedWidth(window.roomButton.sizeHint().width()+3) + window.roomLayout = QtWidgets.QHBoxLayout() + window.roomFrame = QtWidgets.QFrame() +@@ -1539,10 +1539,10 @@ def addBottomLayout(self, window): + window.playlist.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) + window.playlist.setDefaultDropAction(Qt.MoveAction) + window.playlist.setDragDropMode(QtWidgets.QAbstractItemView.InternalMove) +- window.playlist.doubleClicked.connect(self.playlistItemClicked) ++ window.playlist.doubleClicked.connect(lambda item: self.playlistItemClicked(item)) + window.playlist.setContextMenuPolicy(Qt.CustomContextMenu) + window.playlist.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) +- window.playlist.customContextMenuRequested.connect(self.openPlaylistMenu) ++ window.playlist.customContextMenuRequested.connect(lambda position: self.openPlaylistMenu(position)) + self.playlistUpdateTimer = task.LoopingCall(self.playlistChangeCheck) + self.playlistUpdateTimer.start(0.1, True) + noteFont = QtGui.QFont() +@@ -1579,7 +1579,7 @@ def addBottomLayout(self, window): + window.autoplayPushButton.setText(getMessage("autoplay-guipushbuttonlabel")) + window.autoplayPushButton.setCheckable(True) + window.autoplayPushButton.setAutoExclusive(False) +- window.autoplayPushButton.toggled.connect(self.changeAutoplayState) ++ window.autoplayPushButton.toggled.connect(lambda source=None: self.changeAutoplayState(source)) + window.autoplayPushButton.setFont(autoPlayFont) + if isMacOS(): + window.autoplayFrame.setMinimumWidth(window.listFrame.sizeHint().width()) +@@ -1600,7 +1600,7 @@ def addBottomLayout(self, window): + window.autoplayThresholdSpinbox.setMinimum(2) + window.autoplayThresholdSpinbox.setMaximum(99) + window.autoplayThresholdSpinbox.setToolTip(getMessage("autoplay-tooltip")) +- window.autoplayThresholdSpinbox.valueChanged.connect(self.changeAutoplayThreshold) ++ window.autoplayThresholdSpinbox.valueChanged.connect(lambda source=None: self.changeAutoplayThreshold(source)) + window.autoplayLayout.addWidget(window.autoplayPushButton, Qt.AlignRight) + window.autoplayLayout.addWidget(window.autoplayLabel, Qt.AlignRight) + window.autoplayLayout.addWidget(window.autoplayThresholdSpinbox, Qt.AlignRight) +@@ -1629,17 +1629,17 @@ def addPlaybackLayout(self, window): + window.playbackLayout.addWidget(window.seekButton) + window.unseekButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'arrow_undo.png')), "") + window.unseekButton.setToolTip(getMessage("undoseek-menu-label")) +- window.unseekButton.pressed.connect(self.undoSeek) ++ window.unseekButton.pressed.connect(lambda: self.undoSeek()) + + window.miscLayout = QtWidgets.QHBoxLayout() + window.playbackLayout.addWidget(window.unseekButton) + window.playButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_play_blue.png')), "") + window.playButton.setToolTip(getMessage("play-menu-label")) +- window.playButton.pressed.connect(self.play) ++ window.playButton.pressed.connect(lambda: self.play()) + window.playbackLayout.addWidget(window.playButton) + window.pauseButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_pause_blue.png')), "") + window.pauseButton.setToolTip(getMessage("pause-menu-label")) +- window.pauseButton.pressed.connect(self.pause) ++ window.pauseButton.pressed.connect(lambda: self.pause()) + window.playbackLayout.addWidget(window.pauseButton) + window.playbackFrame.setMaximumHeight(window.playbackFrame.sizeHint().height()) + window.playbackFrame.setMaximumWidth(window.playbackFrame.sizeHint().width()) +@@ -1659,20 +1659,20 @@ def populateMenubar(self, window): + window.fileMenu = QtWidgets.QMenu(getMessage("file-menu-label"), self) + window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'folder_explore.png')), + getMessage("openmedia-menu-label")) +- window.openAction.triggered.connect(self.browseMediapath) ++ window.openAction.triggered.connect(lambda: self.browseMediapath()) + window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'world_explore.png')), + getMessage("openstreamurl-menu-label")) +- window.openAction.triggered.connect(self.promptForStreamURL) ++ window.openAction.triggered.connect(lambda: self.promptForStreamURL()) + window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'film_folder_edit.png')), + getMessage("setmediadirectories-menu-label")) +- window.openAction.triggered.connect(self.openSetMediaDirectoriesDialog) ++ window.openAction.triggered.connect(lambda: self.openSetMediaDirectoriesDialog()) + + window.exitAction = window.fileMenu.addAction(getMessage("exit-menu-label")) + if isMacOS(): + window.exitAction.setMenuRole(QtWidgets.QAction.QuitRole) + else: + window.exitAction.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'cross.png'))) +- window.exitAction.triggered.connect(self.exitSyncplay) ++ window.exitAction.triggered.connect(lambda: self.exitSyncplay()) + + if(window.editMenu is not None): + window.menuBar.insertMenu(window.editMenu.menuAction(), window.fileMenu) +@@ -1685,11 +1685,11 @@ def populateMenubar(self, window): + window.playAction = window.playbackMenu.addAction( + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_play_blue.png')), + getMessage("play-menu-label")) +- window.playAction.triggered.connect(self.play) ++ window.playAction.triggered.connect(lambda: self.play()) + window.pauseAction = window.playbackMenu.addAction( + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_pause_blue.png')), + getMessage("pause-menu-label")) +- window.pauseAction.triggered.connect(self.pause) ++ window.pauseAction.triggered.connect(lambda: self.pause()) + window.seekAction = window.playbackMenu.addAction( + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'clock_go.png')), + getMessage("seektime-menu-label")) +@@ -1697,7 +1697,7 @@ def populateMenubar(self, window): + window.unseekAction = window.playbackMenu.addAction( + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'arrow_undo.png')), + getMessage("undoseek-menu-label")) +- window.unseekAction.triggered.connect(self.undoSeek) ++ window.unseekAction.triggered.connect(lambda: self.undoSeek()) + + window.menuBar.addMenu(window.playbackMenu) + +@@ -1707,17 +1707,17 @@ def populateMenubar(self, window): + window.setoffsetAction = window.advancedMenu.addAction( + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'timeline_marker.png')), + getMessage("setoffset-menu-label")) +- window.setoffsetAction.triggered.connect(self.setOffset) ++ window.setoffsetAction.triggered.connect(lambda: self.setOffset()) + window.setTrustedDomainsAction = window.advancedMenu.addAction( + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'shield_edit.png')), + getMessage("settrusteddomains-menu-label")) +- window.setTrustedDomainsAction.triggered.connect(self.openSetTrustedDomainsDialog) ++ window.setTrustedDomainsAction.triggered.connect(lambda: self.openSetTrustedDomainsDialog()) + window.createcontrolledroomAction = window.advancedMenu.addAction( + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'page_white_key.png')), getMessage("createcontrolledroom-menu-label")) +- window.createcontrolledroomAction.triggered.connect(self.createControlledRoom) ++ window.createcontrolledroomAction.triggered.connect(lambda: self.createControlledRoom()) + window.identifyascontroller = window.advancedMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'key_go.png')), + getMessage("identifyascontroller-menu-label")) +- window.identifyascontroller.triggered.connect(self.identifyAsController) ++ window.identifyascontroller.triggered.connect(lambda: self.identifyAsController()) + + window.menuBar.addMenu(window.advancedMenu) + + diff --git a/media-video/syncplay/metadata.xml b/media-video/syncplay/metadata.xml index af8b590f..ed27ca4d 100644 --- a/media-video/syncplay/metadata.xml +++ b/media-video/syncplay/metadata.xml @@ -9,8 +9,5 @@ <use> <flag name="client">Install the Syncplay client</flag> <flag name="server">Install the Syncplay server</flag> - <flag name="vlc">Pull in VLC with the lua flag</flag> - <flag name="mpv">Pull in MPV with the lua flag</flag> - <flag name="mplayer">Pull in MPlayer</flag> </use> </pkgmetadata> diff --git a/media-video/syncplay/syncplay-1.6.5-r1.ebuild b/media-video/syncplay/syncplay-1.6.6_beta1.ebuild similarity index 65% rename from media-video/syncplay/syncplay-1.6.5-r1.ebuild rename to media-video/syncplay/syncplay-1.6.6_beta1.ebuild index 7f1ad024..30712b36 100644 --- a/media-video/syncplay/syncplay-1.6.5-r1.ebuild +++ b/media-video/syncplay/syncplay-1.6.6_beta1.ebuild @@ -8,32 +8,39 @@ DISTUTILS_USE_SETUPTOOLS=rdepend inherit distutils-r1 optfeature xdg +MYPV="${PV/_beta/-Beta}" + DESCRIPTION="Client/server to synchronize media playback" HOMEPAGE="https://github.com/Syncplay/syncplay https://syncplay.pl" -SRC_URI="https://github.com/${PN^}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI="https://github.com/${PN^}/${PN}/archive/${MYPV}.tar.gz -> ${P}.tar.gz" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="~amd64 ~x86" -IUSE="+client +server vlc mpv mplayer" -REQUIRED_USE=" - vlc? ( client ) - mpv? ( client ) - mplayer? ( client ) - client? ( || ( vlc mpv mplayer ) ) -" +IUSE="+client +server" RDEPEND=" dev-python/certifi[${PYTHON_USEDEP}] dev-python/twisted[${PYTHON_USEDEP}] - vlc? ( media-video/vlc[lua] ) - mpv? ( media-video/mpv[lua] ) - mplayer? ( media-video/mplayer ) - client? ( dev-python/QtPy[${PYTHON_USEDEP},gui] ) + client? ( + dev-python/QtPy[${PYTHON_USEDEP},gui] + || ( + media-video/vlc[lua] + media-video/mpv[lua] + media-video/mplayer + ) + ) " -PATCHES=( "${FILESDIR}/${PN}-allow-PyQt5.patch" ) +PATCHES=( + "${FILESDIR}/${PN}-change-alignment-operator.patch" + "${FILESDIR}/${PN}-make-qpixmap-to-qicon-conversion-explicit.patch" + "${FILESDIR}/${PN}-use-lambda-to-connect-behind-wrapper.patch" + "${FILESDIR}/${PN}-allow-PyQt5.patch" +) + +S="${WORKDIR}/${PN}-${MYPV}" python_install() { local MY_MAKEOPTS=( DESTDIR="${D}" PREFIX=/usr ) @@ -51,7 +58,7 @@ pkg_postinst() { xdg_pkg_postinst if use client; then - elog "Syncplay supports the following players:" + elog "Syncplay supports the following media players:" elog "media-video/mpv, media-video/mplayer, media-video/vlc\n" optfeature "using Syncplay with VLC" media-video/vlc[lua] optfeature "using Syncplay with MPV" media-video/mpv[lua]
