Gentoo Archives: gentoo-commits

From: Andrew Ammerlaan <andrewammerlaan@××××××.net>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:dev commit in: media-video/syncplay/, media-video/syncplay/files/
Date: Thu, 08 Oct 2020 18:20:29
Message-Id: 1602181210.49ec078717b4228f64ab42d6957e078ad03091f0.andrewammerlaan@gentoo
1 commit: 49ec078717b4228f64ab42d6957e078ad03091f0
2 Author: Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
3 AuthorDate: Thu Oct 8 18:20:10 2020 +0000
4 Commit: Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
5 CommitDate: Thu Oct 8 18:20:10 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=49ec0787
7
8 media-video/syncplay: version bump 1.6.6_beta1
9
10 Package-Manager: Portage-3.0.8, Repoman-3.0.1
11 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> riseup.net>
12
13 media-video/syncplay/Manifest | 2 +-
14 .../syncplay/files/syncplay-allow-PyQt5.patch | 412 +--------------------
15 .../files/syncplay-change-alignment-operator.patch | 41 ++
16 ...ake-qpixmap-to-qicon-conversion-explicit.patch} | 216 ++---------
17 ...play-use-lambda-to-connect-behind-wrapper.patch | 168 +++++++++
18 media-video/syncplay/metadata.xml | 3 -
19 ...1.6.5-r1.ebuild => syncplay-1.6.6_beta1.ebuild} | 35 +-
20 7 files changed, 276 insertions(+), 601 deletions(-)
21
22 diff --git a/media-video/syncplay/Manifest b/media-video/syncplay/Manifest
23 index 2a6da87b..54b04a06 100644
24 --- a/media-video/syncplay/Manifest
25 +++ b/media-video/syncplay/Manifest
26 @@ -1 +1 @@
27 -DIST syncplay-1.6.5.tar.gz 1849668 BLAKE2B ec0d9037b68adbedac3ae107fc2b7650cfa20f5361d256f839a54dfd3fd73d3ae76c01f4e0b703efcb2c1cac39364208d3bed5ec341e38f1ab3036d91c53bad8 SHA512 c3dba4211e7b57a84cc967a8d2c4827e814287dde866bfd9830d8b3c07af472f1532d0dae35e393fce39b35f586d0765de2c23fc473c41ae277a079f6f3a6db0
28 +DIST syncplay-1.6.6_beta1.tar.gz 1843061 BLAKE2B 2b940596d96ac6ea859bb27bfc3f987ef52b2be7f1d50976d6c205d3a4d0fed92f29dc530336bb92c0d67bd9661719720e0181331e549af648868104c2b21c63 SHA512 0d75d9505adfa50aaa56bd4e99f62ee5fa77a7085dd3933a5a4a886d8e898eddac887ae42ac8d133bda048ef14ae22402ced368f75fdf234e35a697ea2cb4443
29
30 diff --git a/media-video/syncplay/files/syncplay-allow-PyQt5.patch b/media-video/syncplay/files/syncplay-allow-PyQt5.patch
31 index 89c9de33..b922bdbb 100644
32 --- a/media-video/syncplay/files/syncplay-allow-PyQt5.patch
33 +++ b/media-video/syncplay/files/syncplay-allow-PyQt5.patch
34 @@ -1,19 +1,8 @@
35 -From c759525889f303195e677f9341cf325decf74809 Mon Sep 17 00:00:00 2001
36 -From: Andrew Ammerlaan <andrewammerlaan@××××××.net>
37 -Date: Wed, 7 Oct 2020 13:31:46 +0200
38 -Subject: [PATCH] PyQt5 compatability
39 -
40 ----
41 - syncplay/ui/ConfigurationGetter.py | 4 +-
42 - syncplay/ui/GuiConfiguration.py | 16 ++--
43 - syncplay/ui/gui.py | 130 ++++++++++++++++-------------
44 - 3 files changed, 82 insertions(+), 68 deletions(-)
45 -
46 diff --git a/syncplay/ui/ConfigurationGetter.py b/syncplay/ui/ConfigurationGetter.py
47 -index dd1d8ec0..6d83c650 100755
48 +index dd1d8ec..6d83c65 100755
49 --- a/syncplay/ui/ConfigurationGetter.py
50 +++ b/syncplay/ui/ConfigurationGetter.py
51 -@@ -513,10 +513,10 @@ def getConfiguration(self):
52 +@@ -513,10 +513,10 @@ class ConfigurationGetter(object):
53 self._overrideConfigWithArgs(args)
54 if not self._config['noGui']:
55 try:
56 @@ -27,10 +16,10 @@ index dd1d8ec0..6d83c650 100755
57 if QCoreApplication.instance() is None:
58 self.app = QtWidgets.QApplication(sys.argv)
59 diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py
60 -index 96915814..cfe51b26 100755
61 +index 9ce6a42..1ad5bd7 100755
62 --- a/syncplay/ui/GuiConfiguration.py
63 +++ b/syncplay/ui/GuiConfiguration.py
64 -@@ -11,7 +11,7 @@
65 +@@ -11,7 +11,7 @@ from syncplay.players.playerFactory import PlayerFactory
66 from syncplay.utils import isBSD, isLinux, isMacOS, isWindows
67 from syncplay.utils import resourcespath, posixresourcespath
68
69 @@ -39,16 +28,7 @@ index 96915814..cfe51b26 100755
70 from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine, QEventLoop, Signal
71 from syncplay.vendor.Qt.QtWidgets import QApplication, QLineEdit, QLabel, QCheckBox, QButtonGroup, QRadioButton, QDoubleSpinBox, QPlainTextEdit
72 from syncplay.vendor.Qt.QtGui import QCursor, QIcon, QImage, QDesktopServices
73 -@@ -21,6 +21,8 @@
74 - QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
75 - if IsPySide2:
76 - from PySide2.QtCore import QStandardPaths
77 -+elif IsPyQt5:
78 -+ from PyQt5.QtCore import QStandardPaths
79 -
80 -
81 - class GuiConfiguration:
82 -@@ -445,7 +447,7 @@ def browseMediapath(self):
83 +@@ -445,7 +445,7 @@ class ConfigDialog(QtWidgets.QDialog):
84 defaultdirectory = QDesktopServices.storageLocation(QDesktopServices.HomeLocation)
85 else:
86 defaultdirectory = ""
87 @@ -57,205 +37,29 @@ index 96915814..cfe51b26 100755
88 if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]):
89 defaultdirectory = self.config["mediaSearchDirectories"][0]
90 elif os.path.isdir(self.mediadirectory):
91 -@@ -1181,7 +1183,7 @@ def addMessageTab(self):
92 -
93 - self.displaySettingsGroup = QtWidgets.QGroupBox(getMessage("messages-other-title"))
94 - self.displaySettingsLayout = QtWidgets.QVBoxLayout()
95 -- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft)
96 -+ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft)
97 - self.displaySettingsFrame = QtWidgets.QFrame()
98 -
99 - self.showDurationNotificationCheckbox = QCheckBox(getMessage("showdurationnotification-label"))
100 -@@ -1193,7 +1195,7 @@ def addMessageTab(self):
101 - self.languageLayout.setContentsMargins(0, 0, 0, 0)
102 - self.languageFrame.setLayout(self.languageLayout)
103 - self.languageFrame.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
104 -- self.languageLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft)
105 -+ self.languageLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft)
106 - self.languageLabel = QLabel(getMessage("language-label"), self)
107 - self.languageCombobox = QtWidgets.QComboBox(self)
108 - self.languageCombobox.addItem(getMessage("automatic-language").format(getMessage("LANGUAGE", getInitialLanguage())))
109 -@@ -1214,7 +1216,7 @@ def addMessageTab(self):
110 -
111 - self.displaySettingsGroup.setLayout(self.displaySettingsLayout)
112 - self.displaySettingsGroup.setMaximumHeight(self.displaySettingsGroup.minimumSizeHint().height())
113 -- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft)
114 -+ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft)
115 - self.messageLayout.addWidget(self.displaySettingsGroup)
116 -
117 - # messageFrame
118 -@@ -1394,7 +1396,9 @@ def __init__(self, config, playerpaths, error, defaultConfig):
119 - self.publicServerAddresses = []
120 -
121 - self._playerProbeThread = GetPlayerIconThread()
122 -- self._playerProbeThread.done.connect(self._updateExecutableIcon)
123 -+ # To-Do: Why does this not work with PyQt5
124 -+ if not IsPyQt5:
125 -+ self._playerProbeThread.done.connect(self._updateExecutableIcon)
126 - self._playerProbeThread.start()
127 -
128 - if self.config['clearGUIData'] == True:
129 diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py
130 -index c59c5697..a8fe427d 100755
131 +index b7a9a9f..d2ad6e5 100755
132 --- a/syncplay/ui/gui.py
133 +++ b/syncplay/ui/gui.py
134 -@@ -18,8 +18,7 @@
135 - from syncplay.utils import resourcespath
136 +@@ -19,7 +19,7 @@ from syncplay.utils import resourcespath
137 from syncplay.utils import isLinux, isWindows, isMacOS
138 from syncplay.utils import formatTime, sameFilename, sameFilesize, sameFileduration, RoomPasswordProvider, formatSize, isURL
139 --from syncplay.vendor import Qt
140 + from syncplay.vendor import Qt
141 -from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, __binding_version__, __qt_version__, IsPySide, IsPySide2
142 +from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, __binding_version__, __qt_version__, IsPySide, IsPySide2, IsPyQt5
143 from syncplay.vendor.Qt.QtCore import Qt, QSettings, QSize, QPoint, QUrl, QLine, QDateTime
144 applyDPIScaling = True
145 if isLinux():
146 -@@ -32,15 +31,17 @@
147 +@@ -32,6 +32,8 @@ if hasattr(QtCore.Qt, 'AA_UseHighDpiPixmaps'):
148 QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, applyDPIScaling)
149 if IsPySide2:
150 from PySide2.QtCore import QStandardPaths
151 -+elif IsPyQt5:
152 ++if IsPyQt5:
153 + from PyQt5.QtCore import QStandardPaths
154 if isMacOS() and IsPySide:
155 from Foundation import NSURL
156 from Cocoa import NSString, NSUTF8StringEncoding
157 - lastCheckedForUpdates = None
158 - from syncplay.vendor import darkdetect
159 - if isMacOS():
160 -- isDarkMode = darkdetect.isDark()
161 -+ isDarkMode = darkdetect.isDark()
162 - else:
163 -- isDarkMode = None
164 -+ isDarkMode = None
165 -
166 -
167 - class ConsoleInGUI(ConsoleUI):
168 -@@ -139,7 +140,7 @@ def __init__(self, parent=None):
169 - self.setWindowTitle(getMessage("about-dialog-title"))
170 - if isWindows():
171 - self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
172 -- self.setWindowIcon(QtGui.QPixmap(resourcespath + 'syncplay.png'))
173 -+ self.setWindowIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'syncplay.png')))
174 - nameLabel = QtWidgets.QLabel("<center><strong>Syncplay</strong></center>")
175 - nameLabel.setFont(QtGui.QFont("Helvetica", 18))
176 - linkLabel = QtWidgets.QLabel()
177 -@@ -202,7 +203,7 @@ def __init__(self, tlsData, parent=None):
178 - self.setWindowTitle(getMessage("tls-information-title"))
179 - if isWindows():
180 - self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
181 -- self.setWindowIcon(QtGui.QPixmap(resourcespath + 'syncplay.png'))
182 -+ self.setWindowIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'syncplay.png')))
183 - statusLabel = QtWidgets.QLabel(getMessage("tls-dialog-status-label").format(tlsData["subject"]))
184 - descLabel = QtWidgets.QLabel(getMessage("tls-dialog-desc-label").format(tlsData["subject"]))
185 - connDataLabel = QtWidgets.QLabel(getMessage("tls-dialog-connection-label").format(tlsData["protocolVersion"], tlsData["cipher"]))
186 -@@ -454,6 +455,15 @@ def mouseMoveEvent(self, event):
187 - def needsClient(f): # @NoSelf
188 - @wraps(f)
189 - def wrapper(self, *args, **kwds):
190 -+ # To-Do: For some strange reason the args tumple contains False
191 -+ # for some functions, resulting in a crash as the function only accepts
192 -+ # one argument (self). I do not understand where this 'False' is coming
193 -+ # from, it does not seem to be added when the function is called.
194 -+ # This very ugly workaround fixes the problem
195 -+ if IsPyQt5:
196 -+ if len(args)>0:
197 -+ if not args[0]:
198 -+ args = ()
199 - if not self._syncplayClient:
200 - self.showDebugMessage("Tried to use client before it was ready!")
201 - return
202 -@@ -614,11 +624,11 @@ def showUserList(self, currentUser, rooms):
203 -
204 - if isControlledRoom:
205 - if room == currentUser.room and currentUser.isController():
206 -- roomitem.setIcon(QtGui.QPixmap(resourcespath + 'lock_open.png'))
207 -+ roomitem.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'lock_open.png')))
208 - else:
209 -- roomitem.setIcon(QtGui.QPixmap(resourcespath + 'lock.png'))
210 -+ roomitem.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'lock.png')))
211 - else:
212 -- roomitem.setIcon(QtGui.QPixmap(resourcespath + 'chevrons_right.png'))
213 -+ roomitem.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'chevrons_right.png')))
214 -
215 - for user in rooms[room]:
216 - useritem = QtGui.QStandardItem(user.username)
217 -@@ -719,31 +729,31 @@ def openPlaylistMenu(self, position):
218 - pathFound = self._syncplayClient.fileSwitch.findFilepath(firstFile) if not isURL(firstFile) else None
219 - if self._syncplayClient.userlist.currentUser.file is None or firstFile != self._syncplayClient.userlist.currentUser.file["name"]:
220 - if isURL(firstFile):
221 -- menu.addAction(QtGui.QPixmap(resourcespath + "world_go.png"), getMessage("openstreamurl-menu-label"), lambda: self.openFile(firstFile, resetPosition=True, fromUser=True))
222 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "world_go.png")), getMessage("openstreamurl-menu-label"), lambda: self.openFile(firstFile, resetPosition=True, fromUser=True))
223 - elif pathFound:
224 -- menu.addAction(QtGui.QPixmap(resourcespath + "film_go.png"), getMessage("openmedia-menu-label"), lambda: self.openFile(pathFound, resetPosition=True, fromUser=True))
225 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_go.png")), getMessage("openmedia-menu-label"), lambda: self.openFile(pathFound, resetPosition=True, fromUser=True))
226 - if pathFound:
227 -- menu.addAction(QtGui.QPixmap(resourcespath + "folder_film.png"),
228 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "folder_film.png")),
229 - getMessage('open-containing-folder'),
230 - lambda: utils.open_system_file_browser(pathFound))
231 - if self._syncplayClient.isUntrustedTrustableURI(firstFile):
232 - domain = utils.getDomainFromURL(firstFile)
233 -- menu.addAction(QtGui.QPixmap(resourcespath + "shield_add.png"), getMessage("addtrusteddomain-menu-label").format(domain), lambda: self.addTrustedDomain(domain))
234 -- menu.addAction(QtGui.QPixmap(resourcespath + "delete.png"), getMessage("removefromplaylist-menu-label"), lambda: self.deleteSelectedPlaylistItems())
235 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "shield_add.png")), getMessage("addtrusteddomain-menu-label").format(domain), lambda: self.addTrustedDomain(domain))
236 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "delete.png")), getMessage("removefromplaylist-menu-label"), lambda: self.deleteSelectedPlaylistItems())
237 - menu.addSeparator()
238 -- menu.addAction(QtGui.QPixmap(resourcespath + "arrow_switch.png"), getMessage("shuffleremainingplaylist-menu-label"), lambda: self.shuffleRemainingPlaylist())
239 -- menu.addAction(QtGui.QPixmap(resourcespath + "arrow_switch.png"), getMessage("shuffleentireplaylist-menu-label"), lambda: self.shuffleEntirePlaylist())
240 -- menu.addAction(QtGui.QPixmap(resourcespath + "arrow_undo.png"), getMessage("undoplaylist-menu-label"), lambda: self.undoPlaylistChange())
241 -- menu.addAction(QtGui.QPixmap(resourcespath + "film_edit.png"), getMessage("editplaylist-menu-label"), lambda: self.openEditPlaylistDialog())
242 -- menu.addAction(QtGui.QPixmap(resourcespath + "film_add.png"), getMessage("addfilestoplaylist-menu-label"), lambda: self.OpenAddFilesToPlaylistDialog())
243 -- menu.addAction(QtGui.QPixmap(resourcespath + "world_add.png"), getMessage("addurlstoplaylist-menu-label"), lambda: self.OpenAddURIsToPlaylistDialog())
244 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "arrow_switch.png")), getMessage("shuffleremainingplaylist-menu-label"), lambda: self.shuffleRemainingPlaylist())
245 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "arrow_switch.png")), getMessage("shuffleentireplaylist-menu-label"), lambda: self.shuffleEntirePlaylist())
246 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "arrow_undo.png")), getMessage("undoplaylist-menu-label"), lambda: self.undoPlaylistChange())
247 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_edit.png")), getMessage("editplaylist-menu-label"), lambda: self.openEditPlaylistDialog())
248 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_add.png")), getMessage("addfilestoplaylist-menu-label"), lambda: self.OpenAddFilesToPlaylistDialog())
249 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "world_add.png")), getMessage("addurlstoplaylist-menu-label"), lambda: self.OpenAddURIsToPlaylistDialog())
250 - menu.addSeparator()
251 - menu.addAction(getMessage("loadplaylistfromfile-menu-label"),lambda: self.OpenLoadPlaylistFromFileDialog()) # TODO: Add icon
252 - menu.addAction("Load and shuffle playlist from file",lambda: self.OpenLoadPlaylistFromFileDialog(shuffle=True)) # TODO: Add icon and messages_en
253 - menu.addAction(getMessage("saveplaylisttofile-menu-label"),lambda: self.OpenSavePlaylistToFileDialog()) # TODO: Add icon
254 - menu.addSeparator()
255 -- menu.addAction(QtGui.QPixmap(resourcespath + "film_folder_edit.png"), getMessage("setmediadirectories-menu-label"), lambda: self.openSetMediaDirectoriesDialog())
256 -- menu.addAction(QtGui.QPixmap(resourcespath + "shield_edit.png"), getMessage("settrusteddomains-menu-label"), lambda: self.openSetTrustedDomainsDialog())
257 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_folder_edit.png")), getMessage("setmediadirectories-menu-label"), lambda: self.openSetMediaDirectoriesDialog())
258 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "shield_edit.png")), getMessage("settrusteddomains-menu-label"), lambda: self.openSetTrustedDomainsDialog())
259 - menu.exec_(self.playlist.viewport().mapToGlobal(position))
260 -
261 - def openRoomMenu(self, position):
262 -@@ -778,25 +788,25 @@ def openRoomMenu(self, position):
263 - elif username and filename and filename != getMessage("nofile-note"):
264 - if self.config['sharedPlaylistEnabled'] and not self.isItemInPlaylist(filename):
265 - if isURL(filename):
266 -- menu.addAction(QtGui.QPixmap(resourcespath + "world_add.png"), addUsersStreamToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename))
267 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "world_add.png")), addUsersStreamToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename))
268 - else:
269 -- menu.addAction(QtGui.QPixmap(resourcespath + "film_add.png"), addUsersFileToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename))
270 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_add.png")), addUsersFileToPlaylistLabelText, lambda: self.addStreamToPlaylist(filename))
271 -
272 - if self._syncplayClient.userlist.currentUser.file is None or filename != self._syncplayClient.userlist.currentUser.file["name"]:
273 - if isURL(filename):
274 -- menu.addAction(QtGui.QPixmap(resourcespath + "world_go.png"), getMessage("openusersstream-menu-label").format(shortUsername), lambda: self.openFile(filename, resetPosition=False, fromUser=True))
275 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "world_go.png")), getMessage("openusersstream-menu-label").format(shortUsername), lambda: self.openFile(filename, resetPosition=False, fromUser=True))
276 - else:
277 - pathFound = self._syncplayClient.fileSwitch.findFilepath(filename)
278 - if pathFound:
279 -- menu.addAction(QtGui.QPixmap(resourcespath + "film_go.png"), getMessage("openusersfile-menu-label").format(shortUsername), lambda: self.openFile(pathFound, resetPosition=False, fromUser=True))
280 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "film_go.png")), getMessage("openusersfile-menu-label").format(shortUsername), lambda: self.openFile(pathFound, resetPosition=False, fromUser=True))
281 - if self._syncplayClient.isUntrustedTrustableURI(filename):
282 - domain = utils.getDomainFromURL(filename)
283 -- menu.addAction(QtGui.QPixmap(resourcespath + "shield_add.png"), getMessage("addtrusteddomain-menu-label").format(domain), lambda: self.addTrustedDomain(domain))
284 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "shield_add.png")), getMessage("addtrusteddomain-menu-label").format(domain), lambda: self.addTrustedDomain(domain))
285 -
286 - if not isURL(filename) and filename != getMessage("nofile-note"):
287 - path = self._syncplayClient.fileSwitch.findFilepath(filename)
288 - if path:
289 -- menu.addAction(QtGui.QPixmap(resourcespath + "folder_film.png"), getMessage('open-containing-folder'), lambda: utils.open_system_file_browser(path))
290 -+ menu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + "folder_film.png")), getMessage('open-containing-folder'), lambda: utils.open_system_file_browser(path))
291 - else:
292 - return
293 - menu.exec_(self.listTreeView.viewport().mapToGlobal(position))
294 -@@ -808,7 +818,7 @@ def updateListGeometry(self):
295 +@@ -808,7 +810,7 @@ class MainWindow(QtWidgets.QMainWindow):
296 self.listTreeView.setFirstColumnSpanned(roomtocheck, self.listTreeView.rootIndex(), True)
297 roomtocheck += 1
298 self.listTreeView.header().setStretchLastSection(False)
299 @@ -264,7 +68,7 @@ index c59c5697..a8fe427d 100755
300 self.listTreeView.header().setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents)
301 self.listTreeView.header().setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents)
302 self.listTreeView.header().setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)
303 -@@ -822,7 +832,7 @@ def updateListGeometry(self):
304 +@@ -822,7 +824,7 @@ class MainWindow(QtWidgets.QMainWindow):
305 if self.listTreeView.header().width() < (NarrowTabsWidth+self.listTreeView.header().sectionSize(3)):
306 self.listTreeView.header().resizeSection(3, self.listTreeView.header().width()-NarrowTabsWidth)
307 else:
308 @@ -273,7 +77,7 @@ index c59c5697..a8fe427d 100755
309 self.listTreeView.header().setSectionResizeMode(3, QtWidgets.QHeaderView.Stretch)
310 if IsPySide:
311 self.listTreeView.header().setResizeMode(3, QtWidgets.QHeaderView.Stretch)
312 -@@ -1003,7 +1013,7 @@ def getInitialMediaDirectory(self, includeUserSpecifiedDirectories=True):
313 +@@ -1003,7 +1005,7 @@ class MainWindow(QtWidgets.QMainWindow):
314 defaultdirectory = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.HomeLocation)
315 else:
316 defaultdirectory = ""
317 @@ -282,193 +86,3 @@ index c59c5697..a8fe427d 100755
318 if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]) and includeUserSpecifiedDirectories:
319 defaultdirectory = self.config["mediaSearchDirectories"][0]
320 elif includeUserSpecifiedDirectories and os.path.isdir(self.mediadirectory):
321 -@@ -1410,7 +1420,7 @@ def addTopLayout(self, window):
322 - window.chatInput.setMaxLength(constants.MAX_CHAT_MESSAGE_LENGTH)
323 - window.chatInput.returnPressed.connect(self.sendChatMessage)
324 - window.chatButton = QtWidgets.QPushButton(
325 -- QtGui.QPixmap(resourcespath + 'email_go.png'),
326 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'email_go.png')),
327 - getMessage("sendmessage-label"))
328 - window.chatButton.pressed.connect(self.sendChatMessage)
329 - window.chatLayout = QtWidgets.QHBoxLayout()
330 -@@ -1445,7 +1455,7 @@ def addTopLayout(self, window):
331 - window.listlabel = QtWidgets.QLabel(getMessage("userlist-heading-label"))
332 - if isMacOS:
333 - window.listlabel.setMinimumHeight(21)
334 -- window.sslButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'lock_green.png').scaled(14, 14),"")
335 -+ window.sslButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'lock_green.png').scaled(14, 14)),"")
336 - window.sslButton.setVisible(False)
337 - window.sslButton.setFixedHeight(21)
338 - window.sslButton.setFixedWidth(21)
339 -@@ -1453,7 +1463,7 @@ def addTopLayout(self, window):
340 - window.sslButton.setStyleSheet("QPushButton:!hover{border: 1px solid gray;} QPushButton:hover{border:2px solid black;}")
341 - else:
342 - window.listlabel.setMinimumHeight(27)
343 -- window.sslButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'lock_green.png'),"")
344 -+ window.sslButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'lock_green.png')),"")
345 - window.sslButton.setVisible(False)
346 - window.sslButton.setFixedHeight(27)
347 - window.sslButton.setFixedWidth(27)
348 -@@ -1485,7 +1495,7 @@ def addTopLayout(self, window):
349 - window.roomsCombobox.setEditable(True)
350 - #window.roomsCombobox.setMaxLength(constants.MAX_ROOM_NAME_LENGTH)
351 - window.roomButton = QtWidgets.QPushButton(
352 -- QtGui.QPixmap(resourcespath + 'door_in.png'),
353 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'door_in.png')),
354 - getMessage("joinroom-label"))
355 - window.roomButton.pressed.connect(self.joinRoom)
356 - window.roomButton.setFixedWidth(window.roomButton.sizeHint().width()+3)
357 -@@ -1620,24 +1630,24 @@ def addPlaybackLayout(self, window):
358 - window.playbackFrame.setLayout(window.playbackLayout)
359 - window.seekInput = QtWidgets.QLineEdit()
360 - window.seekInput.returnPressed.connect(self.seekFromButton)
361 -- window.seekButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'clock_go.png'), "")
362 -+ window.seekButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'clock_go.png')), "")
363 - window.seekButton.setToolTip(getMessage("seektime-menu-label"))
364 - window.seekButton.pressed.connect(self.seekFromButton)
365 - window.seekInput.setText("0:00")
366 - window.seekInput.setFixedWidth(60)
367 - window.playbackLayout.addWidget(window.seekInput)
368 - window.playbackLayout.addWidget(window.seekButton)
369 -- window.unseekButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'arrow_undo.png'), "")
370 -+ window.unseekButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'arrow_undo.png')), "")
371 - window.unseekButton.setToolTip(getMessage("undoseek-menu-label"))
372 - window.unseekButton.pressed.connect(self.undoSeek)
373 -
374 - window.miscLayout = QtWidgets.QHBoxLayout()
375 - window.playbackLayout.addWidget(window.unseekButton)
376 -- window.playButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'control_play_blue.png'), "")
377 -+ window.playButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_play_blue.png')), "")
378 - window.playButton.setToolTip(getMessage("play-menu-label"))
379 - window.playButton.pressed.connect(self.play)
380 - window.playbackLayout.addWidget(window.playButton)
381 -- window.pauseButton = QtWidgets.QPushButton(QtGui.QPixmap(resourcespath + 'control_pause_blue.png'), "")
382 -+ window.pauseButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_pause_blue.png')), "")
383 - window.pauseButton.setToolTip(getMessage("pause-menu-label"))
384 - window.pauseButton.pressed.connect(self.pause)
385 - window.playbackLayout.addWidget(window.pauseButton)
386 -@@ -1657,13 +1667,13 @@ def populateMenubar(self, window):
387 - # File menu
388 -
389 - window.fileMenu = QtWidgets.QMenu(getMessage("file-menu-label"), self)
390 -- window.openAction = window.fileMenu.addAction(QtGui.QPixmap(resourcespath + 'folder_explore.png'),
391 -+ window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'folder_explore.png')),
392 - getMessage("openmedia-menu-label"))
393 - window.openAction.triggered.connect(self.browseMediapath)
394 -- window.openAction = window.fileMenu.addAction(QtGui.QPixmap(resourcespath + 'world_explore.png'),
395 -+ window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'world_explore.png')),
396 - getMessage("openstreamurl-menu-label"))
397 - window.openAction.triggered.connect(self.promptForStreamURL)
398 -- window.openAction = window.fileMenu.addAction(QtGui.QPixmap(resourcespath + 'film_folder_edit.png'),
399 -+ window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'film_folder_edit.png')),
400 - getMessage("setmediadirectories-menu-label"))
401 - window.openAction.triggered.connect(self.openSetMediaDirectoriesDialog)
402 -
403 -@@ -1671,7 +1681,7 @@ def populateMenubar(self, window):
404 - if isMacOS():
405 - window.exitAction.setMenuRole(QtWidgets.QAction.QuitRole)
406 - else:
407 -- window.exitAction.setIcon(QtGui.QPixmap(resourcespath + 'cross.png'))
408 -+ window.exitAction.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'cross.png')))
409 - window.exitAction.triggered.connect(self.exitSyncplay)
410 -
411 - if(window.editMenu is not None):
412 -@@ -1683,19 +1693,19 @@ def populateMenubar(self, window):
413 -
414 - window.playbackMenu = QtWidgets.QMenu(getMessage("playback-menu-label"), self)
415 - window.playAction = window.playbackMenu.addAction(
416 -- QtGui.QPixmap(resourcespath + 'control_play_blue.png'),
417 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_play_blue.png')),
418 - getMessage("play-menu-label"))
419 - window.playAction.triggered.connect(self.play)
420 - window.pauseAction = window.playbackMenu.addAction(
421 -- QtGui.QPixmap(resourcespath + 'control_pause_blue.png'),
422 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_pause_blue.png')),
423 - getMessage("pause-menu-label"))
424 - window.pauseAction.triggered.connect(self.pause)
425 - window.seekAction = window.playbackMenu.addAction(
426 -- QtGui.QPixmap(resourcespath + 'clock_go.png'),
427 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'clock_go.png')),
428 - getMessage("seektime-menu-label"))
429 - window.seekAction.triggered.connect(self.seekPositionDialog)
430 - window.unseekAction = window.playbackMenu.addAction(
431 -- QtGui.QPixmap(resourcespath + 'arrow_undo.png'),
432 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'arrow_undo.png')),
433 - getMessage("undoseek-menu-label"))
434 - window.unseekAction.triggered.connect(self.undoSeek)
435 -
436 -@@ -1705,17 +1715,17 @@ def populateMenubar(self, window):
437 -
438 - window.advancedMenu = QtWidgets.QMenu(getMessage("advanced-menu-label"), self)
439 - window.setoffsetAction = window.advancedMenu.addAction(
440 -- QtGui.QPixmap(resourcespath + 'timeline_marker.png'),
441 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'timeline_marker.png')),
442 - getMessage("setoffset-menu-label"))
443 - window.setoffsetAction.triggered.connect(self.setOffset)
444 - window.setTrustedDomainsAction = window.advancedMenu.addAction(
445 -- QtGui.QPixmap(resourcespath + 'shield_edit.png'),
446 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'shield_edit.png')),
447 - getMessage("settrusteddomains-menu-label"))
448 - window.setTrustedDomainsAction.triggered.connect(self.openSetTrustedDomainsDialog)
449 - window.createcontrolledroomAction = window.advancedMenu.addAction(
450 -- QtGui.QPixmap(resourcespath + 'page_white_key.png'), getMessage("createcontrolledroom-menu-label"))
451 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'page_white_key.png')), getMessage("createcontrolledroom-menu-label"))
452 - window.createcontrolledroomAction.triggered.connect(self.createControlledRoom)
453 -- window.identifyascontroller = window.advancedMenu.addAction(QtGui.QPixmap(resourcespath + 'key_go.png'),
454 -+ window.identifyascontroller = window.advancedMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'key_go.png')),
455 - getMessage("identifyascontroller-menu-label"))
456 - window.identifyascontroller.triggered.connect(self.identifyAsController)
457 -
458 -@@ -1743,18 +1753,18 @@ def populateMenubar(self, window):
459 - window.helpMenu = QtWidgets.QMenu(getMessage("help-menu-label"), self)
460 -
461 - window.userguideAction = window.helpMenu.addAction(
462 -- QtGui.QPixmap(resourcespath + 'help.png'),
463 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'help.png')),
464 - getMessage("userguide-menu-label"))
465 - window.userguideAction.triggered.connect(self.openUserGuide)
466 - window.updateAction = window.helpMenu.addAction(
467 -- QtGui.QPixmap(resourcespath + 'application_get.png'),
468 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'application_get.png')),
469 - getMessage("update-menu-label"))
470 - window.updateAction.triggered.connect(self.userCheckForUpdates)
471 -
472 - if not isMacOS():
473 - window.helpMenu.addSeparator()
474 - window.about = window.helpMenu.addAction(
475 -- QtGui.QPixmap(resourcespath + 'syncplay.png'),
476 -+ QtGui.QIcon(QtGui.QPixmap(resourcespath + 'syncplay.png')),
477 - getMessage("about-menu-label"))
478 - else:
479 - window.about = window.helpMenu.addAction("&About")
480 -@@ -1835,16 +1845,16 @@ def changeAutoplayState(self, source=None):
481 - def updateReadyIcon(self):
482 - ready = self.readyPushButton.isChecked()
483 - if ready:
484 -- self.readyPushButton.setIcon(QtGui.QPixmap(resourcespath + 'tick_checkbox.png'))
485 -+ self.readyPushButton.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'tick_checkbox.png')))
486 - else:
487 -- self.readyPushButton.setIcon(QtGui.QPixmap(resourcespath + 'empty_checkbox.png'))
488 -+ self.readyPushButton.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'empty_checkbox.png')))
489 -
490 - def updateAutoPlayIcon(self):
491 - ready = self.autoplayPushButton.isChecked()
492 - if ready:
493 -- self.autoplayPushButton.setIcon(QtGui.QPixmap(resourcespath + 'tick_checkbox.png'))
494 -+ self.autoplayPushButton.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'tick_checkbox.png')))
495 - else:
496 -- self.autoplayPushButton.setIcon(QtGui.QPixmap(resourcespath + 'empty_checkbox.png'))
497 -+ self.autoplayPushButton.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'empty_checkbox.png')))
498 -
499 - def automaticUpdateCheck(self):
500 - currentDateTimeValue = QDateTime.currentDateTime()
501 -@@ -2060,7 +2070,7 @@ def __init__(self, passedBar=None):
502 - self.populateMenubar(self)
503 - self.addMainFrame(self)
504 - self.loadSettings()
505 -- self.setWindowIcon(QtGui.QPixmap(resourcespath + "syncplay.png"))
506 -+ self.setWindowIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + "syncplay.png")))
507 - self.setWindowFlags(self.windowFlags() & Qt.WindowCloseButtonHint & Qt.WindowMinimizeButtonHint & ~Qt.WindowContextHelpButtonHint)
508 - self.show()
509 - self.setAcceptDrops(True)
510 -
511
512 diff --git a/media-video/syncplay/files/syncplay-change-alignment-operator.patch b/media-video/syncplay/files/syncplay-change-alignment-operator.patch
513 new file mode 100644
514 index 00000000..15c9f67a
515 --- /dev/null
516 +++ b/media-video/syncplay/files/syncplay-change-alignment-operator.patch
517 @@ -0,0 +1,41 @@
518 +From 61584550ca734d2f3fa3b811d73f2cebd2b7f30f Mon Sep 17 00:00:00 2001
519 +From: Andrew Ammerlaan <andrewammerlaan@××××××.net>
520 +Date: Thu, 8 Oct 2020 08:37:58 +0200
521 +Subject: [PATCH] replace & with | in Alignment, visually identical
522 +
523 +---
524 + syncplay/ui/GuiConfiguration.py | 6 +++---
525 + 1 file changed, 3 insertions(+), 3 deletions(-)
526 +
527 +diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py
528 +index 96915814..e0713adf 100755
529 +--- a/syncplay/ui/GuiConfiguration.py
530 ++++ b/syncplay/ui/GuiConfiguration.py
531 +@@ -1181,7 +1181,7 @@ def addMessageTab(self):
532 +
533 + self.displaySettingsGroup = QtWidgets.QGroupBox(getMessage("messages-other-title"))
534 + self.displaySettingsLayout = QtWidgets.QVBoxLayout()
535 +- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft)
536 ++ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft)
537 + self.displaySettingsFrame = QtWidgets.QFrame()
538 +
539 + self.showDurationNotificationCheckbox = QCheckBox(getMessage("showdurationnotification-label"))
540 +@@ -1193,7 +1193,7 @@ def addMessageTab(self):
541 + self.languageLayout.setContentsMargins(0, 0, 0, 0)
542 + self.languageFrame.setLayout(self.languageLayout)
543 + self.languageFrame.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
544 +- self.languageLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft)
545 ++ self.languageLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft)
546 + self.languageLabel = QLabel(getMessage("language-label"), self)
547 + self.languageCombobox = QtWidgets.QComboBox(self)
548 + self.languageCombobox.addItem(getMessage("automatic-language").format(getMessage("LANGUAGE", getInitialLanguage())))
549 +@@ -1214,7 +1214,7 @@ def addMessageTab(self):
550 +
551 + self.displaySettingsGroup.setLayout(self.displaySettingsLayout)
552 + self.displaySettingsGroup.setMaximumHeight(self.displaySettingsGroup.minimumSizeHint().height())
553 +- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft)
554 ++ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft)
555 + self.messageLayout.addWidget(self.displaySettingsGroup)
556 +
557 + # messageFrame
558 +
559
560 diff --git a/media-video/syncplay/files/syncplay-allow-PyQt5.patch b/media-video/syncplay/files/syncplay-make-qpixmap-to-qicon-conversion-explicit.patch
561 similarity index 69%
562 copy from media-video/syncplay/files/syncplay-allow-PyQt5.patch
563 copy to media-video/syncplay/files/syncplay-make-qpixmap-to-qicon-conversion-explicit.patch
564 index 89c9de33..2ff08f7e 100644
565 --- a/media-video/syncplay/files/syncplay-allow-PyQt5.patch
566 +++ b/media-video/syncplay/files/syncplay-make-qpixmap-to-qicon-conversion-explicit.patch
567 @@ -1,135 +1,17 @@
568 -From c759525889f303195e677f9341cf325decf74809 Mon Sep 17 00:00:00 2001
569 +From b0e018d0cda148ef8dba07857fcbe8d751800992 Mon Sep 17 00:00:00 2001
570 From: Andrew Ammerlaan <andrewammerlaan@××××××.net>
571 -Date: Wed, 7 Oct 2020 13:31:46 +0200
572 -Subject: [PATCH] PyQt5 compatability
573 +Date: Thu, 8 Oct 2020 08:47:44 +0200
574 +Subject: [PATCH] make conversion from QPixmap to QIcon explicit
575
576 ---
577 - syncplay/ui/ConfigurationGetter.py | 4 +-
578 - syncplay/ui/GuiConfiguration.py | 16 ++--
579 - syncplay/ui/gui.py | 130 ++++++++++++++++-------------
580 - 3 files changed, 82 insertions(+), 68 deletions(-)
581 + syncplay/ui/gui.py | 106 ++++++++++++++++++++++-----------------------
582 + 1 file changed, 53 insertions(+), 53 deletions(-)
583
584 -diff --git a/syncplay/ui/ConfigurationGetter.py b/syncplay/ui/ConfigurationGetter.py
585 -index dd1d8ec0..6d83c650 100755
586 ---- a/syncplay/ui/ConfigurationGetter.py
587 -+++ b/syncplay/ui/ConfigurationGetter.py
588 -@@ -513,10 +513,10 @@ def getConfiguration(self):
589 - self._overrideConfigWithArgs(args)
590 - if not self._config['noGui']:
591 - try:
592 -- from syncplay.vendor.Qt import QtWidgets, IsPySide, IsPySide2
593 -+ from syncplay.vendor.Qt import QtWidgets, IsPySide, IsPySide2, IsPyQt5
594 - from syncplay.vendor.Qt.QtCore import QCoreApplication
595 - from syncplay.vendor import qt5reactor
596 -- if not (IsPySide2 or IsPySide):
597 -+ if not (IsPySide2 or IsPySide or IsPyQt5):
598 - raise ImportError
599 - if QCoreApplication.instance() is None:
600 - self.app = QtWidgets.QApplication(sys.argv)
601 -diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py
602 -index 96915814..cfe51b26 100755
603 ---- a/syncplay/ui/GuiConfiguration.py
604 -+++ b/syncplay/ui/GuiConfiguration.py
605 -@@ -11,7 +11,7 @@
606 - from syncplay.utils import isBSD, isLinux, isMacOS, isWindows
607 - from syncplay.utils import resourcespath, posixresourcespath
608 -
609 --from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, IsPySide, IsPySide2
610 -+from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, IsPySide, IsPySide2, IsPyQt5
611 - from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine, QEventLoop, Signal
612 - from syncplay.vendor.Qt.QtWidgets import QApplication, QLineEdit, QLabel, QCheckBox, QButtonGroup, QRadioButton, QDoubleSpinBox, QPlainTextEdit
613 - from syncplay.vendor.Qt.QtGui import QCursor, QIcon, QImage, QDesktopServices
614 -@@ -21,6 +21,8 @@
615 - QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
616 - if IsPySide2:
617 - from PySide2.QtCore import QStandardPaths
618 -+elif IsPyQt5:
619 -+ from PyQt5.QtCore import QStandardPaths
620 -
621 -
622 - class GuiConfiguration:
623 -@@ -445,7 +447,7 @@ def browseMediapath(self):
624 - defaultdirectory = QDesktopServices.storageLocation(QDesktopServices.HomeLocation)
625 - else:
626 - defaultdirectory = ""
627 -- elif IsPySide2:
628 -+ elif IsPySide2 or IsPyQt5:
629 - if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]):
630 - defaultdirectory = self.config["mediaSearchDirectories"][0]
631 - elif os.path.isdir(self.mediadirectory):
632 -@@ -1181,7 +1183,7 @@ def addMessageTab(self):
633 -
634 - self.displaySettingsGroup = QtWidgets.QGroupBox(getMessage("messages-other-title"))
635 - self.displaySettingsLayout = QtWidgets.QVBoxLayout()
636 -- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft)
637 -+ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft)
638 - self.displaySettingsFrame = QtWidgets.QFrame()
639 -
640 - self.showDurationNotificationCheckbox = QCheckBox(getMessage("showdurationnotification-label"))
641 -@@ -1193,7 +1195,7 @@ def addMessageTab(self):
642 - self.languageLayout.setContentsMargins(0, 0, 0, 0)
643 - self.languageFrame.setLayout(self.languageLayout)
644 - self.languageFrame.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
645 -- self.languageLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft)
646 -+ self.languageLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft)
647 - self.languageLabel = QLabel(getMessage("language-label"), self)
648 - self.languageCombobox = QtWidgets.QComboBox(self)
649 - self.languageCombobox.addItem(getMessage("automatic-language").format(getMessage("LANGUAGE", getInitialLanguage())))
650 -@@ -1214,7 +1216,7 @@ def addMessageTab(self):
651 -
652 - self.displaySettingsGroup.setLayout(self.displaySettingsLayout)
653 - self.displaySettingsGroup.setMaximumHeight(self.displaySettingsGroup.minimumSizeHint().height())
654 -- self.displaySettingsLayout.setAlignment(Qt.AlignTop & Qt.AlignLeft)
655 -+ self.displaySettingsLayout.setAlignment(Qt.AlignTop | Qt.AlignLeft)
656 - self.messageLayout.addWidget(self.displaySettingsGroup)
657 -
658 - # messageFrame
659 -@@ -1394,7 +1396,9 @@ def __init__(self, config, playerpaths, error, defaultConfig):
660 - self.publicServerAddresses = []
661 -
662 - self._playerProbeThread = GetPlayerIconThread()
663 -- self._playerProbeThread.done.connect(self._updateExecutableIcon)
664 -+ # To-Do: Why does this not work with PyQt5
665 -+ if not IsPyQt5:
666 -+ self._playerProbeThread.done.connect(self._updateExecutableIcon)
667 - self._playerProbeThread.start()
668 -
669 - if self.config['clearGUIData'] == True:
670 diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py
671 -index c59c5697..a8fe427d 100755
672 +index c59c5697..2a4bd1a5 100755
673 --- a/syncplay/ui/gui.py
674 +++ b/syncplay/ui/gui.py
675 -@@ -18,8 +18,7 @@
676 - from syncplay.utils import resourcespath
677 - from syncplay.utils import isLinux, isWindows, isMacOS
678 - from syncplay.utils import formatTime, sameFilename, sameFilesize, sameFileduration, RoomPasswordProvider, formatSize, isURL
679 --from syncplay.vendor import Qt
680 --from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, __binding_version__, __qt_version__, IsPySide, IsPySide2
681 -+from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, __binding_version__, __qt_version__, IsPySide, IsPySide2, IsPyQt5
682 - from syncplay.vendor.Qt.QtCore import Qt, QSettings, QSize, QPoint, QUrl, QLine, QDateTime
683 - applyDPIScaling = True
684 - if isLinux():
685 -@@ -32,15 +31,17 @@
686 - QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, applyDPIScaling)
687 - if IsPySide2:
688 - from PySide2.QtCore import QStandardPaths
689 -+elif IsPyQt5:
690 -+ from PyQt5.QtCore import QStandardPaths
691 - if isMacOS() and IsPySide:
692 - from Foundation import NSURL
693 - from Cocoa import NSString, NSUTF8StringEncoding
694 - lastCheckedForUpdates = None
695 - from syncplay.vendor import darkdetect
696 - if isMacOS():
697 -- isDarkMode = darkdetect.isDark()
698 -+ isDarkMode = darkdetect.isDark()
699 - else:
700 -- isDarkMode = None
701 -+ isDarkMode = None
702 -
703 -
704 - class ConsoleInGUI(ConsoleUI):
705 -@@ -139,7 +140,7 @@ def __init__(self, parent=None):
706 +@@ -139,7 +139,7 @@ def __init__(self, parent=None):
707 self.setWindowTitle(getMessage("about-dialog-title"))
708 if isWindows():
709 self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
710 @@ -138,7 +20,7 @@ index c59c5697..a8fe427d 100755
711 nameLabel = QtWidgets.QLabel("<center><strong>Syncplay</strong></center>")
712 nameLabel.setFont(QtGui.QFont("Helvetica", 18))
713 linkLabel = QtWidgets.QLabel()
714 -@@ -202,7 +203,7 @@ def __init__(self, tlsData, parent=None):
715 +@@ -202,7 +202,7 @@ def __init__(self, tlsData, parent=None):
716 self.setWindowTitle(getMessage("tls-information-title"))
717 if isWindows():
718 self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
719 @@ -147,23 +29,7 @@ index c59c5697..a8fe427d 100755
720 statusLabel = QtWidgets.QLabel(getMessage("tls-dialog-status-label").format(tlsData["subject"]))
721 descLabel = QtWidgets.QLabel(getMessage("tls-dialog-desc-label").format(tlsData["subject"]))
722 connDataLabel = QtWidgets.QLabel(getMessage("tls-dialog-connection-label").format(tlsData["protocolVersion"], tlsData["cipher"]))
723 -@@ -454,6 +455,15 @@ def mouseMoveEvent(self, event):
724 - def needsClient(f): # @NoSelf
725 - @wraps(f)
726 - def wrapper(self, *args, **kwds):
727 -+ # To-Do: For some strange reason the args tumple contains False
728 -+ # for some functions, resulting in a crash as the function only accepts
729 -+ # one argument (self). I do not understand where this 'False' is coming
730 -+ # from, it does not seem to be added when the function is called.
731 -+ # This very ugly workaround fixes the problem
732 -+ if IsPyQt5:
733 -+ if len(args)>0:
734 -+ if not args[0]:
735 -+ args = ()
736 - if not self._syncplayClient:
737 - self.showDebugMessage("Tried to use client before it was ready!")
738 - return
739 -@@ -614,11 +624,11 @@ def showUserList(self, currentUser, rooms):
740 +@@ -614,11 +614,11 @@ def showUserList(self, currentUser, rooms):
741
742 if isControlledRoom:
743 if room == currentUser.room and currentUser.isController():
744 @@ -178,7 +44,7 @@ index c59c5697..a8fe427d 100755
745
746 for user in rooms[room]:
747 useritem = QtGui.QStandardItem(user.username)
748 -@@ -719,31 +729,31 @@ def openPlaylistMenu(self, position):
749 +@@ -719,31 +719,31 @@ def openPlaylistMenu(self, position):
750 pathFound = self._syncplayClient.fileSwitch.findFilepath(firstFile) if not isURL(firstFile) else None
751 if self._syncplayClient.userlist.currentUser.file is None or firstFile != self._syncplayClient.userlist.currentUser.file["name"]:
752 if isURL(firstFile):
753 @@ -223,7 +89,7 @@ index c59c5697..a8fe427d 100755
754 menu.exec_(self.playlist.viewport().mapToGlobal(position))
755
756 def openRoomMenu(self, position):
757 -@@ -778,25 +788,25 @@ def openRoomMenu(self, position):
758 +@@ -778,25 +778,25 @@ def openRoomMenu(self, position):
759 elif username and filename and filename != getMessage("nofile-note"):
760 if self.config['sharedPlaylistEnabled'] and not self.isItemInPlaylist(filename):
761 if isURL(filename):
762 @@ -255,34 +121,7 @@ index c59c5697..a8fe427d 100755
763 else:
764 return
765 menu.exec_(self.listTreeView.viewport().mapToGlobal(position))
766 -@@ -808,7 +818,7 @@ def updateListGeometry(self):
767 - self.listTreeView.setFirstColumnSpanned(roomtocheck, self.listTreeView.rootIndex(), True)
768 - roomtocheck += 1
769 - self.listTreeView.header().setStretchLastSection(False)
770 -- if IsPySide2:
771 -+ if IsPySide2 or IsPyQt5:
772 - self.listTreeView.header().setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents)
773 - self.listTreeView.header().setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents)
774 - self.listTreeView.header().setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)
775 -@@ -822,7 +832,7 @@ def updateListGeometry(self):
776 - if self.listTreeView.header().width() < (NarrowTabsWidth+self.listTreeView.header().sectionSize(3)):
777 - self.listTreeView.header().resizeSection(3, self.listTreeView.header().width()-NarrowTabsWidth)
778 - else:
779 -- if IsPySide2:
780 -+ if IsPySide2 or IsPyQt5:
781 - self.listTreeView.header().setSectionResizeMode(3, QtWidgets.QHeaderView.Stretch)
782 - if IsPySide:
783 - self.listTreeView.header().setResizeMode(3, QtWidgets.QHeaderView.Stretch)
784 -@@ -1003,7 +1013,7 @@ def getInitialMediaDirectory(self, includeUserSpecifiedDirectories=True):
785 - defaultdirectory = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.HomeLocation)
786 - else:
787 - defaultdirectory = ""
788 -- elif IsPySide2:
789 -+ elif IsPySide2 or IsPyQt5:
790 - if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]) and includeUserSpecifiedDirectories:
791 - defaultdirectory = self.config["mediaSearchDirectories"][0]
792 - elif includeUserSpecifiedDirectories and os.path.isdir(self.mediadirectory):
793 -@@ -1410,7 +1420,7 @@ def addTopLayout(self, window):
794 +@@ -1410,7 +1410,7 @@ def addTopLayout(self, window):
795 window.chatInput.setMaxLength(constants.MAX_CHAT_MESSAGE_LENGTH)
796 window.chatInput.returnPressed.connect(self.sendChatMessage)
797 window.chatButton = QtWidgets.QPushButton(
798 @@ -291,7 +130,7 @@ index c59c5697..a8fe427d 100755
799 getMessage("sendmessage-label"))
800 window.chatButton.pressed.connect(self.sendChatMessage)
801 window.chatLayout = QtWidgets.QHBoxLayout()
802 -@@ -1445,7 +1455,7 @@ def addTopLayout(self, window):
803 +@@ -1445,7 +1445,7 @@ def addTopLayout(self, window):
804 window.listlabel = QtWidgets.QLabel(getMessage("userlist-heading-label"))
805 if isMacOS:
806 window.listlabel.setMinimumHeight(21)
807 @@ -300,7 +139,7 @@ index c59c5697..a8fe427d 100755
808 window.sslButton.setVisible(False)
809 window.sslButton.setFixedHeight(21)
810 window.sslButton.setFixedWidth(21)
811 -@@ -1453,7 +1463,7 @@ def addTopLayout(self, window):
812 +@@ -1453,7 +1453,7 @@ def addTopLayout(self, window):
813 window.sslButton.setStyleSheet("QPushButton:!hover{border: 1px solid gray;} QPushButton:hover{border:2px solid black;}")
814 else:
815 window.listlabel.setMinimumHeight(27)
816 @@ -309,7 +148,7 @@ index c59c5697..a8fe427d 100755
817 window.sslButton.setVisible(False)
818 window.sslButton.setFixedHeight(27)
819 window.sslButton.setFixedWidth(27)
820 -@@ -1485,7 +1495,7 @@ def addTopLayout(self, window):
821 +@@ -1485,7 +1485,7 @@ def addTopLayout(self, window):
822 window.roomsCombobox.setEditable(True)
823 #window.roomsCombobox.setMaxLength(constants.MAX_ROOM_NAME_LENGTH)
824 window.roomButton = QtWidgets.QPushButton(
825 @@ -318,7 +157,7 @@ index c59c5697..a8fe427d 100755
826 getMessage("joinroom-label"))
827 window.roomButton.pressed.connect(self.joinRoom)
828 window.roomButton.setFixedWidth(window.roomButton.sizeHint().width()+3)
829 -@@ -1620,24 +1630,24 @@ def addPlaybackLayout(self, window):
830 +@@ -1620,24 +1620,24 @@ def addPlaybackLayout(self, window):
831 window.playbackFrame.setLayout(window.playbackLayout)
832 window.seekInput = QtWidgets.QLineEdit()
833 window.seekInput.returnPressed.connect(self.seekFromButton)
834 @@ -347,7 +186,7 @@ index c59c5697..a8fe427d 100755
835 window.pauseButton.setToolTip(getMessage("pause-menu-label"))
836 window.pauseButton.pressed.connect(self.pause)
837 window.playbackLayout.addWidget(window.pauseButton)
838 -@@ -1657,13 +1667,13 @@ def populateMenubar(self, window):
839 +@@ -1657,13 +1657,13 @@ def populateMenubar(self, window):
840 # File menu
841
842 window.fileMenu = QtWidgets.QMenu(getMessage("file-menu-label"), self)
843 @@ -364,7 +203,7 @@ index c59c5697..a8fe427d 100755
844 getMessage("setmediadirectories-menu-label"))
845 window.openAction.triggered.connect(self.openSetMediaDirectoriesDialog)
846
847 -@@ -1671,7 +1681,7 @@ def populateMenubar(self, window):
848 +@@ -1671,7 +1671,7 @@ def populateMenubar(self, window):
849 if isMacOS():
850 window.exitAction.setMenuRole(QtWidgets.QAction.QuitRole)
851 else:
852 @@ -373,7 +212,7 @@ index c59c5697..a8fe427d 100755
853 window.exitAction.triggered.connect(self.exitSyncplay)
854
855 if(window.editMenu is not None):
856 -@@ -1683,19 +1693,19 @@ def populateMenubar(self, window):
857 +@@ -1683,19 +1683,19 @@ def populateMenubar(self, window):
858
859 window.playbackMenu = QtWidgets.QMenu(getMessage("playback-menu-label"), self)
860 window.playAction = window.playbackMenu.addAction(
861 @@ -397,7 +236,7 @@ index c59c5697..a8fe427d 100755
862 getMessage("undoseek-menu-label"))
863 window.unseekAction.triggered.connect(self.undoSeek)
864
865 -@@ -1705,17 +1715,17 @@ def populateMenubar(self, window):
866 +@@ -1705,17 +1705,17 @@ def populateMenubar(self, window):
867
868 window.advancedMenu = QtWidgets.QMenu(getMessage("advanced-menu-label"), self)
869 window.setoffsetAction = window.advancedMenu.addAction(
870 @@ -419,7 +258,16 @@ index c59c5697..a8fe427d 100755
871 getMessage("identifyascontroller-menu-label"))
872 window.identifyascontroller.triggered.connect(self.identifyAsController)
873
874 -@@ -1743,18 +1753,18 @@ def populateMenubar(self, window):
875 +@@ -1725,7 +1725,7 @@ def populateMenubar(self, window):
876 +
877 + window.windowMenu = QtWidgets.QMenu(getMessage("window-menu-label"), self)
878 +
879 +- window.editroomsAction = window.windowMenu.addAction(QtGui.QPixmap(resourcespath + 'door_open_edit.png'), getMessage("roomlist-msgbox-label"))
880 ++ window.editroomsAction = window.windowMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'door_open_edit.png')), getMessage("roomlist-msgbox-label"))
881 + window.editroomsAction.triggered.connect(self.openEditRoomsDialog)
882 + window.menuBar.addMenu(window.windowMenu)
883 +
884 +@@ -1743,18 +1743,18 @@ def populateMenubar(self, window):
885 window.helpMenu = QtWidgets.QMenu(getMessage("help-menu-label"), self)
886
887 window.userguideAction = window.helpMenu.addAction(
888 @@ -441,7 +289,7 @@ index c59c5697..a8fe427d 100755
889 getMessage("about-menu-label"))
890 else:
891 window.about = window.helpMenu.addAction("&About")
892 -@@ -1835,16 +1845,16 @@ def changeAutoplayState(self, source=None):
893 +@@ -1835,16 +1835,16 @@ def changeAutoplayState(self, source=None):
894 def updateReadyIcon(self):
895 ready = self.readyPushButton.isChecked()
896 if ready:
897 @@ -462,7 +310,7 @@ index c59c5697..a8fe427d 100755
898
899 def automaticUpdateCheck(self):
900 currentDateTimeValue = QDateTime.currentDateTime()
901 -@@ -2060,7 +2070,7 @@ def __init__(self, passedBar=None):
902 +@@ -2060,7 +2060,7 @@ def __init__(self, passedBar=None):
903 self.populateMenubar(self)
904 self.addMainFrame(self)
905 self.loadSettings()
906
907 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
908 new file mode 100644
909 index 00000000..822b21b8
910 --- /dev/null
911 +++ b/media-video/syncplay/files/syncplay-use-lambda-to-connect-behind-wrapper.patch
912 @@ -0,0 +1,168 @@
913 +From f880d4773238a31ac7046ff290910a4ff4920d53 Mon Sep 17 00:00:00 2001
914 +From: Andrew Ammerlaan <andrewammerlaan@××××××.net>
915 +Date: Thu, 8 Oct 2020 11:41:41 +0200
916 +Subject: [PATCH] use lambda when connect() to function with @wrapper
917 +
918 +---
919 + syncplay/ui/GuiConfiguration.py | 2 +-
920 + syncplay/ui/gui.py | 40 ++++++++++++++++-----------------
921 + 2 files changed, 21 insertions(+), 21 deletions(-)
922 +
923 +diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py
924 +index e0713adf..9ce6a429 100755
925 +--- a/syncplay/ui/GuiConfiguration.py
926 ++++ b/syncplay/ui/GuiConfiguration.py
927 +@@ -1394,7 +1394,7 @@ def __init__(self, config, playerpaths, error, defaultConfig):
928 + self.publicServerAddresses = []
929 +
930 + self._playerProbeThread = GetPlayerIconThread()
931 +- self._playerProbeThread.done.connect(self._updateExecutableIcon)
932 ++ self._playerProbeThread.done.connect(lambda iconpath, playerpath: self._updateExecutableIcon(iconpath, playerpath))
933 + self._playerProbeThread.start()
934 +
935 + if self.config['clearGUIData'] == True:
936 +diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py
937 +index 2a4bd1a5..b7a9a9f0 100755
938 +--- a/syncplay/ui/gui.py
939 ++++ b/syncplay/ui/gui.py
940 +@@ -1457,7 +1457,7 @@ def addTopLayout(self, window):
941 + window.sslButton.setVisible(False)
942 + window.sslButton.setFixedHeight(27)
943 + window.sslButton.setFixedWidth(27)
944 +- window.sslButton.pressed.connect(self.openSSLDetails)
945 ++ window.sslButton.pressed.connect(lambda: self.openSSLDetails())
946 + window.sslButton.setToolTip(getMessage("sslconnection-tooltip"))
947 + window.listFrame = QtWidgets.QFrame()
948 + window.listFrame.setLineWidth(0)
949 +@@ -1487,7 +1487,7 @@ def addTopLayout(self, window):
950 + window.roomButton = QtWidgets.QPushButton(
951 + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'door_in.png')),
952 + getMessage("joinroom-label"))
953 +- window.roomButton.pressed.connect(self.joinRoom)
954 ++ window.roomButton.pressed.connect(lambda room=None: self.joinRoom(room))
955 + window.roomButton.setFixedWidth(window.roomButton.sizeHint().width()+3)
956 + window.roomLayout = QtWidgets.QHBoxLayout()
957 + window.roomFrame = QtWidgets.QFrame()
958 +@@ -1539,10 +1539,10 @@ def addBottomLayout(self, window):
959 + window.playlist.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
960 + window.playlist.setDefaultDropAction(Qt.MoveAction)
961 + window.playlist.setDragDropMode(QtWidgets.QAbstractItemView.InternalMove)
962 +- window.playlist.doubleClicked.connect(self.playlistItemClicked)
963 ++ window.playlist.doubleClicked.connect(lambda item: self.playlistItemClicked(item))
964 + window.playlist.setContextMenuPolicy(Qt.CustomContextMenu)
965 + window.playlist.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
966 +- window.playlist.customContextMenuRequested.connect(self.openPlaylistMenu)
967 ++ window.playlist.customContextMenuRequested.connect(lambda position: self.openPlaylistMenu(position))
968 + self.playlistUpdateTimer = task.LoopingCall(self.playlistChangeCheck)
969 + self.playlistUpdateTimer.start(0.1, True)
970 + noteFont = QtGui.QFont()
971 +@@ -1579,7 +1579,7 @@ def addBottomLayout(self, window):
972 + window.autoplayPushButton.setText(getMessage("autoplay-guipushbuttonlabel"))
973 + window.autoplayPushButton.setCheckable(True)
974 + window.autoplayPushButton.setAutoExclusive(False)
975 +- window.autoplayPushButton.toggled.connect(self.changeAutoplayState)
976 ++ window.autoplayPushButton.toggled.connect(lambda source=None: self.changeAutoplayState(source))
977 + window.autoplayPushButton.setFont(autoPlayFont)
978 + if isMacOS():
979 + window.autoplayFrame.setMinimumWidth(window.listFrame.sizeHint().width())
980 +@@ -1600,7 +1600,7 @@ def addBottomLayout(self, window):
981 + window.autoplayThresholdSpinbox.setMinimum(2)
982 + window.autoplayThresholdSpinbox.setMaximum(99)
983 + window.autoplayThresholdSpinbox.setToolTip(getMessage("autoplay-tooltip"))
984 +- window.autoplayThresholdSpinbox.valueChanged.connect(self.changeAutoplayThreshold)
985 ++ window.autoplayThresholdSpinbox.valueChanged.connect(lambda source=None: self.changeAutoplayThreshold(source))
986 + window.autoplayLayout.addWidget(window.autoplayPushButton, Qt.AlignRight)
987 + window.autoplayLayout.addWidget(window.autoplayLabel, Qt.AlignRight)
988 + window.autoplayLayout.addWidget(window.autoplayThresholdSpinbox, Qt.AlignRight)
989 +@@ -1629,17 +1629,17 @@ def addPlaybackLayout(self, window):
990 + window.playbackLayout.addWidget(window.seekButton)
991 + window.unseekButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'arrow_undo.png')), "")
992 + window.unseekButton.setToolTip(getMessage("undoseek-menu-label"))
993 +- window.unseekButton.pressed.connect(self.undoSeek)
994 ++ window.unseekButton.pressed.connect(lambda: self.undoSeek())
995 +
996 + window.miscLayout = QtWidgets.QHBoxLayout()
997 + window.playbackLayout.addWidget(window.unseekButton)
998 + window.playButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_play_blue.png')), "")
999 + window.playButton.setToolTip(getMessage("play-menu-label"))
1000 +- window.playButton.pressed.connect(self.play)
1001 ++ window.playButton.pressed.connect(lambda: self.play())
1002 + window.playbackLayout.addWidget(window.playButton)
1003 + window.pauseButton = QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_pause_blue.png')), "")
1004 + window.pauseButton.setToolTip(getMessage("pause-menu-label"))
1005 +- window.pauseButton.pressed.connect(self.pause)
1006 ++ window.pauseButton.pressed.connect(lambda: self.pause())
1007 + window.playbackLayout.addWidget(window.pauseButton)
1008 + window.playbackFrame.setMaximumHeight(window.playbackFrame.sizeHint().height())
1009 + window.playbackFrame.setMaximumWidth(window.playbackFrame.sizeHint().width())
1010 +@@ -1659,20 +1659,20 @@ def populateMenubar(self, window):
1011 + window.fileMenu = QtWidgets.QMenu(getMessage("file-menu-label"), self)
1012 + window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'folder_explore.png')),
1013 + getMessage("openmedia-menu-label"))
1014 +- window.openAction.triggered.connect(self.browseMediapath)
1015 ++ window.openAction.triggered.connect(lambda: self.browseMediapath())
1016 + window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'world_explore.png')),
1017 + getMessage("openstreamurl-menu-label"))
1018 +- window.openAction.triggered.connect(self.promptForStreamURL)
1019 ++ window.openAction.triggered.connect(lambda: self.promptForStreamURL())
1020 + window.openAction = window.fileMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'film_folder_edit.png')),
1021 + getMessage("setmediadirectories-menu-label"))
1022 +- window.openAction.triggered.connect(self.openSetMediaDirectoriesDialog)
1023 ++ window.openAction.triggered.connect(lambda: self.openSetMediaDirectoriesDialog())
1024 +
1025 + window.exitAction = window.fileMenu.addAction(getMessage("exit-menu-label"))
1026 + if isMacOS():
1027 + window.exitAction.setMenuRole(QtWidgets.QAction.QuitRole)
1028 + else:
1029 + window.exitAction.setIcon(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'cross.png')))
1030 +- window.exitAction.triggered.connect(self.exitSyncplay)
1031 ++ window.exitAction.triggered.connect(lambda: self.exitSyncplay())
1032 +
1033 + if(window.editMenu is not None):
1034 + window.menuBar.insertMenu(window.editMenu.menuAction(), window.fileMenu)
1035 +@@ -1685,11 +1685,11 @@ def populateMenubar(self, window):
1036 + window.playAction = window.playbackMenu.addAction(
1037 + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_play_blue.png')),
1038 + getMessage("play-menu-label"))
1039 +- window.playAction.triggered.connect(self.play)
1040 ++ window.playAction.triggered.connect(lambda: self.play())
1041 + window.pauseAction = window.playbackMenu.addAction(
1042 + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'control_pause_blue.png')),
1043 + getMessage("pause-menu-label"))
1044 +- window.pauseAction.triggered.connect(self.pause)
1045 ++ window.pauseAction.triggered.connect(lambda: self.pause())
1046 + window.seekAction = window.playbackMenu.addAction(
1047 + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'clock_go.png')),
1048 + getMessage("seektime-menu-label"))
1049 +@@ -1697,7 +1697,7 @@ def populateMenubar(self, window):
1050 + window.unseekAction = window.playbackMenu.addAction(
1051 + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'arrow_undo.png')),
1052 + getMessage("undoseek-menu-label"))
1053 +- window.unseekAction.triggered.connect(self.undoSeek)
1054 ++ window.unseekAction.triggered.connect(lambda: self.undoSeek())
1055 +
1056 + window.menuBar.addMenu(window.playbackMenu)
1057 +
1058 +@@ -1707,17 +1707,17 @@ def populateMenubar(self, window):
1059 + window.setoffsetAction = window.advancedMenu.addAction(
1060 + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'timeline_marker.png')),
1061 + getMessage("setoffset-menu-label"))
1062 +- window.setoffsetAction.triggered.connect(self.setOffset)
1063 ++ window.setoffsetAction.triggered.connect(lambda: self.setOffset())
1064 + window.setTrustedDomainsAction = window.advancedMenu.addAction(
1065 + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'shield_edit.png')),
1066 + getMessage("settrusteddomains-menu-label"))
1067 +- window.setTrustedDomainsAction.triggered.connect(self.openSetTrustedDomainsDialog)
1068 ++ window.setTrustedDomainsAction.triggered.connect(lambda: self.openSetTrustedDomainsDialog())
1069 + window.createcontrolledroomAction = window.advancedMenu.addAction(
1070 + QtGui.QIcon(QtGui.QPixmap(resourcespath + 'page_white_key.png')), getMessage("createcontrolledroom-menu-label"))
1071 +- window.createcontrolledroomAction.triggered.connect(self.createControlledRoom)
1072 ++ window.createcontrolledroomAction.triggered.connect(lambda: self.createControlledRoom())
1073 + window.identifyascontroller = window.advancedMenu.addAction(QtGui.QIcon(QtGui.QPixmap(resourcespath + 'key_go.png')),
1074 + getMessage("identifyascontroller-menu-label"))
1075 +- window.identifyascontroller.triggered.connect(self.identifyAsController)
1076 ++ window.identifyascontroller.triggered.connect(lambda: self.identifyAsController())
1077 +
1078 + window.menuBar.addMenu(window.advancedMenu)
1079 +
1080 +
1081
1082 diff --git a/media-video/syncplay/metadata.xml b/media-video/syncplay/metadata.xml
1083 index af8b590f..ed27ca4d 100644
1084 --- a/media-video/syncplay/metadata.xml
1085 +++ b/media-video/syncplay/metadata.xml
1086 @@ -9,8 +9,5 @@
1087 <use>
1088 <flag name="client">Install the Syncplay client</flag>
1089 <flag name="server">Install the Syncplay server</flag>
1090 - <flag name="vlc">Pull in VLC with the lua flag</flag>
1091 - <flag name="mpv">Pull in MPV with the lua flag</flag>
1092 - <flag name="mplayer">Pull in MPlayer</flag>
1093 </use>
1094 </pkgmetadata>
1095
1096 diff --git a/media-video/syncplay/syncplay-1.6.5-r1.ebuild b/media-video/syncplay/syncplay-1.6.6_beta1.ebuild
1097 similarity index 65%
1098 rename from media-video/syncplay/syncplay-1.6.5-r1.ebuild
1099 rename to media-video/syncplay/syncplay-1.6.6_beta1.ebuild
1100 index 7f1ad024..30712b36 100644
1101 --- a/media-video/syncplay/syncplay-1.6.5-r1.ebuild
1102 +++ b/media-video/syncplay/syncplay-1.6.6_beta1.ebuild
1103 @@ -8,32 +8,39 @@ DISTUTILS_USE_SETUPTOOLS=rdepend
1104
1105 inherit distutils-r1 optfeature xdg
1106
1107 +MYPV="${PV/_beta/-Beta}"
1108 +
1109 DESCRIPTION="Client/server to synchronize media playback"
1110 HOMEPAGE="https://github.com/Syncplay/syncplay https://syncplay.pl"
1111 -SRC_URI="https://github.com/${PN^}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
1112 +SRC_URI="https://github.com/${PN^}/${PN}/archive/${MYPV}.tar.gz -> ${P}.tar.gz"
1113
1114 LICENSE="Apache-2.0"
1115 SLOT="0"
1116 KEYWORDS="~amd64 ~x86"
1117
1118 -IUSE="+client +server vlc mpv mplayer"
1119 -REQUIRED_USE="
1120 - vlc? ( client )
1121 - mpv? ( client )
1122 - mplayer? ( client )
1123 - client? ( || ( vlc mpv mplayer ) )
1124 -"
1125 +IUSE="+client +server"
1126
1127 RDEPEND="
1128 dev-python/certifi[${PYTHON_USEDEP}]
1129 dev-python/twisted[${PYTHON_USEDEP}]
1130 - vlc? ( media-video/vlc[lua] )
1131 - mpv? ( media-video/mpv[lua] )
1132 - mplayer? ( media-video/mplayer )
1133 - client? ( dev-python/QtPy[${PYTHON_USEDEP},gui] )
1134 + client? (
1135 + dev-python/QtPy[${PYTHON_USEDEP},gui]
1136 + || (
1137 + media-video/vlc[lua]
1138 + media-video/mpv[lua]
1139 + media-video/mplayer
1140 + )
1141 + )
1142 "
1143
1144 -PATCHES=( "${FILESDIR}/${PN}-allow-PyQt5.patch" )
1145 +PATCHES=(
1146 + "${FILESDIR}/${PN}-change-alignment-operator.patch"
1147 + "${FILESDIR}/${PN}-make-qpixmap-to-qicon-conversion-explicit.patch"
1148 + "${FILESDIR}/${PN}-use-lambda-to-connect-behind-wrapper.patch"
1149 + "${FILESDIR}/${PN}-allow-PyQt5.patch"
1150 +)
1151 +
1152 +S="${WORKDIR}/${PN}-${MYPV}"
1153
1154 python_install() {
1155 local MY_MAKEOPTS=( DESTDIR="${D}" PREFIX=/usr )
1156 @@ -51,7 +58,7 @@ pkg_postinst() {
1157 xdg_pkg_postinst
1158
1159 if use client; then
1160 - elog "Syncplay supports the following players:"
1161 + elog "Syncplay supports the following media players:"
1162 elog "media-video/mpv, media-video/mplayer, media-video/vlc\n"
1163 optfeature "using Syncplay with VLC" media-video/vlc[lua]
1164 optfeature "using Syncplay with MPV" media-video/mpv[lua]