Fullscreen locker blocks other screens. Giark gniark.

This commit is contained in:
Olivier Keshavjee 2015-07-09 15:28:12 +02:00
parent 13c4cbbfbf
commit a022a1d1b4
2 changed files with 17 additions and 12 deletions

View file

@ -244,15 +244,4 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
def setDict(self, dct):
self.currentDict = dct
self.dictChanged.emit(dct)
def keyPressEvent(self, event):
if event.key() in [Qt.Key_Escape, Qt.Key_F11] and self._fullscreen:
mainWindow().show()
self.stack.setStyleSheet("")
self.setGeometry(self._geometry)
self.setParent(self._parent)
self._parent.layout().insertWidget(1, self)
self._fullscreen = False
else:
QWidget.keyPressEvent(self, event)
self.dictChanged.emit(dct)

View file

@ -20,6 +20,7 @@ class locker(QWidget, Ui_locker):
self._btnText = None
self._words = None
self._target = None
self._blackout = []
self.timer = QTimer(self)
self.timer.setSingleShot(True)
@ -37,6 +38,18 @@ class locker(QWidget, Ui_locker):
self.btnLock.clicked.connect(self.lock)
def lock(self):
# Block others screens
desktop = qApp.desktop()
self._blackout.clear()
if desktop.screenCount() > 1:
for d in range(desktop.screenCount()):
if desktop.screenNumber(self) != d:
w = QWidget()
w.setStyleSheet("background: black;")
w.move(desktop.screenGeometry(d).topLeft())
w.showFullScreen()
self._blackout.append(w)
if self.rbtnWordTarget.isChecked():
self._target = self._words + self.spnWordTarget.value()
@ -51,6 +64,9 @@ class locker(QWidget, Ui_locker):
self.lockChanged.emit(True)
def unlock(self):
# Remove black screens
self._blackout.clear()
self.setEnabled(True)
self.btnLock.setText(self._btnText)
self.timer.stop()