This commit is contained in:
Samuel Findlay 2012-06-01 17:32:58 +10:00
commit 78c4906b55
6 changed files with 21 additions and 12 deletions

View File

@ -91,6 +91,7 @@ class OpenLP(QtGui.QApplication):
""" """
Override exec method to allow the shared memory to be released on exit Override exec method to allow the shared memory to be released on exit
""" """
self.eventLoopIsActive = True
QtGui.QApplication.exec_() QtGui.QApplication.exec_()
self.sharedMemory.detach() self.sharedMemory.detach()
@ -98,6 +99,7 @@ class OpenLP(QtGui.QApplication):
""" """
Run the OpenLP application. Run the OpenLP application.
""" """
self.eventLoopIsActive = False
# On Windows, the args passed into the constructor are # On Windows, the args passed into the constructor are
# ignored. Not very handy, so set the ones we want to use. # ignored. Not very handy, so set the ones we want to use.
self.args.extend(args) self.args.extend(args)
@ -127,7 +129,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

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, 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.
""" """
QtGui.QMainWindow.__init__(self) QtGui.QMainWindow.__init__(self)
self.clipboard = clipboard self.application = application
self.arguments = arguments self.clipboard = self.application.clipboard()
self.arguments = self.application.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'
@ -830,7 +831,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
translate('OpenLP.MainWindow', translate('OpenLP.MainWindow',
'OpenLP Main Display Blanked'), 'OpenLP Main Display Blanked'),
translate('OpenLP.MainWindow', translate('OpenLP.MainWindow',
'The Main Display has been blanked out')) 'The Main Display has been blanked out'))
def onErrorMessage(self, data): def onErrorMessage(self, data):
Receiver.send_message(u'close_splash') 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 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 self.application.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
self.liveController.display.close() if self.liveController.display:
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

@ -108,7 +108,7 @@ class OpenLPWizard(QtGui.QWizard):
def setupUi(self, image): def setupUi(self, image):
""" """
Set up the wizard UI Set up the wizard UI.
""" """
self.setModal(True) self.setModal(True)
self.setWizardStyle(QtGui.QWizard.ModernStyle) self.setWizardStyle(QtGui.QWizard.ModernStyle)

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'])):

View File

@ -370,7 +370,7 @@ class SongImportForm(OpenLPWizard):
def customPageChanged(self, pageId): def customPageChanged(self, pageId):
""" """
Called when changing to a page other than the progress page Called when changing to a page other than the progress page.
""" """
if self.page(pageId) == self.sourcePage: if self.page(pageId) == self.sourcePage:
self.onCurrentIndexChanged(self.formatStack.currentIndex()) self.onCurrentIndexChanged(self.formatStack.currentIndex())