From 7fe1e942f4e77e0b8fdc2c22e254fc934aef111d Mon Sep 17 00:00:00 2001 From: albertosottile Date: Fri, 23 Feb 2018 11:45:44 +0100 Subject: [PATCH] Change ConfigDialog to modeless --- syncplay/ui/GuiConfiguration.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py index 373715d..605007c 100755 --- a/syncplay/ui/GuiConfiguration.py +++ b/syncplay/ui/GuiConfiguration.py @@ -1,5 +1,5 @@ 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, 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 if IsPySide2: @@ -25,7 +25,10 @@ class GuiConfiguration: if QCoreApplication.instance() is None: self.app = QtWidgets.QApplication(sys.argv) dialog = ConfigDialog(self.config, self._availablePlayerPaths, self.error, self.defaultConfig) - dialog.exec_() + configLoop = QEventLoop() + dialog.show() + dialog.closed.connect(configLoop.quit) + configLoop.exec_() def setAvailablePaths(self, paths): self._availablePlayerPaths = paths @@ -73,6 +76,8 @@ class ConfigDialog(QtWidgets.QDialog): pressedclosebutton = True moreToggling = False + + closed = Signal() def automaticUpdatePromptCheck(self): if self.automaticupdatesCheckbox.checkState() == Qt.PartiallyChecked: @@ -421,11 +426,12 @@ class ConfigDialog(QtWidgets.QDialog): self.pressedclosebutton = False self.close() - return + self.closed.emit() def closeEvent(self, event): if self.pressedclosebutton: super(ConfigDialog, self).closeEvent(event) + self.closed.emit() sys.exit() def keyPressEvent(self, event): @@ -1189,6 +1195,7 @@ class ConfigDialog(QtWidgets.QDialog): self.config['resetConfig'] = True self.pressedclosebutton = False self.close() + self.closed.emit() def showEvent(self, *args, **kwargs): self.ensureTabListIsVisible()