Auto save room name by default (optional), make room name list alphabetical

This commit is contained in:
et0h 2020-09-13 19:56:15 +01:00
parent 28069a150c
commit 92d2d580f9
12 changed files with 54 additions and 5 deletions

View File

@ -534,6 +534,7 @@ class SyncplayClient(object):
# TODO: Handle cases where users add www. to start of domain
def setRoomList(self, newRoomList):
newRoomList = sorted(newRoomList)
from syncplay.ui.ConfigurationGetter import ConfigurationGetter
ConfigurationGetter().setConfigOption("roomList", newRoomList)
oldRoomList = self._config['roomList']
@ -1041,6 +1042,8 @@ class SyncplayClient(object):
def storeControlPassword(self, room, password):
if password:
self.controlpasswords[room] = password
if self._config['autosaveJoinsToList']:
self.ui.addRoomToList(room+":"+password)
def getControlledRoomPassword(self, room):
if room in self.controlpasswords:
@ -1637,6 +1640,9 @@ class UiManager(object):
def updateRoomName(self, room=""):
self.__ui.updateRoomName(room)
def addRoomToList(self, room):
self.__ui.addRoomToList(room)
def executeCommand(self, command):
self.__ui.executeCommand(command)

View File

@ -392,6 +392,8 @@ de = {
"privacy-sendhashed-tooltip": "Die Informationen gehasht übertragen, um sie für andere Clients schwerer lesbar zu machen.",
"privacy-dontsend-tooltip": "Diese Information nicht übertragen. Dies garantiert den größtmöglichen Datanschutz.",
"checkforupdatesautomatically-tooltip": "Regelmäßig auf der Syncplay-Website nach Updates suchen.",
"autosavejoinstolist-tooltip": "When you join a room in a server, automatically remember the room name in the list of rooms to join.", # TO DO: Translate
"autosavejoinstolist-label": "Add rooms you join to the room list e", # TO DO: Translate
"slowondesync-tooltip": "Reduziert die Abspielgeschwindigkeit zeitweise, um die Synchronität zu den anderen Clients wiederherzustellen.",
"rewindondesync-label": "Zurückspulen bei großer Zeitdifferenz (empfohlen)",
"fastforwardondesync-label": "Vorspulen wenn das Video laggt (empfohlen)",

View File

@ -207,6 +207,7 @@ en = {
"filename-privacy-label": "Filename information:",
"filesize-privacy-label": "File size information:",
"checkforupdatesautomatically-label": "Check for Syncplay updates automatically",
"autosavejoinstolist-label": "Add rooms you join to the room list",
"slowondesync-label": "Slow down on minor desync (not supported on MPC-HC/BE)",
"rewindondesync-label": "Rewind on major desync (recommended)",
"fastforwardondesync-label": "Fast-forward if lagging behind (recommended)",
@ -394,6 +395,7 @@ en = {
"privacy-sendhashed-tooltip": "Send a hashed version of the information, making it less visible to other clients.",
"privacy-dontsend-tooltip": "Do not send this information to the server. This provides for maximum privacy.",
"checkforupdatesautomatically-tooltip": "Regularly check with the Syncplay website to see whether a new version of Syncplay is available.",
"autosavejoinstolist-tooltip": "When you join a room in a server, automatically remember the room name in the list of rooms to join.",
"slowondesync-tooltip": "Reduce playback rate temporarily when needed to bring you back in sync with other viewers. Not supported on MPC-HC/BE.",
"dontslowdownwithme-tooltip": "Means others do not get slowed down or rewinded if your playback is lagging. Useful for room operators.",
"pauseonleave-tooltip": "Pause playback if you get disconnected or someone leaves from your room.",

View File

@ -206,6 +206,7 @@ es = {
"filename-privacy-label": "Información del nombre de archivo:",
"filesize-privacy-label": "Información del tamaño de archivo:",
"checkforupdatesautomatically-label": "Buscar actualizaciones de Syncplay automáticamente",
"autosavejoinstolist-label": "Add rooms you join to the room list", # TO DO: Translate
"slowondesync-label": "Ralentizar si hay una desincronización menor (no soportado en MPC-HC/BE)",
"rewindondesync-label": "Rebobinar si hay una desincronización mayor (recomendado)",
"fastforwardondesync-label": "Avanzar rápidamente si hay un retraso (recomendado)",
@ -393,6 +394,7 @@ es = {
"privacy-sendhashed-tooltip": "Enviar una versión \"hasheada\" de la información, para que sea menos visible para otros clientes.",
"privacy-dontsend-tooltip": "No enviar esta información al servidor. Esto proporciona la máxima privacidad.",
"checkforupdatesautomatically-tooltip": "Regularmente verificar con el sitio Web de Syncplay para ver si hay una nueva versión de Syncplay disponible.",
"autosavejoinstolist-tooltip": "When you join a room in a server, automatically remember the room name in the list of rooms to join.", # TO DO: Translate
"slowondesync-tooltip": "Reducir la velocidad de reproducción temporalmente cuando sea necesario, para volver a sincronizar con otros espectadores. No soportado en MPC-HC/BE.",
"dontslowdownwithme-tooltip": "Significa que otros no se ralentizan ni rebobinan si la reproducción se retrasa. Útil para operadores de la sala.",
"pauseonleave-tooltip": "Pausa la reproducción si te desconectas o alguien sale de tu sala.",

View File

@ -206,6 +206,7 @@ it = {
"filename-privacy-label": "Nome del file:",
"filesize-privacy-label": "Dimensione del file:",
"checkforupdatesautomatically-label": "Controlla automaticamente gli aggiornamenti di Syncplay",
"autosavejoinstolist-label": "Add rooms you join to the room list", # TO DO: Translate
"slowondesync-label": "Rallenta in caso di sfasamento minimo (non supportato su MPC-HC/BE)",
"rewindondesync-label": "Riavvolgi in caso di grande sfasamento (consigliato)",
"fastforwardondesync-label": "Avanzamento rapido in caso di ritardo (consigliato)",
@ -393,6 +394,7 @@ it = {
"privacy-sendhashed-tooltip": "Invia una versione cifrata dell'informazione, rendendola meno visibile agli altri client.",
"privacy-dontsend-tooltip": "Non inviare questa informazione al server. Questo garantisce massima privacy.",
"checkforupdatesautomatically-tooltip": "Controlla regolarmente la presenza di nuove versioni di Syncplay.",
"autosavejoinstolist-tooltip": "When you join a room in a server, automatically remember the room name in the list of rooms to join.", # TO DO: Translate
"slowondesync-tooltip": "Riduce temporaneamente la velocità di riproduzione quando c'è bisogno di sincronizzarti con gli altri utenti. Non supportato su MPC-HC/BE.",
"dontslowdownwithme-tooltip": "Gli altri utenti non vengono rallentati se non sei sincronizzato. Utile per i gestori della stanza.",
"pauseonleave-tooltip": "Mette in pausa la riproduzione se vieni disconnesso o se qualcuno lascia la stanza.",

View File

@ -206,6 +206,7 @@ pt_BR = {
"filename-privacy-label": "Informação do nome do arquivo:",
"filesize-privacy-label": "Informação do tamanho do arquivo:",
"checkforupdatesautomatically-label": "Verificar atualizações do Syncplay automaticamente",
"autosavejoinstolist-label": "Add rooms you join to the room list", # TO DO: Translate
"slowondesync-label": "Diminuir velocidade em dessincronizações menores (não suportado pelo MPC-HC/BE)",
"rewindondesync-label": "Retroceder em dessincronização maiores (recomendado)",
"fastforwardondesync-label": "Avançar se estiver ficando para trás (recomendado)",
@ -393,6 +394,7 @@ pt_BR = {
"privacy-sendhashed-tooltip": "Mandar versão hasheada da informação, tornando-a menos visível aos outros clients.",
"privacy-dontsend-tooltip": "Não enviar esta informação ao servidor. Esta opção oferece a maior privacidade.",
"checkforupdatesautomatically-tooltip": "Checar o site do Syncplay regularmente para ver se alguma nova versão do Syncplay está disponível.",
"autosavejoinstolist-tooltip": "When you join a room in a server, automatically remember the room name in the list of rooms to join.", # TO DO: Translate
"slowondesync-tooltip": "Reduzir a velocidade de reprodução temporariamente quando necessário para trazer você de volta à sincronia com os outros espectadores. Não suportado pelo MPC-HC/BE.",
"dontslowdownwithme-tooltip": "Significa que outros não serão desacelerados ou retrocedidos se sua reprodução estiver ficando para trás. Útil para operadores de salas.",
"pauseonleave-tooltip": "Pausar reprodução se você for disconectado ou se alguém sair da sua sala.",

View File

@ -393,6 +393,8 @@ pt_PT = {
"privacy-sendhashed-tooltip": "Mandar versão hasheada da informação, tornando-a menos visível aos outros clients.",
"privacy-dontsend-tooltip": "Não enviar esta informação ao servidor. Esta opção oferece a maior privacidade.",
"checkforupdatesautomatically-tooltip": "Verificar o site do Syncplay regularmente para ver se alguma nova versão do Syncplay está disponível.",
"autosavejoinstolist-tooltip": "When you join a room in a server, automatically remember the room name in the list of rooms to join.", # TO DO: Translate
"autosavejoinstolist-label": "Add rooms you join to the room list", # TO DO: Translate
"slowondesync-tooltip": "Reduzir a velocidade de reprodução temporariamente quando necessário para trazer você de volta à sincronia com os outros espectadores. Não suportado pelo MPC-HC/BE.",
"dontslowdownwithme-tooltip": "Significa que outros não serão desacelerados ou retrocedidos se sua reprodução estiver ficando para trás. Útil para administradores de salas.",
"pauseonleave-tooltip": "Pausar reprodução se você for disconectado ou se alguém sair da sua sala.",

View File

@ -207,6 +207,7 @@ ru = {
"filename-privacy-label": "Имя файла:",
"filesize-privacy-label": "Размер файла:",
"checkforupdatesautomatically-label": "Проверять обновления автоматически",
"autosavejoinstolist-label": "Add rooms you join to the room list", # TO DO: Translate
"slowondesync-label": "Замедлять при небольших рассинхронизациях (не поддерживаетя в MPC-HC/BE)",
"rewindondesync-label": "Перемотка при больших рассинхронизациях (настоятельно рекомендуется)",
"dontslowdownwithme-label": "Никогда не замедлять и не перематывать видео другим (функция тестируется)",
@ -396,6 +397,7 @@ ru = {
"privacy-sendhashed-tooltip": "Отправляет хэш-сумму этой информации, делая ее невидимой для других пользователей.",
"privacy-dontsend-tooltip": "Не отправлять эту информацию на сервер. Предоставляет наибольшую приватность.",
"checkforupdatesautomatically-tooltip": "Syncplay будет регулярно заходить на сайт и проверять наличие новых версий.",
"autosavejoinstolist-tooltip": "When you join a room in a server, automatically remember the room name in the list of rooms to join.", # TO DO: Translate
"slowondesync-tooltip": "Временно уменьшить скорость воспроизведения в целях синхронизации с другими зрителями. Не поддерживается в MPC-HC/BE.",
"dontslowdownwithme-tooltip": "Ваши лаги не будут влиять на других зрителей.",
"pauseonleave-tooltip": "Приостановить воспроизведение, если Вы покинули комнату или кто-то из зрителей отключился от сервера.",

View File

@ -38,6 +38,7 @@ class ConfigurationGetter(object):
"loopAtEndOfPlaylist": False,
"loopSingleFiles": False,
"onlySwitchToTrustedDomains": True,
"autosaveJoinsToList": True,
"trustedDomains": constants.DEFAULT_TRUSTED_DOMAINS,
"file": None,
"playerArgs": [],
@ -137,6 +138,7 @@ class ConfigurationGetter(object):
"loopAtEndOfPlaylist",
"loopSingleFiles",
"onlySwitchToTrustedDomains",
"autosaveJoinsToList",
"chatInputEnabled",
"chatInputFontUnderline",
"chatDirectInput",
@ -196,6 +198,7 @@ class ConfigurationGetter(object):
"loopSingleFiles",
"onlySwitchToTrustedDomains", "trustedDomains", "publicServers"],
"gui": [
"autosaveJoinsToList",
"showOSD", "showOSDWarnings", "showSlowdownOSD",
"showDifferentRoomOSD", "showSameRoomOSD",
"showNonControllerOSD", "showDurationNotification",

View File

@ -178,6 +178,7 @@ class ConfigDialog(QtWidgets.QDialog):
result = RoomsDialog.exec_()
if result == QtWidgets.QDialog.Accepted:
newRooms = utils.convertMultilineStringToList(RoomsTextbox.toPlainText())
newRooms = sorted(newRooms)
self.relistRoomList(newRooms)
def safenormcaseandpath(self, path):
@ -422,9 +423,9 @@ class ConfigDialog(QtWidgets.QDialog):
if not newRoom:
return
roomList = self.config['roomList']
if newRoom in roomList:
roomList.remove(newRoom)
roomList.insert(0, newRoom)
if newRoom not in roomList:
roomList.append(newRoom)
roomList = sorted(roomList)
self.config['roomList'] = roomList
def showErrorMessage(self, errorMessage):
@ -495,6 +496,8 @@ class ConfigDialog(QtWidgets.QDialog):
self.config['file'] = str(self.mediapathTextbox.text())
self.config['publicServers'] = self.publicServerAddresses
self.config['room'] = self.roomsCombobox.currentText()
if self.config['autosaveJoinsToList']:
self.addRoomToList(self.config['room'])
self.pressedclosebutton = False
self.close()
@ -649,7 +652,6 @@ class ConfigDialog(QtWidgets.QDialog):
self.serverpassLabel = QLabel(getMessage("password-label"), self)
self.roomsCombobox = QtWidgets.QComboBox(self)
self.roomsCombobox.setEditable(True)
# self.addRoomToHistory(config['room']) - TO DO: Make this optional
self.fillRoomsCombobox()
self.roomsCombobox.setEditText(config['room'])
self.usernameLabel = QLabel(getMessage("name-label"), self)
@ -893,6 +895,10 @@ class ConfigDialog(QtWidgets.QDialog):
self.automaticupdatesCheckbox.setObjectName("checkForUpdatesAutomatically")
self.internalSettingsLayout.addWidget(self.automaticupdatesCheckbox)
self.autosaveJoinsToListCheckbox = QCheckBox(getMessage("autosavejoinstolist-label"))
self.autosaveJoinsToListCheckbox.setObjectName("autosaveJoinsToList")
self.internalSettingsLayout.addWidget(self.autosaveJoinsToListCheckbox)
## Media path directories
self.mediasearchSettingsGroup = QtWidgets.QGroupBox(getMessage("syncplay-mediasearchdirectories-title"))

View File

@ -89,6 +89,9 @@ class ConsoleUI(threading.Thread):
def userListChange(self):
pass
def addRoomToList(self):
pass
def fileSwitchFoundFiles(self):
pass

View File

@ -53,7 +53,7 @@ class ConsoleInGUI(ConsoleUI):
def showErrorMessage(self, message, criticalerror=False):
self._syncplayClient.ui.showErrorMessage(message, criticalerror)
def updateRoomName(self, room=""):
def updateRoomName(self, room=""): #bob
self._syncplayClient.ui.updateRoomName(room)
def getUserlist(self):
@ -467,6 +467,18 @@ class MainWindow(QtWidgets.QMainWindow):
self.roomsCombobox.addItem(roomListValue)
self.roomsCombobox.setEditText(previousRoomSelection)
def addRoomToList(self, newRoom=None):
if newRoom is None:
newRoom = self.roomsCombobox.currentText()
if not newRoom:
return
roomList = self.config['roomList']
if newRoom not in roomList:
roomList.append(newRoom)
self.config['roomList'] = roomList
roomList = sorted(roomList)
self._syncplayClient.setRoomList(roomList)
self.relistRoomList(roomList)
def addClient(self, client):
self._syncplayClient = client
@ -879,6 +891,8 @@ class MainWindow(QtWidgets.QMainWindow):
def updateRoomName(self, room=""):
self.roomsCombobox.setEditText(room)
if self.config['autosaveJoinsToList']:
self.addRoomToList(room)
def showDebugMessage(self, message):
print(message)
@ -909,6 +923,8 @@ class MainWindow(QtWidgets.QMainWindow):
if room != self._syncplayClient.getRoom():
self._syncplayClient.setRoom(room, resetAutoplay=True)
self._syncplayClient.sendRoom()
if self.config['autosaveJoinsToList']:
self.addRoomToList(room)
def seekPositionDialog(self):
seekTime, ok = QtWidgets.QInputDialog.getText(
@ -1153,6 +1169,7 @@ class MainWindow(QtWidgets.QMainWindow):
result = RoomsDialog.exec_()
if result == QtWidgets.QDialog.Accepted:
newRooms = utils.convertMultilineStringToList(RoomsTextbox.toPlainText())
newRooms = sorted(newRooms)
self.relistRoomList(newRooms)
self._syncplayClient.setRoomList(newRooms)