attempt to fix bug 923496

Fixes: https://launchpad.net/bugs/923496
This commit is contained in:
Andreas Preikschat 2012-05-20 17:52:21 +02:00
parent e878e17784
commit 9fa14f3e3a
4 changed files with 18 additions and 10 deletions

View File

@ -127,7 +127,7 @@ class OpenLP(QtGui.QApplication):
# make sure Qt really display the splash screen
self.processEvents()
# start the main app window
self.mainWindow = MainWindow(self.clipboard(), self.args)
self.mainWindow = MainWindow(self)
self.mainWindow.show()
if show_splash:
# now kill the splashscreen
@ -146,6 +146,7 @@ class OpenLP(QtGui.QApplication):
Receiver.send_message(u'live_display_blank_check')
self.mainWindow.appStartup()
# Skip exec_() for gui tests
self.eventLoopIsActive = True
if not testing:
return self.exec_()

View File

@ -542,14 +542,15 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
"""
log.info(u'MainWindow loaded')
def __init__(self, clipboard, arguments):
def __init__(self, parent):
"""
This constructor sets up the interface, the various managers, and the
plugins.
"""
QtGui.QMainWindow.__init__(self)
self.clipboard = clipboard
self.arguments = arguments
self.parent = lambda: parent
self.clipboard = self.parent().clipboard()
self.arguments = self.parent().args
# Set up settings sections for the main application
# (not for use by plugins)
self.uiSettingsSection = u'user interface'
@ -830,7 +831,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
translate('OpenLP.MainWindow',
'OpenLP Main Display Blanked'),
translate('OpenLP.MainWindow',
'The Main Display has been blanked out'))
'The Main Display has been blanked out'))
def onErrorMessage(self, data):
Receiver.send_message(u'close_splash')
@ -1132,6 +1133,11 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
"""
Hook to close the main window and display windows on exit
"""
# The MainApplication did not even enter the event loop (this happens
# when OpenLP is not fully loaded). Just ignore the event.
if not hasattr(self.parent(), u'eventLoopIsActive'):
event.ignore()
return
# If we just did a settings import, close without saving changes.
if self.settingsImported:
event.accept()
@ -1184,7 +1190,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
# Save settings
self.saveSettings()
# Close down the display
self.liveController.display.close()
if self.liveController.display:
self.liveController.display.close()
self.liveController.display = None
def serviceChanged(self, reset=False, serviceName=None):
"""

View File

@ -73,6 +73,7 @@ class Controller(QtGui.QWidget):
controller = self
Receiver.send_message('%s' % sender, [controller, args])
class SlideController(Controller):
"""
SlideController is the slide controller widget. This widget is what the
@ -577,8 +578,7 @@ class SlideController(Controller):
# rebuild display as screen size changed
if self.display:
self.display.close()
self.display = MainDisplay(self, self.imageManager, self.isLive,
self)
self.display = MainDisplay(self, self.imageManager, self.isLive, self)
self.display.setup()
if self.isLive:
self.__addActionsToWidget(self.display)

View File

@ -34,7 +34,6 @@ import os
import re
from subprocess import Popen, PIPE
import sys
import time
import urllib2
from PyQt4 import QtGui, QtCore
@ -69,7 +68,7 @@ class VersionThread(QtCore.QThread):
"""
Run the thread.
"""
time.sleep(1)
self.sleep(1)
app_version = get_application_version()
version = check_latest_version(app_version)
if LooseVersion(str(version)) > LooseVersion(str(app_version[u'full'])):