Move all server listings to combo box
This commit is contained in:
parent
ea12a4ef9d
commit
da1b2894bf
@ -654,7 +654,7 @@ guiIcons = ['resources/accept.png', 'resources/arrow_undo.png', 'resources/clock
|
||||
'resources/user_key.png', 'resources/lock.png', 'resources/key_go.png', 'resources/page_white_key.png',
|
||||
'resources/tick.png', 'resources/lock_open.png', 'resources/empty_checkbox.png', 'resources/tick_checkbox.png',
|
||||
'resources/world_explore.png', 'resources/application_get.png', 'resources/cog.png',
|
||||
'resources/film_go.png', 'resources/world_go.png', 'resources/report_magnify.png'
|
||||
'resources/film_go.png', 'resources/world_go.png', 'resources/arrow_refresh.png'
|
||||
]
|
||||
resources = ["resources/icon.ico", "resources/syncplay.png"]
|
||||
resources.extend(guiIcons)
|
||||
|
||||
BIN
resources/arrow_refresh.png
Normal file
BIN
resources/arrow_refresh.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 685 B |
Binary file not shown.
|
Before Width: | Height: | Size: 738 B |
@ -3,6 +3,7 @@ import os.path
|
||||
import time
|
||||
import re
|
||||
import sys
|
||||
import ast
|
||||
from twisted.internet.protocol import ClientFactory
|
||||
from twisted.internet import reactor, task
|
||||
from functools import wraps
|
||||
@ -676,9 +677,14 @@ class SyncplayClient(object):
|
||||
response = f.read()
|
||||
response = response.replace("<p>","").replace("</p>","").replace("<br />","").replace("“","\"").replace("”","\"") # Fix Wordpress
|
||||
response = json.loads(response)
|
||||
return response["version-status"], response["version-message"] if response.has_key("version-message") else None, response["version-url"] if response.has_key("version-url") else None
|
||||
publicServers = None
|
||||
if response["public-servers"]:
|
||||
publicServers = response["public-servers"].replace("”","'").replace(":’","'").replace("’","'").replace("′","'").replace("\n","").replace("\r","")
|
||||
print publicServers
|
||||
publicServers = ast.literal_eval(publicServers)
|
||||
return response["version-status"], response["version-message"] if response.has_key("version-message") else None, response["version-url"] if response.has_key("version-url") else None, publicServers
|
||||
except:
|
||||
return "failed", getMessage("update-check-failed-notification").format(syncplay.version), constants.SYNCPLAY_DOWNLOAD_URL
|
||||
return "failed", getMessage("update-check-failed-notification").format(syncplay.version), constants.SYNCPLAY_DOWNLOAD_URL, None
|
||||
|
||||
class _WarningManager(object):
|
||||
def __init__(self, player, userlist, ui, client):
|
||||
|
||||
@ -16,7 +16,7 @@ SHOW_CONTACT_INFO = True # Displays dev contact details below list in GUI
|
||||
SHOW_TOOLTIPS = True
|
||||
WARN_ABOUT_MISSING_STRINGS = False # (If debug mode is enabled)
|
||||
FALLBACK_INITIAL_LANGUAGE = "en"
|
||||
PUBLIC_SYNCPLAY_SERVERS = ["syncplay.pl:8995","syncplay.pl:8996","syncplay.pl:8997","syncplay.pl:8998","syncplay.pl:8999"]
|
||||
FALLBACK_PUBLIC_SYNCPLAY_SERVERS = ["syncplay.pl:8995","syncplay.pl:8996","syncplay.pl:8997","syncplay.pl:8998","syncplay.pl:8999"]
|
||||
|
||||
#Overriden by config
|
||||
SHOW_OSD = True # Sends Syncplay messages to media player OSD
|
||||
|
||||
@ -173,7 +173,7 @@ en = {
|
||||
"media-path-label" : "Path to media file:",
|
||||
"player-arguments-label" : "Player arguments (if any):",
|
||||
"browse-label" : "Browse",
|
||||
"list-servers-label" : u"Find public server",
|
||||
"update-server-list-label" : u"Update list",
|
||||
|
||||
"more-title" : "Show more settings",
|
||||
"never-rewind-value" : "Never",
|
||||
@ -541,7 +541,7 @@ ru = {
|
||||
"media-path-label" : u"Путь к видеофайлу:",
|
||||
"player-arguments-label" : u"Аргументы для запуска проигрывателя:",
|
||||
"browse-label" : u"Выбрать",
|
||||
"list-servers-label" : u"Find public server", # TODO: Translate into Russian
|
||||
"update-server-list-label" : u"Update list", # TODO: Translate into Russian
|
||||
|
||||
"more-title" : u"Больше настроек",
|
||||
"never-rewind-value" : u"Никогда",
|
||||
@ -909,7 +909,7 @@ de = {
|
||||
"media-path-label" : u"Pfad zur Datei:",
|
||||
"player-arguments-label" : u"Player arguments:", # TODO: Translate into German
|
||||
"browse-label" : u"Durchsuchen",
|
||||
"list-servers-label" : u"Find public server", # TODO: Translate into German
|
||||
"update-server-list-label" : u"Update list", # TODO: Translate into German
|
||||
|
||||
"more-title" : u"Mehr Einstellungen zeigen",
|
||||
"never-rewind-value" : u"Niemals",
|
||||
|
||||
@ -202,6 +202,13 @@ class ConfigDialog(QtGui.QDialog):
|
||||
else:
|
||||
self.config["lastCheckedForUpdates"] = str(self.lastCheckedForUpdates)
|
||||
|
||||
def loadSavedPublicServerList(self):
|
||||
settings = QSettings("Syncplay", "Interface")
|
||||
settings.beginGroup("PublicServerList")
|
||||
self.publicServers = settings.value("publicServers", constants.FALLBACK_PUBLIC_SYNCPLAY_SERVERS)
|
||||
if self.publicServers is None:
|
||||
self.publicServers = constants.FALLBACK_PUBLIC_SYNCPLAY_SERVERS
|
||||
|
||||
def loadMediaBrowseSettings(self):
|
||||
settings = QSettings("Syncplay", "MediaBrowseDialog")
|
||||
settings.beginGroup("MediaBrowseDialog")
|
||||
@ -231,26 +238,24 @@ class ConfigDialog(QtGui.QDialog):
|
||||
settings.endGroup()
|
||||
|
||||
|
||||
def findPublicServer(self):
|
||||
def updateServerList(self):
|
||||
try:
|
||||
servers = utils.getListOfPublicServers()
|
||||
except IOError as e:
|
||||
self.showErrorMessage(unicode(e))
|
||||
return
|
||||
dialog = QtGui.QInputDialog()
|
||||
dialog.setWindowTitle(getMessage("list-servers-label"))
|
||||
dialog.setLabelText(getMessage("public-server-msgbox-label"))
|
||||
serverTitles = []
|
||||
serverDict = {}
|
||||
for server in servers:
|
||||
serverTitle = server[0]
|
||||
serverAddress = server[1]
|
||||
serverTitles.append(serverTitle)
|
||||
serverDict[serverTitle]=serverAddress
|
||||
dialog.setComboBoxItems(serverTitles)
|
||||
ok = dialog.exec_()
|
||||
if ok:
|
||||
self.hostCombobox.setEditText(serverDict[dialog.textValue()])
|
||||
currentServer = self.hostCombobox.currentText()
|
||||
self.hostCombobox.clear()
|
||||
if servers:
|
||||
i = 0
|
||||
for server in servers:
|
||||
self.hostCombobox.addItem(server[1])
|
||||
self.hostCombobox.setItemData(i, server[0], Qt.ToolTipRole)
|
||||
i += 1
|
||||
settings = QSettings("Syncplay", "Interface")
|
||||
settings.beginGroup("PublicServerList")
|
||||
settings.setValue("publicServers", servers)
|
||||
self.hostCombobox.setEditText(currentServer)
|
||||
|
||||
def showErrorMessage(self, errorMessage):
|
||||
QtGui.QMessageBox.warning(self, "Syncplay", errorMessage)
|
||||
@ -416,14 +421,20 @@ class ConfigDialog(QtGui.QDialog):
|
||||
self.mediaSearchDirectories = self.config["mediaSearchDirectories"]
|
||||
|
||||
self.connectionSettingsGroup = QtGui.QGroupBox(getMessage("connection-group-title"))
|
||||
self.loadSavedPublicServerList()
|
||||
self.hostCombobox = QtGui.QComboBox(self)
|
||||
self.hostCombobox.addItems(constants.PUBLIC_SYNCPLAY_SERVERS)
|
||||
if self.publicServers:
|
||||
i = 0
|
||||
for publicServer in self.publicServers:
|
||||
self.hostCombobox.addItem(publicServer[1])
|
||||
self.hostCombobox.setItemData(i, publicServer[0], Qt.ToolTipRole)
|
||||
i += 1
|
||||
self.hostCombobox.setEditable(True)
|
||||
self.hostCombobox.setEditText(host)
|
||||
self.hostCombobox.setFixedWidth(165)
|
||||
self.hostLabel = QLabel(getMessage("host-label"), self)
|
||||
self.findServerButton = QtGui.QPushButton(QtGui.QIcon(resourcespath + 'report_magnify.png'), getMessage("list-servers-label"))
|
||||
self.findServerButton.clicked.connect(self.findPublicServer)
|
||||
self.findServerButton = QtGui.QPushButton(QtGui.QIcon(resourcespath + 'arrow_refresh.png'), getMessage("update-server-list-label"))
|
||||
self.findServerButton.clicked.connect(self.updateServerList)
|
||||
self.usernameTextbox = QLineEdit(self)
|
||||
|
||||
self.usernameTextbox.setObjectName("name")
|
||||
@ -881,6 +892,8 @@ class ConfigDialog(QtGui.QDialog):
|
||||
def clearGUIData(self, leaveMore=False):
|
||||
settings = QSettings("Syncplay", "PlayerList")
|
||||
settings.clear()
|
||||
settings = QSettings("Syncplay", "PublicServerList")
|
||||
settings.clear()
|
||||
settings = QSettings("Syncplay", "MediaBrowseDialog")
|
||||
settings.clear()
|
||||
settings = QSettings("Syncplay", "MainWindow")
|
||||
@ -902,6 +915,7 @@ class ConfigDialog(QtGui.QDialog):
|
||||
self.datacleared = False
|
||||
self.config['resetConfig'] = False
|
||||
self.subitems = {}
|
||||
self.publicServers = None
|
||||
|
||||
if self.config['clearGUIData'] == True:
|
||||
self.config['clearGUIData'] = False
|
||||
|
||||
@ -841,7 +841,8 @@ class MainWindow(QtGui.QMainWindow):
|
||||
@needsClient
|
||||
def checkForUpdates(self, userInitiated=False):
|
||||
self.lastCheckedForUpdates = datetime.utcnow()
|
||||
updateStatus, updateMessage, updateURL = self._syncplayClient.checkForUpdate(userInitiated)
|
||||
updateStatus, updateMessage, updateURL, self.publicServerList = self._syncplayClient.checkForUpdate(userInitiated)
|
||||
|
||||
if updateMessage is None:
|
||||
if updateStatus == "uptodate":
|
||||
updateMessage = getMessage("syncplay-uptodate-notification")
|
||||
@ -898,6 +899,10 @@ class MainWindow(QtGui.QMainWindow):
|
||||
settings.beginGroup("Update")
|
||||
settings.setValue("lastChecked", self.lastCheckedForUpdates)
|
||||
settings.endGroup()
|
||||
settings.beginGroup("PublicServerList")
|
||||
if self.publicServerList:
|
||||
settings.setValue("publicServers", self.publicServerList)
|
||||
settings.endGroup()
|
||||
|
||||
def loadSettings(self):
|
||||
settings = QSettings("Syncplay", "MainWindow")
|
||||
@ -920,9 +925,14 @@ class MainWindow(QtGui.QMainWindow):
|
||||
settings = QSettings("Syncplay", "Interface")
|
||||
settings.beginGroup("Update")
|
||||
self.lastCheckedForUpdates = settings.value("lastChecked", None)
|
||||
settings.endGroup()
|
||||
settings.beginGroup("PublicServerList")
|
||||
self.publicServerList = settings.value("publicServers", None)
|
||||
|
||||
def __init__(self):
|
||||
super(MainWindow, self).__init__()
|
||||
self.publicServerList = []
|
||||
self.lastCheckedForUpdates = None
|
||||
self._syncplayClient = None
|
||||
self.folderSearchEnabled = True
|
||||
self.QtGui = QtGui
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user