media-video/syncplay: new package, add 9999
This commit is contained in:
parent
7b26089837
commit
9bd8a03950
88
media-video/syncplay/files/syncplay-allow-PyQt5.patch
Normal file
88
media-video/syncplay/files/syncplay-allow-PyQt5.patch
Normal file
|
@ -0,0 +1,88 @@
|
|||
diff --git a/syncplay/ui/ConfigurationGetter.py b/syncplay/ui/ConfigurationGetter.py
|
||||
index dd1d8ec..6d83c65 100755
|
||||
--- a/syncplay/ui/ConfigurationGetter.py
|
||||
+++ b/syncplay/ui/ConfigurationGetter.py
|
||||
@@ -513,10 +513,10 @@ class ConfigurationGetter(object):
|
||||
self._overrideConfigWithArgs(args)
|
||||
if not self._config['noGui']:
|
||||
try:
|
||||
- from syncplay.vendor.Qt import QtWidgets, IsPySide, IsPySide2
|
||||
+ from syncplay.vendor.Qt import QtWidgets, IsPySide, IsPySide2, IsPyQt5
|
||||
from syncplay.vendor.Qt.QtCore import QCoreApplication
|
||||
from syncplay.vendor import qt5reactor
|
||||
- if not (IsPySide2 or IsPySide):
|
||||
+ if not (IsPySide2 or IsPySide or IsPyQt5):
|
||||
raise ImportError
|
||||
if QCoreApplication.instance() is None:
|
||||
self.app = QtWidgets.QApplication(sys.argv)
|
||||
diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py
|
||||
index 9ce6a42..1ad5bd7 100755
|
||||
--- a/syncplay/ui/GuiConfiguration.py
|
||||
+++ b/syncplay/ui/GuiConfiguration.py
|
||||
@@ -11,7 +11,7 @@ from syncplay.players.playerFactory import PlayerFactory
|
||||
from syncplay.utils import isBSD, isLinux, isMacOS, isWindows
|
||||
from syncplay.utils import resourcespath, posixresourcespath
|
||||
|
||||
-from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, IsPySide, IsPySide2
|
||||
+from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, IsPySide, IsPySide2, IsPyQt5
|
||||
from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine, QEventLoop, Signal
|
||||
from syncplay.vendor.Qt.QtWidgets import QApplication, QLineEdit, QLabel, QCheckBox, QButtonGroup, QRadioButton, QDoubleSpinBox, QPlainTextEdit
|
||||
from syncplay.vendor.Qt.QtGui import QCursor, QIcon, QImage, QDesktopServices
|
||||
@@ -445,7 +445,7 @@ class ConfigDialog(QtWidgets.QDialog):
|
||||
defaultdirectory = QDesktopServices.storageLocation(QDesktopServices.HomeLocation)
|
||||
else:
|
||||
defaultdirectory = ""
|
||||
- elif IsPySide2:
|
||||
+ elif IsPySide2 or IsPyQt5:
|
||||
if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]):
|
||||
defaultdirectory = self.config["mediaSearchDirectories"][0]
|
||||
elif os.path.isdir(self.mediadirectory):
|
||||
diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py
|
||||
index b7a9a9f..d2ad6e5 100755
|
||||
--- a/syncplay/ui/gui.py
|
||||
+++ b/syncplay/ui/gui.py
|
||||
@@ -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.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,6 +32,8 @@ if hasattr(QtCore.Qt, 'AA_UseHighDpiPixmaps'):
|
||||
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, applyDPIScaling)
|
||||
if IsPySide2:
|
||||
from PySide2.QtCore import QStandardPaths
|
||||
+if IsPyQt5:
|
||||
+ from PyQt5.QtCore import QStandardPaths
|
||||
if isMacOS() and IsPySide:
|
||||
from Foundation import NSURL
|
||||
from Cocoa import NSString, NSUTF8StringEncoding
|
||||
@@ -808,7 +810,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.listTreeView.setFirstColumnSpanned(roomtocheck, self.listTreeView.rootIndex(), True)
|
||||
roomtocheck += 1
|
||||
self.listTreeView.header().setStretchLastSection(False)
|
||||
- if IsPySide2:
|
||||
+ if IsPySide2 or IsPyQt5:
|
||||
self.listTreeView.header().setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents)
|
||||
self.listTreeView.header().setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents)
|
||||
self.listTreeView.header().setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)
|
||||
@@ -822,7 +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:
|
||||
- if IsPySide2:
|
||||
+ if IsPySide2 or IsPyQt5:
|
||||
self.listTreeView.header().setSectionResizeMode(3, QtWidgets.QHeaderView.Stretch)
|
||||
if IsPySide:
|
||||
self.listTreeView.header().setResizeMode(3, QtWidgets.QHeaderView.Stretch)
|
||||
@@ -1003,7 +1005,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
defaultdirectory = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.HomeLocation)
|
||||
else:
|
||||
defaultdirectory = ""
|
||||
- elif IsPySide2:
|
||||
+ elif IsPySide2 or IsPyQt5:
|
||||
if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]) and includeUserSpecifiedDirectories:
|
||||
defaultdirectory = self.config["mediaSearchDirectories"][0]
|
||||
elif includeUserSpecifiedDirectories and os.path.isdir(self.mediadirectory):
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
|
|
@ -0,0 +1,150 @@
|
|||
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("<center><strong>Syncplay</strong></center>")
|
||||
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)
|
|
@ -0,0 +1,167 @@
|
|||
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
|
||||
@@ -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)
|
||||
|
65
media-video/syncplay/files/syncplay-server-init
Normal file
65
media-video/syncplay/files/syncplay-server-init
Normal file
|
@ -0,0 +1,65 @@
|
|||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
command="/usr/bin/python"
|
||||
command_args="/usr/bin/syncplay-server"
|
||||
name="syncplay server"
|
||||
pidfile="/run/syncplay-server.pid"
|
||||
|
||||
description="Syncplay Server to synchronize media playback"
|
||||
|
||||
start() {
|
||||
ebegin "Starting ${name}"
|
||||
|
||||
args=()
|
||||
|
||||
if [[ ${port} ]]; then
|
||||
args+=" --port=${port}"
|
||||
fi
|
||||
|
||||
if [[ ${isolate} == True ]]; then
|
||||
args+=" --isolate-rooms"
|
||||
fi
|
||||
|
||||
if [[ ${password} ]]; then
|
||||
args+=" --password=${password}"
|
||||
fi
|
||||
|
||||
if [[ ${salt} ]]; then
|
||||
args+=" --salt=${salt}"
|
||||
fi
|
||||
|
||||
if [[ ${motd} ]]; then
|
||||
args+=" --motd-file=${motd}"
|
||||
fi
|
||||
|
||||
if [[ ${noReady} == True ]]; then
|
||||
args+=" --disable-ready"
|
||||
fi
|
||||
|
||||
if [[ ${noChat} == True ]]; then
|
||||
args+=" --disable-chat"
|
||||
fi
|
||||
|
||||
if [[ ${maxChatLength} ]]; then
|
||||
args+=" --max-chat-message-length=${maxChatLength}"
|
||||
fi
|
||||
|
||||
if [[ ${usernameLength} ]]; then
|
||||
args+=" --max-username-length=${usernameLength}"
|
||||
fi
|
||||
|
||||
if [[ ${statsFile} ]]; then
|
||||
args+=" --stats-db-file=${statsFile}"
|
||||
fi
|
||||
|
||||
if [[ ${tls} ]]; then
|
||||
args+=" --tls=${tls}"
|
||||
fi
|
||||
|
||||
start-stop-daemon --start --background --make-pid --pidfile="${pidfile}" \
|
||||
--exec "${command}" -- "${command_args}" ${args}
|
||||
|
||||
eend $?
|
||||
}
|
14
media-video/syncplay/files/syncplay-server-init-conf
Normal file
14
media-video/syncplay/files/syncplay-server-init-conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
# This is the file that syncplay service loads settings from, it does not affect the binary itself
|
||||
# See https://syncplay.pl/guide/server/ for a list of available flags and description
|
||||
|
||||
#port="8999"
|
||||
#isolate=False
|
||||
#password="yourpassword"
|
||||
#salt="RANDOMSALT"
|
||||
#motd="/etc/syncplay/motd"
|
||||
#noReady=False
|
||||
#noChat=False
|
||||
#maxChatLength="500"
|
||||
#usernameLength="20"
|
||||
#statsFile="/etc/syncplay/stats.db"
|
||||
#tls="/etc/letsencrypt/live/syncplay.example.com/"
|
15
media-video/syncplay/metadata.xml
Normal file
15
media-video/syncplay/metadata.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>smaniotto.nicola@gmail.com</email>
|
||||
<name>Nicola Smaniotto</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="client">Install the Syncplay client</flag>
|
||||
<flag name="server">Install the Syncplay server</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="github">Syncplay/syncplay</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
82
media-video/syncplay/syncplay-9999.ebuild
Normal file
82
media-video/syncplay/syncplay-9999.ebuild
Normal file
|
@ -0,0 +1,82 @@
|
|||
# Copyright 2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
DISTUTILS_SINGLE_IMPL=1
|
||||
|
||||
inherit desktop distutils-r1 optfeature xdg
|
||||
|
||||
DESCRIPTION="Client/server to synchronize media playback"
|
||||
HOMEPAGE="https://github.com/Syncplay/syncplay https://syncplay.pl"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/Japan7/Syncplay.git"
|
||||
else
|
||||
SRC_URI="https://github.com/${PN^}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="+client server gui"
|
||||
REQUIRED_USE="|| ( client server )"
|
||||
|
||||
RDEPEND="
|
||||
$( python_gen_cond_dep \
|
||||
'>=dev-python/certifi-2018.11.29[${PYTHON_USEDEP}]
|
||||
>=dev-python/twisted-16.4.0[${PYTHON_USEDEP},ssl]
|
||||
>=dev-python/pem-21.2.0[${PYTHON_USEDEP}]'
|
||||
)
|
||||
client? (
|
||||
gui? (
|
||||
$( python_gen_cond_dep \
|
||||
'dev-python/QtPy[${PYTHON_USEDEP},gui,pyside2]'
|
||||
)
|
||||
)
|
||||
|| (
|
||||
media-video/vlc[lua]
|
||||
media-video/mpv[lua]
|
||||
media-video/mplayer
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
python_install() {
|
||||
python_domodule syncplay
|
||||
|
||||
if use gui; then
|
||||
for size in 256 128 96 64 48 32 24 16; do
|
||||
doicon -s ${size} "${PN}/resources/hicolor/${size}x${size}/apps/syncplay.png"
|
||||
done
|
||||
fi
|
||||
if use client; then
|
||||
python_newscript syncplayClient.py syncplay
|
||||
if use gui; then
|
||||
domenu syncplay/resources/syncplay.desktop
|
||||
fi
|
||||
fi
|
||||
if use server; then
|
||||
if use gui; then
|
||||
domenu syncplay/resources/syncplay-server.desktop
|
||||
fi
|
||||
python_newscript syncplayServer.py syncplay-server
|
||||
newinitd "${FILESDIR}/${PN}-server-init" "${PN}"
|
||||
newconfd "${FILESDIR}/${PN}-server-init-conf" "${PN}"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
|
||||
if use client; then
|
||||
optfeature_header "Syncplay is compatible with the following players, install:"
|
||||
optfeature "VLC support" media-video/vlc[lua]
|
||||
optfeature "MPV support" media-video/mpv[lua]
|
||||
optfeature "MPlayer support" media-video/mplayer
|
||||
fi
|
||||
}
|
Loading…
Reference in a new issue