From 934ca47a6abdd1abe2191bf40f5e82023d0eaec0 Mon Sep 17 00:00:00 2001 From: "Ronny (tastytea) Gutbrod" Date: Wed, 7 Oct 2020 19:36:40 +0200 Subject: [PATCH 1/4] app-emulation/dxvk-bin: Version bump 1.7.2. Signed-off-by: Ronny (tastytea) Gutbrod --- app-emulation/dxvk-bin/Manifest | 1 + app-emulation/dxvk-bin/dxvk-bin-1.7.2.ebuild | 73 ++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 app-emulation/dxvk-bin/dxvk-bin-1.7.2.ebuild diff --git a/app-emulation/dxvk-bin/Manifest b/app-emulation/dxvk-bin/Manifest index 50218a1a90..513c70f9cd 100644 --- a/app-emulation/dxvk-bin/Manifest +++ b/app-emulation/dxvk-bin/Manifest @@ -1,2 +1,3 @@ DIST dxvk-bin-1.7.1.tar.gz 7863711 BLAKE2B f6302e254864fda8a6cac17917c41c77974eeeeb1e2bf0270b0faaa4449d709036ff065e48b5c20e9be92dc8be0b4dbfe87b03056e168f5f47ee54327bd8a513 SHA512 8fef547446d1305f70153f1168ea54f9fab461d32f2209fecf400074724a400ed495f21982e4d4c57cf7af1902a58104ab67c8aa4ca29f4c827fb2aac711a855 +DIST dxvk-bin-1.7.2.tar.gz 7881987 BLAKE2B 5f9a9bab7807b37cd56108a36c4c00f52897d07c4a5b50a61f97d3d5f6ea1f14d5b5effdbf2bc8faf78c965449b41d9792b6f20c2233e7ae6912dad5dc117ef3 SHA512 88ce06c3a37384341906b1f1082c4ddcfdcb13032909414f922600da2c9d1b6697f0fe0fcf1b8a46e60c30f2391f5a01d042606cf3cd161d5f0632de610ff929 DIST dxvk-bin-1.7.tar.gz 7734725 BLAKE2B f608a4f228f62b3240a796c2a7fcf514208a1bb421a912405374b4d3a36b17e4172e61bee0722b072f606861325ae988f5ef660ee987c34c9319c1fa1ccf25fe SHA512 c0456c5106ef4a58e7ee1e093557a5769a56430a3907381bccccbaccf17b0af0791b052c41deb2bc7505337d56ef33ba0cfbbfdbb579263ff63ddbf4fbaf1eec diff --git a/app-emulation/dxvk-bin/dxvk-bin-1.7.2.ebuild b/app-emulation/dxvk-bin/dxvk-bin-1.7.2.ebuild new file mode 100644 index 0000000000..ff39068883 --- /dev/null +++ b/app-emulation/dxvk-bin/dxvk-bin-1.7.2.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit multilib-minimal + +MY_P="dxvk-${PV}" +DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine" +HOMEPAGE="https://github.com/doitsujin/dxvk" +SRC_URI="https://github.com/doitsujin/dxvk/releases/download/v${PV}/${MY_P}.tar.gz -> ${P}.tar.gz" + +LICENSE="ZLIB" +SLOT="0" +KEYWORDS="~amd64" +IUSE="video_cards_nvidia" + +DEPEND="" +RDEPEND=" + || ( + video_cards_nvidia? ( >=x11-drivers/nvidia-drivers-440.31 ) + >=media-libs/mesa-19.2 + ) + || ( + >=app-emulation/wine-staging-4.5[${MULTILIB_USEDEP},vulkan] + >=app-emulation/wine-vanilla-4.5[${MULTILIB_USEDEP},vulkan] + ) +" + +S="${WORKDIR}/${MY_P}" + +# NOTE: Various repos contain dxvk ebuilds that install into …/dxvk. +# To not clash with them, this ebuild installs into …/dxvk-bin. + +src_prepare() { + default + + sed -i "s|^basedir=.*$|basedir=\"${EPREFIX}\"|" setup_dxvk.sh || die + + # Delete installation instructions for unused ABIs. + if ! use abi_x86_64; then + sed -i '/installFile "$win64_sys_path"/d' setup_dxvk.sh || die + fi + if ! use abi_x86_32; then + sed -i '/installFile "$win32_sys_path"/d' setup_dxvk.sh || die + fi + + fix_install_dir() { + local bits="${MULTILIB_ABI_FLAG:8:2}" + # Fix installation directory. + sed -i "s|\"x${bits}\"|\"usr/$(get_libdir)/dxvk-bin\"|" \ + setup_dxvk.sh || die + } + multilib_foreach_abi fix_install_dir +} + +multilib_src_install() { + local bits="${MULTILIB_ABI_FLAG:8:2}" + insinto "usr/$(get_libdir)/dxvk-bin" + insopts --mode=755 + doins "${S}/x${bits}/"*.dll +} + +multilib_src_install_all() { + newbin setup_dxvk.sh setup_dxvk-bin.sh +} + +pkg_postinst() { + elog "dxvk-bin is installed, but not activated. You have to create DLL overrides" + elog "in order to make use of it. To do so, set WINEPREFIX and execute" + elog "setup_dxvk-bin.sh install --symlink." +} From 2216599f8517c1ef65b108bb7d54aec631ae3d47 Mon Sep 17 00:00:00 2001 From: "Ronny (tastytea) Gutbrod" Date: Wed, 7 Oct 2020 19:37:40 +0200 Subject: [PATCH 2/4] app-emulation/dxvk-bin: Remove old ebuild. Signed-off-by: Ronny (tastytea) Gutbrod --- app-emulation/dxvk-bin/Manifest | 1 - app-emulation/dxvk-bin/dxvk-bin-1.7.ebuild | 73 ---------------------- 2 files changed, 74 deletions(-) delete mode 100644 app-emulation/dxvk-bin/dxvk-bin-1.7.ebuild diff --git a/app-emulation/dxvk-bin/Manifest b/app-emulation/dxvk-bin/Manifest index 513c70f9cd..6f5ac59c85 100644 --- a/app-emulation/dxvk-bin/Manifest +++ b/app-emulation/dxvk-bin/Manifest @@ -1,3 +1,2 @@ DIST dxvk-bin-1.7.1.tar.gz 7863711 BLAKE2B f6302e254864fda8a6cac17917c41c77974eeeeb1e2bf0270b0faaa4449d709036ff065e48b5c20e9be92dc8be0b4dbfe87b03056e168f5f47ee54327bd8a513 SHA512 8fef547446d1305f70153f1168ea54f9fab461d32f2209fecf400074724a400ed495f21982e4d4c57cf7af1902a58104ab67c8aa4ca29f4c827fb2aac711a855 DIST dxvk-bin-1.7.2.tar.gz 7881987 BLAKE2B 5f9a9bab7807b37cd56108a36c4c00f52897d07c4a5b50a61f97d3d5f6ea1f14d5b5effdbf2bc8faf78c965449b41d9792b6f20c2233e7ae6912dad5dc117ef3 SHA512 88ce06c3a37384341906b1f1082c4ddcfdcb13032909414f922600da2c9d1b6697f0fe0fcf1b8a46e60c30f2391f5a01d042606cf3cd161d5f0632de610ff929 -DIST dxvk-bin-1.7.tar.gz 7734725 BLAKE2B f608a4f228f62b3240a796c2a7fcf514208a1bb421a912405374b4d3a36b17e4172e61bee0722b072f606861325ae988f5ef660ee987c34c9319c1fa1ccf25fe SHA512 c0456c5106ef4a58e7ee1e093557a5769a56430a3907381bccccbaccf17b0af0791b052c41deb2bc7505337d56ef33ba0cfbbfdbb579263ff63ddbf4fbaf1eec diff --git a/app-emulation/dxvk-bin/dxvk-bin-1.7.ebuild b/app-emulation/dxvk-bin/dxvk-bin-1.7.ebuild deleted file mode 100644 index ff39068883..0000000000 --- a/app-emulation/dxvk-bin/dxvk-bin-1.7.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -MULTILIB_COMPAT=( abi_x86_{32,64} ) -inherit multilib-minimal - -MY_P="dxvk-${PV}" -DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine" -HOMEPAGE="https://github.com/doitsujin/dxvk" -SRC_URI="https://github.com/doitsujin/dxvk/releases/download/v${PV}/${MY_P}.tar.gz -> ${P}.tar.gz" - -LICENSE="ZLIB" -SLOT="0" -KEYWORDS="~amd64" -IUSE="video_cards_nvidia" - -DEPEND="" -RDEPEND=" - || ( - video_cards_nvidia? ( >=x11-drivers/nvidia-drivers-440.31 ) - >=media-libs/mesa-19.2 - ) - || ( - >=app-emulation/wine-staging-4.5[${MULTILIB_USEDEP},vulkan] - >=app-emulation/wine-vanilla-4.5[${MULTILIB_USEDEP},vulkan] - ) -" - -S="${WORKDIR}/${MY_P}" - -# NOTE: Various repos contain dxvk ebuilds that install into …/dxvk. -# To not clash with them, this ebuild installs into …/dxvk-bin. - -src_prepare() { - default - - sed -i "s|^basedir=.*$|basedir=\"${EPREFIX}\"|" setup_dxvk.sh || die - - # Delete installation instructions for unused ABIs. - if ! use abi_x86_64; then - sed -i '/installFile "$win64_sys_path"/d' setup_dxvk.sh || die - fi - if ! use abi_x86_32; then - sed -i '/installFile "$win32_sys_path"/d' setup_dxvk.sh || die - fi - - fix_install_dir() { - local bits="${MULTILIB_ABI_FLAG:8:2}" - # Fix installation directory. - sed -i "s|\"x${bits}\"|\"usr/$(get_libdir)/dxvk-bin\"|" \ - setup_dxvk.sh || die - } - multilib_foreach_abi fix_install_dir -} - -multilib_src_install() { - local bits="${MULTILIB_ABI_FLAG:8:2}" - insinto "usr/$(get_libdir)/dxvk-bin" - insopts --mode=755 - doins "${S}/x${bits}/"*.dll -} - -multilib_src_install_all() { - newbin setup_dxvk.sh setup_dxvk-bin.sh -} - -pkg_postinst() { - elog "dxvk-bin is installed, but not activated. You have to create DLL overrides" - elog "in order to make use of it. To do so, set WINEPREFIX and execute" - elog "setup_dxvk-bin.sh install --symlink." -} From a4cc48ad478605dfa902ecc5695279738f851636 Mon Sep 17 00:00:00 2001 From: Huang Rui Date: Fri, 9 Oct 2020 00:49:34 +0800 Subject: [PATCH 3/4] app-emulation/nvidia-container-toolkit: applied @peteches's fix @peteches fixed the ebuild and BDEPEND https://github.com/vowstar/vowstar-overlay/issues/2 https://github.com/vowstar/vowstar-overlay/pull/3 Package-Manager: Portage-3.0.8, Repoman-3.0.1 Signed-off-by: Huang Rui --- .../nvidia-container-toolkit-1.3.0.ebuild | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app-emulation/nvidia-container-toolkit/nvidia-container-toolkit-1.3.0.ebuild b/app-emulation/nvidia-container-toolkit/nvidia-container-toolkit-1.3.0.ebuild index 6c5166f66c..d8b111196c 100644 --- a/app-emulation/nvidia-container-toolkit/nvidia-container-toolkit-1.3.0.ebuild +++ b/app-emulation/nvidia-container-toolkit/nvidia-container-toolkit-1.3.0.ebuild @@ -68,13 +68,11 @@ DEPEND="${RDEPEND}" BDEPEND=" app-arch/unzip + sys-devel/make " src_compile() { - LIB_NAME=${PN} LIB_VERSION=${PV} go build \ - -ldflags "-s -w" \ - -o "${PN}" \ - "${EGO_PN}/pkg" || die + make binary || die } src_install() { From 49ec078717b4228f64ab42d6957e078ad03091f0 Mon Sep 17 00:00:00 2001 From: Andrew Ammerlaan Date: Thu, 8 Oct 2020 20:20:10 +0200 Subject: [PATCH 4/4] media-video/syncplay: version bump 1.6.6_beta1 Package-Manager: Portage-3.0.8, Repoman-3.0.1 Signed-off-by: Andrew Ammerlaan --- media-video/syncplay/Manifest | 2 +- .../syncplay/files/syncplay-allow-PyQt5.patch | 412 +----------------- .../syncplay-change-alignment-operator.patch | 41 ++ ...qpixmap-to-qicon-conversion-explicit.patch | 322 ++++++++++++++ ...use-lambda-to-connect-behind-wrapper.patch | 168 +++++++ media-video/syncplay/metadata.xml | 3 - ...-r1.ebuild => syncplay-1.6.6_beta1.ebuild} | 35 +- 7 files changed, 566 insertions(+), 417 deletions(-) create mode 100644 media-video/syncplay/files/syncplay-change-alignment-operator.patch create mode 100644 media-video/syncplay/files/syncplay-make-qpixmap-to-qicon-conversion-explicit.patch create mode 100644 media-video/syncplay/files/syncplay-use-lambda-to-connect-behind-wrapper.patch rename media-video/syncplay/{syncplay-1.6.5-r1.ebuild => syncplay-1.6.6_beta1.ebuild} (65%) diff --git a/media-video/syncplay/Manifest b/media-video/syncplay/Manifest index 2a6da87b69..54b04a0690 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 89c9de3373..b922bdbb84 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 -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("
Syncplay
") - 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 0000000000..15c9f67ab0 --- /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 +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-make-qpixmap-to-qicon-conversion-explicit.patch b/media-video/syncplay/files/syncplay-make-qpixmap-to-qicon-conversion-explicit.patch new file mode 100644 index 0000000000..2ff08f7e28 --- /dev/null +++ b/media-video/syncplay/files/syncplay-make-qpixmap-to-qicon-conversion-explicit.patch @@ -0,0 +1,322 @@ +From b0e018d0cda148ef8dba07857fcbe8d751800992 Mon Sep 17 00:00:00 2001 +From: Andrew Ammerlaan +Date: Thu, 8 Oct 2020 08:47:44 +0200 +Subject: [PATCH] make conversion from QPixmap to QIcon explicit + +--- + syncplay/ui/gui.py | 106 ++++++++++++++++++++++----------------------- + 1 file changed, 53 insertions(+), 53 deletions(-) + +diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py +index c59c5697..2a4bd1a5 100755 +--- a/syncplay/ui/gui.py ++++ b/syncplay/ui/gui.py +@@ -139,7 +139,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("
Syncplay
") + nameLabel.setFont(QtGui.QFont("Helvetica", 18)) + linkLabel = QtWidgets.QLabel() +@@ -202,7 +202,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"])) +@@ -614,11 +614,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 +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): +- 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 +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): +- 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)) +@@ -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( +- 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 +1445,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 +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) +- 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 +1485,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 +1620,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 +1657,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 +1671,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 +1683,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 +1705,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) + +@@ -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( +- 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 +1835,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 +2060,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-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 0000000000..822b21b815 --- /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 +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 af8b590f5f..ed27ca4d2b 100644 --- a/media-video/syncplay/metadata.xml +++ b/media-video/syncplay/metadata.xml @@ -9,8 +9,5 @@ Install the Syncplay client Install the Syncplay server - Pull in VLC with the lua flag - Pull in MPV with the lua flag - Pull in MPlayer 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 7f1ad02413..30712b3661 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]