Try to setup GUI, iff noGui is False

This prevents the error message from being displayed when GUI is
disabled on systems without PySide

Additionally, remove some redundant conditionals
This commit is contained in:
Mykyta Holubakha 2016-10-14 00:58:32 +03:00
parent b7b3c9b66d
commit 002773ccf8

View File

@ -7,13 +7,6 @@ from syncplay import constants, utils, version, milestone
from syncplay.messages import getMessage, setLanguage, isValidLanguage
from syncplay.players.playerFactory import PlayerFactory
import codecs
try:
from syncplay.ui.GuiConfiguration import GuiConfiguration
from PySide import QtGui # @UnresolvedImport
from PySide.QtCore import QCoreApplication
except ImportError:
print getMessage("unable-import-gui-error")
GuiConfiguration = None
class InvalidConfigValue(Exception):
def __init__(self, message):
@ -305,12 +298,13 @@ class ConfigurationGetter(object):
sys.exit()
def _promptForMissingArguments(self, error=None):
if self._config['noGui'] or not GuiConfiguration:
if self._config['noGui']:
if error:
print "{}!".format(error)
print getMessage("missing-arguments-error")
sys.exit()
elif GuiConfiguration:
else:
from syncplay.ui.GuiConfiguration import GuiConfiguration
gc = GuiConfiguration(self._config, error=error)
gc.setAvailablePaths(self._playerFactory.getAvailablePlayerPaths())
gc.run()
@ -342,24 +336,17 @@ class ConfigurationGetter(object):
def _forceGuiPrompt(self):
if GuiConfiguration:
try:
self._validateArguments()
except InvalidConfigValue:
pass
from syncplay.ui.GuiConfiguration import GuiConfiguration
try:
self._validateArguments()
except InvalidConfigValue:
pass
try:
if self._config['noGui'] == False:
for key, value in self._promptForMissingArguments().items():
self._config[key] = value
except GuiConfiguration.WindowClosed:
sys.exit()
else:
try:
self._validateArguments()
except InvalidConfigValue:
self._promptForMissingArguments()
sys.exit()
try:
for key, value in self._promptForMissingArguments().items():
self._config[key] = value
except GuiConfiguration.WindowClosed:
sys.exit()
def __getRelativeConfigLocations(self):
locations = []
@ -412,13 +399,24 @@ class ConfigurationGetter(object):
print getMessage("version-message").format(version, milestone)
sys.exit()
self._overrideConfigWithArgs(args)
if not self._config['noGui']:
try:
from PySide import QtGui # @UnresolvedImport
from PySide.QtCore import QCoreApplication
from syncplay.vendor import qt4reactor
if QCoreApplication.instance() is None:
self.app = QtGui.QApplication(sys.argv)
qt4reactor.install()
except ImportError:
print getMessage("unable-import-gui-error")
self._config['noGui'] = True
if self._config['file'] and self._config['file'][:2] == "--":
self._config['playerArgs'].insert(0, self._config['file'])
self._config['file'] = None
# Arguments not validated yet - booleans are still text values
if self._config['language']:
setLanguage(self._config['language'])
if (self._config['forceGuiPrompt'] == "True" or not self._config['file']) and GuiConfiguration and not self._config['noGui']:
if (self._config['forceGuiPrompt'] == "True" or not self._config['file']) and not self._config['noGui']:
self._forceGuiPrompt()
self._checkConfig()
self._saveConfig(iniPath)
@ -426,13 +424,6 @@ class ConfigurationGetter(object):
self._config['loadedRelativePaths'] = self._loadRelativeConfiguration()
if self._config['language']:
setLanguage(self._config['language'])
if not GuiConfiguration:
self._config['noGui'] = True
if not self._config['noGui']:
from syncplay.vendor import qt4reactor
if QCoreApplication.instance() is None:
self.app = QtGui.QApplication(sys.argv)
qt4reactor.install()
return self._config
def setConfigOption(self, option, value):