Allow multiple PySide versions on Qt.py

This commit is contained in:
alby128 2017-10-04 19:19:11 +02:00
parent e2bd333078
commit cd11096047
3 changed files with 69 additions and 41 deletions

View File

@ -400,19 +400,19 @@ class ConfigurationGetter(object):
sys.exit() sys.exit()
self._overrideConfigWithArgs(args) self._overrideConfigWithArgs(args)
if not self._config['noGui']: if not self._config['noGui']:
# try: try:
from syncplay.vendor.Qt import QtWidgets from syncplay.vendor.Qt import QtWidgets
from syncplay.vendor.Qt.QtCore import QCoreApplication from syncplay.vendor.Qt.QtCore import QCoreApplication
from syncplay.vendor import qt5reactor from syncplay.vendor import qt5reactor
if QCoreApplication.instance() is None: if QCoreApplication.instance() is None:
self.app = QtWidgets.QApplication(sys.argv) self.app = QtWidgets.QApplication(sys.argv)
qt5reactor.install() qt5reactor.install()
if sys.platform.startswith('darwin'): if sys.platform.startswith('darwin'):
import appnope import appnope
appnope.nope() appnope.nope()
# except ImportError: except ImportError:
# print getMessage("unable-import-gui-error") print getMessage("unable-import-gui-error")
# self._config['noGui'] = True self._config['noGui'] = True
if self._config['file'] and self._config['file'][:2] == "--": if self._config['file'] and self._config['file'][:2] == "--":
self._config['playerArgs'].insert(0, self._config['file']) self._config['playerArgs'].insert(0, self._config['file'])
self._config['file'] = None self._config['file'] = None

View File

@ -1,7 +1,9 @@
from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__ from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, IsPySide, IsPySide2
from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine
from syncplay.vendor.Qt.QtWidgets import QApplication, QLineEdit, QLabel, QCheckBox, QButtonGroup, QRadioButton, QDoubleSpinBox, QPlainTextEdit from syncplay.vendor.Qt.QtWidgets import QApplication, QLineEdit, QLabel, QCheckBox, QButtonGroup, QRadioButton, QDoubleSpinBox, QPlainTextEdit
from syncplay.vendor.Qt.QtGui import QCursor, QIcon, QImage, QDesktopServices from syncplay.vendor.Qt.QtGui import QCursor, QIcon, QImage, QDesktopServices
if IsPySide2:
from PySide2.QtCore import QStandardPaths
from syncplay.players.playerFactory import PlayerFactory from syncplay.players.playerFactory import PlayerFactory
from datetime import datetime from datetime import datetime
from syncplay import utils from syncplay import utils
@ -342,16 +344,28 @@ class ConfigDialog(QtWidgets.QDialog):
def browseMediapath(self): def browseMediapath(self):
self.loadMediaBrowseSettings() self.loadMediaBrowseSettings()
options = QtWidgets.QFileDialog.Options() options = QtWidgets.QFileDialog.Options()
if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]): if IsPySide:
defaultdirectory = self.config["mediaSearchDirectories"][0] if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]):
elif os.path.isdir(self.mediadirectory): defaultdirectory = self.config["mediaSearchDirectories"][0]
defaultdirectory = self.mediadirectory elif os.path.isdir(self.mediadirectory):
elif os.path.isdir(QDesktopServices.storageLocation(QDesktopServices.MoviesLocation)): defaultdirectory = self.mediadirectory
defaultdirectory = QDesktopServices.storageLocation(QDesktopServices.MoviesLocation) elif os.path.isdir(QDesktopServices.storageLocation(QDesktopServices.MoviesLocation)):
elif os.path.isdir(QDesktopServices.storageLocation(QDesktopServices.HomeLocation)): defaultdirectory = QDesktopServices.storageLocation(QDesktopServices.MoviesLocation)
defaultdirectory = QDesktopServices.storageLocation(QDesktopServices.HomeLocation) elif os.path.isdir(QDesktopServices.storageLocation(QDesktopServices.HomeLocation)):
else: defaultdirectory = QDesktopServices.storageLocation(QDesktopServices.HomeLocation)
defaultdirectory = "" else:
defaultdirectory = ""
elif IsPySide2:
if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]):
defaultdirectory = self.config["mediaSearchDirectories"][0]
elif os.path.isdir(self.mediadirectory):
defaultdirectory = self.mediadirectory
elif os.path.isdir(QStandardPaths.standardLocations(QStandardPaths.MoviesLocation)[0]):
defaultdirectory = QStandardPaths.standardLocations(QStandardPaths.MoviesLocation)[0]
elif os.path.isdir(QStandardPaths.standardLocations(QStandardPaths.HomeLocation)[0]):
defaultdirectory = QStandardPaths.standardLocations(QStandardPaths.HomeLocation)[0]
else:
defaultdirectory = ""
browserfilter = "All files (*)" browserfilter = "All files (*)"
fileName, filtr = QtWidgets.QFileDialog.getOpenFileName(self, "Browse for media files", defaultdirectory, fileName, filtr = QtWidgets.QFileDialog.getOpenFileName(self, "Browse for media files", defaultdirectory,
browserfilter, "", options) browserfilter, "", options)

View File

@ -1,6 +1,8 @@
from syncplay.vendor import Qt from syncplay.vendor import Qt
from syncplay.vendor.Qt import QtWidgets, QtGui, __binding__ from syncplay.vendor.Qt import QtWidgets, QtGui, __binding__, IsPySide, IsPySide2
from syncplay.vendor.Qt.QtCore import Qt, QSettings, QSize, QPoint, QUrl, QLine, QDateTime from syncplay.vendor.Qt.QtCore import Qt, QSettings, QSize, QPoint, QUrl, QLine, QDateTime
if IsPySide2:
from PySide2.QtCore import QStandardPaths
from syncplay import utils, constants, version, release_number from syncplay import utils, constants, version, release_number
from syncplay.messages import getMessage from syncplay.messages import getMessage
import sys import sys
@ -12,7 +14,7 @@ import os
from syncplay.utils import formatTime, sameFilename, sameFilesize, sameFileduration, RoomPasswordProvider, formatSize, isURL from syncplay.utils import formatTime, sameFilename, sameFilesize, sameFileduration, RoomPasswordProvider, formatSize, isURL
from functools import wraps from functools import wraps
from twisted.internet import task from twisted.internet import task
if sys.platform.startswith('darwin'): if sys.platform.startswith('darwin') and IsPySide:
from Foundation import NSURL from Foundation import NSURL
lastCheckedForUpdates = None lastCheckedForUpdates = None
@ -215,7 +217,7 @@ class MainWindow(QtWidgets.QMainWindow):
indexRow = window.playlist.count() if window.clearedPlaylistNote else 0 indexRow = window.playlist.count() if window.clearedPlaylistNote else 0
for url in urls[::-1]: for url in urls[::-1]:
if sys.platform.startswith('darwin'): if sys.platform.startswith('darwin') and IsPySide:
dropfilepath = os.path.abspath(NSURL.URLWithString_(str(url.toString())).filePathURL().path()) dropfilepath = os.path.abspath(NSURL.URLWithString_(str(url.toString())).filePathURL().path())
else: else:
dropfilepath = os.path.abspath(unicode(url.toLocalFile())) dropfilepath = os.path.abspath(unicode(url.toLocalFile()))
@ -320,7 +322,7 @@ class MainWindow(QtWidgets.QMainWindow):
if indexRow == -1: if indexRow == -1:
indexRow = window.playlist.count() indexRow = window.playlist.count()
for url in urls[::-1]: for url in urls[::-1]:
if sys.platform.startswith('darwin'): if sys.platform.startswith('darwin') and IsPySide:
dropfilepath = os.path.abspath(NSURL.URLWithString_(str(url.toString())).filePathURL().path()) dropfilepath = os.path.abspath(NSURL.URLWithString_(str(url.toString())).filePathURL().path())
else: else:
dropfilepath = os.path.abspath(unicode(url.toLocalFile())) dropfilepath = os.path.abspath(unicode(url.toLocalFile()))
@ -822,16 +824,28 @@ class MainWindow(QtWidgets.QMainWindow):
settings.endGroup() settings.endGroup()
def getInitialMediaDirectory(self, includeUserSpecifiedDirectories=True): def getInitialMediaDirectory(self, includeUserSpecifiedDirectories=True):
if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]) and includeUserSpecifiedDirectories: if IsPySide:
defaultdirectory = self.config["mediaSearchDirectories"][0] if self.config["mediaSearchDirectories"] and os.path.isdir(self.config["mediaSearchDirectories"][0]) and includeUserSpecifiedDirectories:
elif includeUserSpecifiedDirectories and os.path.isdir(self.mediadirectory): defaultdirectory = self.config["mediaSearchDirectories"][0]
defaultdirectory = self.mediadirectory elif includeUserSpecifiedDirectories and os.path.isdir(self.mediadirectory):
elif os.path.isdir(QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.MoviesLocation)): defaultdirectory = self.mediadirectory
defaultdirectory = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.MoviesLocation) elif os.path.isdir(QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.MoviesLocation)):
elif os.path.isdir(QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.HomeLocation)): defaultdirectory = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.MoviesLocation)
defaultdirectory = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.HomeLocation) elif os.path.isdir(QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.HomeLocation)):
else: defaultdirectory = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.HomeLocation)
defaultdirectory = "" else:
defaultdirectory = ""
elif IsPySide2:
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):
defaultdirectory = self.mediadirectory
elif os.path.isdir(QStandardPaths.standardLocations(QStandardPaths.MoviesLocation)[0]):
defaultdirectory = QStandardPaths.standardLocations(QStandardPaths.MoviesLocation)[0]
elif os.path.isdir(QStandardPaths.standardLocations(QStandardPaths.HomeLocation)[0]):
defaultdirectory = QStandardPaths.standardLocations(QStandardPaths.HomeLocation)[0]
else:
defaultdirectory = ""
return defaultdirectory return defaultdirectory
@needsClient @needsClient
@ -841,7 +855,7 @@ class MainWindow(QtWidgets.QMainWindow):
return return
self.loadMediaBrowseSettings() self.loadMediaBrowseSettings()
if sys.platform.startswith('darwin'): if sys.platform.startswith('darwin') and IsPySide:
options = QtWidgets.QFileDialog.Options(QtWidgets.QFileDialog.DontUseNativeDialog) options = QtWidgets.QFileDialog.Options(QtWidgets.QFileDialog.DontUseNativeDialog)
else: else:
options = QtWidgets.QFileDialog.Options() options = QtWidgets.QFileDialog.Options()
@ -869,7 +883,7 @@ class MainWindow(QtWidgets.QMainWindow):
return return
self.loadMediaBrowseSettings() self.loadMediaBrowseSettings()
if sys.platform.startswith('darwin'): if sys.platform.startswith('darwin') and IsPySide:
options = QtWidgets.QFileDialog.Options(QtWidgets.QFileDialog.DontUseNativeDialog) options = QtWidgets.QFileDialog.Options(QtWidgets.QFileDialog.DontUseNativeDialog)
else: else:
options = QtWidgets.QFileDialog.Options() options = QtWidgets.QFileDialog.Options()
@ -1561,7 +1575,7 @@ class MainWindow(QtWidgets.QMainWindow):
data = event.mimeData() data = event.mimeData()
urls = data.urls() urls = data.urls()
if urls and urls[0].scheme() == 'file': if urls and urls[0].scheme() == 'file':
if sys.platform.startswith('darwin'): if sys.platform.startswith('darwin') and IsPySide:
dropfilepath = os.path.abspath(NSURL.URLWithString_(str(url.toString())).filePathURL().path()) dropfilepath = os.path.abspath(NSURL.URLWithString_(str(url.toString())).filePathURL().path())
else: else:
dropfilepath = os.path.abspath(unicode(url.toLocalFile())) dropfilepath = os.path.abspath(unicode(url.toLocalFile()))