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

View File

@ -542,14 +542,15 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
""" """
log.info(u'MainWindow loaded') 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 This constructor sets up the interface, the various managers, and the
plugins. plugins.
""" """
QtGui.QMainWindow.__init__(self) QtGui.QMainWindow.__init__(self)
self.clipboard = clipboard self.parent = lambda: parent
self.arguments = arguments self.clipboard = self.parent().clipboard()
self.arguments = self.parent().args
# Set up settings sections for the main application # Set up settings sections for the main application
# (not for use by plugins) # (not for use by plugins)
self.uiSettingsSection = u'user interface' self.uiSettingsSection = u'user interface'
@ -1132,6 +1133,11 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
""" """
Hook to close the main window and display windows on exit 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 we just did a settings import, close without saving changes.
if self.settingsImported: if self.settingsImported:
event.accept() event.accept()
@ -1184,7 +1190,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
# Save settings # Save settings
self.saveSettings() self.saveSettings()
# Close down the display # Close down the display
if self.liveController.display:
self.liveController.display.close() self.liveController.display.close()
self.liveController.display = None
def serviceChanged(self, reset=False, serviceName=None): def serviceChanged(self, reset=False, serviceName=None):
""" """

View File

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

View File

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