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', log.info(u'Screen %d found with resolution %s',
screen, self.desktop().availableGeometry(screen)) screen, self.desktop().availableGeometry(screen))
# start the main app window # start the main app window
self.mainWindow = MainWindow(screens, app_version) self.mainWindow = MainWindow(screens, app_version, self)
self.mainWindow.show() self.mainWindow.show()
if show_splash: if show_splash:
# now kill the splashscreen # now kill the splashscreen

View File

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

View File

@ -42,7 +42,8 @@ class DisplayWidget(QtGui.QWidget):
log.info(u'MainDisplay loaded') log.info(u'MainDisplay loaded')
def __init__(self, parent=None, name=None): 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.parent = parent
self.hotkey_map = {QtCore.Qt.Key_Return: 'servicemanager_next_item', self.hotkey_map = {QtCore.Qt.Key_Return: 'servicemanager_next_item',
QtCore.Qt.Key_Space: 'live_slidecontroller_next_noloop', QtCore.Qt.Key_Space: 'live_slidecontroller_next_noloop',
@ -81,7 +82,7 @@ class MainDisplay(DisplayWidget):
""" """
log.info(u'MainDisplay Loaded') log.info(u'MainDisplay Loaded')
def __init__(self, parent, screens): def __init__(self, parent, screens, application):
""" """
The constructor for the display form. The constructor for the display form.
@ -94,9 +95,9 @@ class MainDisplay(DisplayWidget):
log.debug(u'Initilisation started') log.debug(u'Initilisation started')
DisplayWidget.__init__(self, None) DisplayWidget.__init__(self, None)
self.parent = parent self.parent = parent
self.application = application
self.setWindowTitle(u'OpenLP Display') self.setWindowTitle(u'OpenLP Display')
self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.screens = screens self.screens = screens
self.display_image = QtGui.QLabel(self) self.display_image = QtGui.QLabel(self)
self.display_image.setScaledContents(True) self.display_image.setScaledContents(True)
@ -184,6 +185,8 @@ class MainDisplay(DisplayWidget):
self.display_image.setPixmap(self.transparent) self.display_image.setPixmap(self.transparent)
self.display_alert.setPixmap(self.transparent) self.display_alert.setPixmap(self.transparent)
self.display_text.setPixmap(self.transparent) self.display_text.setPixmap(self.transparent)
self.raise_()
self.setFocus()
def showDisplay(self): def showDisplay(self):
log.debug(u'showDisplay') log.debug(u'showDisplay')
@ -268,8 +271,9 @@ class MainDisplay(DisplayWidget):
def onMediaQueue(self, message): def onMediaQueue(self, message):
log.debug(u'Queue new media message %s' % message) log.debug(u'Queue new media message %s' % message)
self.hideDisplay() self.application.setActiveWindow(self)
self.activateWindow() self.activateWindow()
self.hideDisplay()
class VideoWidget(QtGui.QWidget): class VideoWidget(QtGui.QWidget):
""" """
@ -279,33 +283,14 @@ class VideoWidget(QtGui.QWidget):
log.info(u'MainDisplay loaded') log.info(u'MainDisplay loaded')
def __init__(self, parent=None, name=None): def __init__(self, parent=None, name=None):
QtGui.QWidget.__init__(self, None) QtGui.QWidget.__init__(self, None, QtCore.Qt.WindowStaysOnBottomHint)
self.parent = parent self.parent = parent
self.hotkey_map = {QtCore.Qt.Key_Return: 'servicemanager_next_item', # QtCore.Qt.FramelessWindowHint \
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'}
def keyPressEvent(self, event): def keyPressEvent(self, event):
if type(event) == QtGui.QKeyEvent: if type(event) == QtGui.QKeyEvent:
#here accept the event and do something #here accept the event and do something
if event.key() == QtCore.Qt.Key_Up: if event.key() == QtCore.Qt.Key_Escape:
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:
self.resetDisplay() self.resetDisplay()
event.accept() event.accept()
event.ignore() event.ignore()
@ -334,7 +319,6 @@ class VideoDisplay(VideoWidget):
self.parent = parent self.parent = parent
self.screens = screens self.screens = screens
self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.mediaObject = Phonon.MediaObject(self) self.mediaObject = Phonon.MediaObject(self)
self.video = Phonon.VideoWidget() self.video = Phonon.VideoWidget()
self.video.setVisible(False) self.video.setVisible(False)
@ -382,7 +366,6 @@ class VideoDisplay(VideoWidget):
self.video.setFullScreen(True) self.video.setFullScreen(True)
self.mediaObject.play() self.mediaObject.play()
self.setVisible(True) self.setVisible(True)
self.lower()
def onMediaPause(self): def onMediaPause(self):
log.debug(u'VideoDisplay Media paused by user') 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') 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 This constructor sets up the interface, the various managers, and the
plugins. plugins.
@ -444,7 +444,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.settingsmanager = SettingsManager(screens) self.settingsmanager = SettingsManager(screens)
self.generalConfig = PluginConfig(u'General') self.generalConfig = PluginConfig(u'General')
self.videoDisplay = VideoDisplay(self, screens) self.videoDisplay = VideoDisplay(self, screens)
self.mainDisplay = MainDisplay(self, screens) self.mainDisplay = MainDisplay(self, screens, application)
self.aboutForm = AboutForm(self, applicationVersion) self.aboutForm = AboutForm(self, applicationVersion)
self.settingsForm = SettingsForm(self.screens, self, self) self.settingsForm = SettingsForm(self.screens, self, self)
# Set up the path with plugins # Set up the path with plugins
@ -555,6 +555,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def versionCheck(self, version): def versionCheck(self, version):
""" """
Checks the version of the Application called from openlp.pyw Checks the version of the Application called from openlp.pyw
Triggered by delay thread.
""" """
app_version = self.applicationVersion[u'full'] app_version = self.applicationVersion[u'full']
version_text = unicode(self.trUtf8('Version %s of OpenLP is now ' version_text = unicode(self.trUtf8('Version %s of OpenLP is now '
@ -583,6 +584,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.mainDisplay.raise_() self.mainDisplay.raise_()
def blankCheck(self): 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)) \ if str_to_bool(self.generalConfig.get_config(u'screen blank', False)) \
and str_to_bool(self.generalConfig.get_config(u'blank warning', False)): and str_to_bool(self.generalConfig.get_config(u'blank warning', False)):
self.LiveController.onBlankDisplay(True) self.LiveController.onBlankDisplay(True)
@ -593,6 +598,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
QtGui.QMessageBox.Ok) QtGui.QMessageBox.Ok)
def versionThread(self): def versionThread(self):
"""
Start an initial setup thread to delay notifications
"""
vT = VersionThread(self, self.applicationVersion, self.generalConfig) vT = VersionThread(self, self.applicationVersion, self.generalConfig)
vT.start() vT.start()
@ -617,8 +625,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.settingsForm.exec_() self.settingsForm.exec_()
def screenChanged(self): def screenChanged(self):
"""
The screen has changed to so tell the displays to update_display
their locations
"""
self.RenderManager.update_display() self.RenderManager.update_display()
self.mainDisplay.setup() self.mainDisplay.setup()
self.videoDisplay.setup()
self.setFocus()
self.activateWindow() self.activateWindow()
def closeEvent(self, event): def closeEvent(self, event):
@ -636,20 +650,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
QtGui.QMessageBox.Save) QtGui.QMessageBox.Save)
if ret == QtGui.QMessageBox.Save: if ret == QtGui.QMessageBox.Save:
self.ServiceManagerContents.onSaveService() self.ServiceManagerContents.onSaveService()
self.mainDisplay.close()
self.videoDisplay.close()
self.cleanUp() self.cleanUp()
event.accept() event.accept()
elif ret == QtGui.QMessageBox.Discard: elif ret == QtGui.QMessageBox.Discard:
self.mainDisplay.close()
self.videoDisplay.close()
self.cleanUp() self.cleanUp()
event.accept() event.accept()
else: else:
event.ignore() event.ignore()
else: else:
self.mainDisplay.close()
self.videoDisplay.close()
self.cleanUp() self.cleanUp()
event.accept() event.accept()
@ -662,6 +670,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
# Call the cleanup method to shutdown plugins. # Call the cleanup method to shutdown plugins.
log.info(u'cleanup plugins') log.info(u'cleanup plugins')
self.plugin_manager.finalise_plugins() self.plugin_manager.finalise_plugins()
#Close down the displays
self.mainDisplay.close()
self.videoDisplay.close()
def serviceChanged(self, reset=False, serviceName=None): def serviceChanged(self, reset=False, serviceName=None):
""" """