fixed application version

This commit is contained in:
Andreas Preikschat 2011-03-25 17:29:39 +01:00
parent 4c81c55918
commit 24b58ff518
4 changed files with 20 additions and 29 deletions

View File

@ -71,7 +71,6 @@ class OpenLP(QtGui.QApplication):
The core application class. This class inherits from Qt's QApplication The core application class. This class inherits from Qt's QApplication
class in order to provide the core of the application. class in order to provide the core of the application.
""" """
app_version = None
def run(self): def run(self):
""" """
@ -103,8 +102,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(screens, self.app_version, self.mainWindow = MainWindow(screens, self.clipboard())
self.clipboard())
self.mainWindow.show() self.mainWindow.show()
if show_splash: if show_splash:
# now kill the splashscreen # now kill the splashscreen
@ -116,7 +114,7 @@ class OpenLP(QtGui.QApplication):
update_check = QtCore.QSettings().value( update_check = QtCore.QSettings().value(
u'general/update check', QtCore.QVariant(True)).toBool() u'general/update check', QtCore.QVariant(True)).toBool()
if update_check: if update_check:
VersionThread(self.mainWindow, self.app_version).start() VersionThread(self.mainWindow).start()
return self.exec_() return self.exec_()
def hookException(self, exctype, value, traceback): def hookException(self, exctype, value, traceback):
@ -194,7 +192,7 @@ def main():
app.setOrganizationName(u'OpenLP') app.setOrganizationName(u'OpenLP')
app.setOrganizationDomain(u'openlp.org') app.setOrganizationDomain(u'openlp.org')
app.setApplicationName(u'OpenLP') app.setApplicationName(u'OpenLP')
app.setApplicationVersion(app.get_version()[u'version']) app.setApplicationVersion(get_application_version()[u'version'])
# First time checks in settings # First time checks in settings
if not QtCore.QSettings().value(u'general/has run wizard', if not QtCore.QSettings().value(u'general/has run wizard',
QtCore.QVariant(False)).toBool(): QtCore.QVariant(False)).toBool():

View File

@ -28,25 +28,26 @@ from PyQt4 import QtCore, QtGui
from aboutdialog import Ui_AboutDialog from aboutdialog import Ui_AboutDialog
from openlp.core.lib import translate from openlp.core.lib import translate
from openlp.core.utils import get_application_version
class AboutForm(QtGui.QDialog, Ui_AboutDialog): class AboutForm(QtGui.QDialog, Ui_AboutDialog):
""" """
The About dialog The About dialog
""" """
def __init__(self, parent, applicationVersion): def __init__(self, parent):
""" """
Do some initialisation stuff Do some initialisation stuff
""" """
QtGui.QDialog.__init__(self, parent) QtGui.QDialog.__init__(self, parent)
self.applicationVersion = applicationVersion applicationVersion = get_application_version()
self.setupUi(self) self.setupUi(self)
about_text = self.aboutTextEdit.toPlainText() about_text = self.aboutTextEdit.toPlainText()
about_text = about_text.replace(u'<version>', about_text = about_text.replace(u'<version>',
self.applicationVersion[u'version']) applicationVersion[u'version'])
if self.applicationVersion[u'build']: if applicationVersion[u'build']:
build_text = unicode(translate('OpenLP.AboutForm', ' build %s')) % \ build_text = unicode(translate('OpenLP.AboutForm', ' build %s')) % \
self.applicationVersion[u'build'] applicationVersion[u'build']
else: else:
build_text = u'' build_text = u''
about_text = about_text.replace(u'<revision>', build_text) about_text = about_text.replace(u'<revision>', build_text)

View File

@ -38,7 +38,7 @@ from openlp.core.ui import AboutForm, SettingsForm, ServiceManager, \
ThemeManager, SlideController, PluginForm, MediaDockManager, \ ThemeManager, SlideController, PluginForm, MediaDockManager, \
ShortcutListForm, DisplayTagForm ShortcutListForm, DisplayTagForm
from openlp.core.utils import AppLocation, add_actions, LanguageManager, \ from openlp.core.utils import AppLocation, add_actions, LanguageManager, \
ActionList ActionList, get_application_version
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -469,14 +469,13 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
actionList = ActionList() actionList = ActionList()
def __init__(self, screens, applicationVersion, clipboard): def __init__(self, screens, clipboard):
""" """
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.screens = screens self.screens = screens
self.applicationVersion = applicationVersion
self.clipboard = clipboard self.clipboard = clipboard
# 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)
@ -487,7 +486,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.serviceNotSaved = False self.serviceNotSaved = False
self.actionList = ActionList() self.actionList = ActionList()
self.settingsmanager = SettingsManager(screens) self.settingsmanager = SettingsManager(screens)
self.aboutForm = AboutForm(self, applicationVersion) self.aboutForm = AboutForm(self)
self.settingsForm = SettingsForm(self.screens, self, self) self.settingsForm = SettingsForm(self.screens, self, self)
self.displayTagForm = DisplayTagForm(self) self.displayTagForm = DisplayTagForm(self)
self.shortcutForm = ShortcutListForm(self) self.shortcutForm = ShortcutListForm(self)
@ -651,7 +650,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
'version from http://openlp.org/.')) 'version from http://openlp.org/.'))
QtGui.QMessageBox.question(self, QtGui.QMessageBox.question(self,
translate('OpenLP.MainWindow', 'OpenLP Version Updated'), translate('OpenLP.MainWindow', 'OpenLP Version Updated'),
version_text % (version, self.applicationVersion[u'full'])) version_text % (version, get_application_version()[u'full']))
def show(self): def show(self):
""" """
@ -734,7 +733,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
""" """
Show the About form Show the About form
""" """
self.aboutForm.applicationVersion = self.applicationVersion
self.aboutForm.exec_() self.aboutForm.exec_()
def onPluginItemClicked(self): def onPluginItemClicked(self):

View File

@ -48,19 +48,18 @@ import openlp
from openlp.core.lib import Receiver, translate, check_directory_exists from openlp.core.lib import Receiver, translate, check_directory_exists
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
APPLICATION_VERSION = {}
IMAGES_FILTER = None IMAGES_FILTER = None
UNO_CONNECTION_TYPE = u'pipe' UNO_CONNECTION_TYPE = u'pipe'
#UNO_CONNECTION_TYPE = u'socket' #UNO_CONNECTION_TYPE = u'socket'
APPLICATION_VERSION = u''
class VersionThread(QtCore.QThread): class VersionThread(QtCore.QThread):
""" """
A special Qt thread class to fetch the version of OpenLP from the website. A special Qt thread class to fetch the version of OpenLP from the website.
This is threaded so that it doesn't affect the loading time of OpenLP. This is threaded so that it doesn't affect the loading time of OpenLP.
""" """
def __init__(self, parent, app_version): def __init__(self, parent):
QtCore.QThread.__init__(self, parent) QtCore.QThread.__init__(self, parent)
self.app_version = app_version
self.version_splitter = re.compile( self.version_splitter = re.compile(
r'([0-9]+).([0-9]+).([0-9]+)(?:-bzr([0-9]+))?') r'([0-9]+).([0-9]+).([0-9]+)(?:-bzr([0-9]+))?')
@ -70,7 +69,8 @@ class VersionThread(QtCore.QThread):
""" """
time.sleep(1) time.sleep(1)
Receiver.send_message(u'maindisplay_blank_check') Receiver.send_message(u'maindisplay_blank_check')
version = check_latest_version(self.app_version) app_version = get_application_version()
version = check_latest_version(app_version)
remote_version = {} remote_version = {}
local_version = {} local_version = {}
match = self.version_splitter.match(version) match = self.version_splitter.match(version)
@ -82,7 +82,7 @@ class VersionThread(QtCore.QThread):
remote_version[u'revision'] = int(match.group(4)) remote_version[u'revision'] = int(match.group(4))
else: else:
return return
match = self.version_splitter.match(self.app_version[u'full']) match = self.version_splitter.match(app_version[u'full'])
if match: if match:
local_version[u'major'] = int(match.group(1)) local_version[u'major'] = int(match.group(1))
local_version[u'minor'] = int(match.group(2)) local_version[u'minor'] = int(match.group(2))
@ -208,22 +208,16 @@ def _get_frozen_path(frozen_option, non_frozen_option):
return frozen_option return frozen_option
return non_frozen_option return non_frozen_option
def get_application_version(dev_version=False): def get_application_version():
""" """
Returns the application version of the running instance of OpenLP:: Returns the application version of the running instance of OpenLP::
{u'full': u'1.9.4-bzr1249', u'version': u'1.9.4', u'build': u'bzr1249'} {u'full': u'1.9.4-bzr1249', u'version': u'1.9.4', u'build': u'bzr1249'}
``dev_version``
If ``True``, then it is assumed, that we are running a dev version and
attempt to receive the version number using bzr. **Note**, that this
argument is only important the first time the function is called.
""" """
global APPLICATION_VERSION global APPLICATION_VERSION
if APPLICATION_VERSION: if APPLICATION_VERSION:
# We already know the version, so just return it.
return APPLICATION_VERSION return APPLICATION_VERSION
if dev_version: if u'--dev-version' in sys.argv or u'-d' in sys.argv:
# If we're running the dev version, let's use bzr to get the version. # If we're running the dev version, let's use bzr to get the version.
try: try:
# If bzrlib is available, use it. # If bzrlib is available, use it.