Sort out screen display and add comments

This commit is contained in:
Tim Bentley 2010-04-12 09:13:27 +01:00
parent 64eba9a3eb
commit 571e91b20f
4 changed files with 34 additions and 37 deletions

View File

@ -140,7 +140,7 @@ class OpenLP(QtGui.QApplication):
log.info(u'Screen %d found with resolution %s',
screen, self.desktop().availableGeometry(screen))
# start the main app window
self.mainWindow = MainWindow(screens, app_version)
self.mainWindow = MainWindow(screens, app_version, self)
self.mainWindow.show()
if show_splash:
# now kill the splashscreen

View File

@ -115,6 +115,9 @@ class EventReceiver(QtCore.QObject):
``version_check``
Version has changed so pop up window.
``mainDisplay_active``
Version has changed so pop up window.
"""
def __init__(self):
"""

View File

@ -42,7 +42,8 @@ class DisplayWidget(QtGui.QWidget):
log.info(u'MainDisplay loaded')
def __init__(self, parent=None, name=None):
QtGui.QWidget.__init__(self, parent)
QtGui.QWidget.__init__(self, parent, QtCore.Qt.WindowStaysOnTopHint)# \
#| QtCore.Qt.FramelessWindowHint)
self.parent = parent
self.hotkey_map = {QtCore.Qt.Key_Return: 'servicemanager_next_item',
QtCore.Qt.Key_Space: 'live_slidecontroller_next_noloop',
@ -81,7 +82,7 @@ class MainDisplay(DisplayWidget):
"""
log.info(u'MainDisplay Loaded')
def __init__(self, parent, screens):
def __init__(self, parent, screens, application):
"""
The constructor for the display form.
@ -94,9 +95,9 @@ class MainDisplay(DisplayWidget):
log.debug(u'Initilisation started')
DisplayWidget.__init__(self, None)
self.parent = parent
self.application = application
self.setWindowTitle(u'OpenLP Display')
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.screens = screens
self.display_image = QtGui.QLabel(self)
self.display_image.setScaledContents(True)
@ -184,6 +185,8 @@ class MainDisplay(DisplayWidget):
self.display_image.setPixmap(self.transparent)
self.display_alert.setPixmap(self.transparent)
self.display_text.setPixmap(self.transparent)
self.raise_()
self.setFocus()
def showDisplay(self):
log.debug(u'showDisplay')
@ -268,8 +271,9 @@ class MainDisplay(DisplayWidget):
def onMediaQueue(self, message):
log.debug(u'Queue new media message %s' % message)
self.hideDisplay()
self.application.setActiveWindow(self)
self.activateWindow()
self.hideDisplay()
class VideoWidget(QtGui.QWidget):
"""
@ -279,33 +283,14 @@ class VideoWidget(QtGui.QWidget):
log.info(u'MainDisplay loaded')
def __init__(self, parent=None, name=None):
QtGui.QWidget.__init__(self, None)
QtGui.QWidget.__init__(self, None, QtCore.Qt.WindowStaysOnBottomHint)
self.parent = parent
self.hotkey_map = {QtCore.Qt.Key_Return: 'servicemanager_next_item',
QtCore.Qt.Key_Space: 'live_slidecontroller_next_noloop',
QtCore.Qt.Key_Enter: 'live_slidecontroller_next_noloop',
QtCore.Qt.Key_0: 'servicemanager_next_item',
QtCore.Qt.Key_Backspace: 'live_slidecontroller_previous_noloop'}
# QtCore.Qt.FramelessWindowHint \
def keyPressEvent(self, event):
if type(event) == QtGui.QKeyEvent:
#here accept the event and do something
if event.key() == QtCore.Qt.Key_Up:
Receiver.send_message(u'live_slidecontroller_previous')
event.accept()
elif event.key() == QtCore.Qt.Key_Down:
Receiver.send_message(u'live_slidecontroller_next')
event.accept()
elif event.key() == QtCore.Qt.Key_PageUp:
Receiver.send_message(u'live_slidecontroller_first')
event.accept()
elif event.key() == QtCore.Qt.Key_PageDown:
Receiver.send_message(u'live_slidecontroller_last')
event.accept()
elif event.key() in self.hotkey_map:
Receiver.send_message(self.hotkey_map[event.key()])
event.accept()
elif event.key() == QtCore.Qt.Key_Escape:
if event.key() == QtCore.Qt.Key_Escape:
self.resetDisplay()
event.accept()
event.ignore()
@ -334,7 +319,6 @@ class VideoDisplay(VideoWidget):
self.parent = parent
self.screens = screens
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.mediaObject = Phonon.MediaObject(self)
self.video = Phonon.VideoWidget()
self.video.setVisible(False)
@ -382,7 +366,6 @@ class VideoDisplay(VideoWidget):
self.video.setFullScreen(True)
self.mediaObject.play()
self.setVisible(True)
self.lower()
def onMediaPause(self):
log.debug(u'VideoDisplay Media paused by user')

View File

@ -432,7 +432,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
"""
log.info(u'MainWindow loaded')
def __init__(self, screens, applicationVersion):
def __init__(self, screens, applicationVersion, application):
"""
This constructor sets up the interface, the various managers, and the
plugins.
@ -444,7 +444,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.settingsmanager = SettingsManager(screens)
self.generalConfig = PluginConfig(u'General')
self.videoDisplay = VideoDisplay(self, screens)
self.mainDisplay = MainDisplay(self, screens)
self.mainDisplay = MainDisplay(self, screens, application)
self.aboutForm = AboutForm(self, applicationVersion)
self.settingsForm = SettingsForm(self.screens, self, self)
# Set up the path with plugins
@ -555,6 +555,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def versionCheck(self, version):
"""
Checks the version of the Application called from openlp.pyw
Triggered by delay thread.
"""
app_version = self.applicationVersion[u'full']
version_text = unicode(self.trUtf8('Version %s of OpenLP is now '
@ -583,6 +584,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.mainDisplay.raise_()
def blankCheck(self):
"""
Check and display message if screen blank on setup.
Triggered by delay thread.
"""
if str_to_bool(self.generalConfig.get_config(u'screen blank', False)) \
and str_to_bool(self.generalConfig.get_config(u'blank warning', False)):
self.LiveController.onBlankDisplay(True)
@ -593,6 +598,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
QtGui.QMessageBox.Ok)
def versionThread(self):
"""
Start an initial setup thread to delay notifications
"""
vT = VersionThread(self, self.applicationVersion, self.generalConfig)
vT.start()
@ -617,8 +625,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.settingsForm.exec_()
def screenChanged(self):
"""
The screen has changed to so tell the displays to update_display
their locations
"""
self.RenderManager.update_display()
self.mainDisplay.setup()
self.videoDisplay.setup()
self.setFocus()
self.activateWindow()
def closeEvent(self, event):
@ -636,20 +650,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
QtGui.QMessageBox.Save)
if ret == QtGui.QMessageBox.Save:
self.ServiceManagerContents.onSaveService()
self.mainDisplay.close()
self.videoDisplay.close()
self.cleanUp()
event.accept()
elif ret == QtGui.QMessageBox.Discard:
self.mainDisplay.close()
self.videoDisplay.close()
self.cleanUp()
event.accept()
else:
event.ignore()
else:
self.mainDisplay.close()
self.videoDisplay.close()
self.cleanUp()
event.accept()
@ -662,6 +670,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
# Call the cleanup method to shutdown plugins.
log.info(u'cleanup plugins')
self.plugin_manager.finalise_plugins()
#Close down the displays
self.mainDisplay.close()
self.videoDisplay.close()
def serviceChanged(self, reset=False, serviceName=None):
"""