forked from openlp/openlp
Fix problems with start up thread
This commit is contained in:
parent
c90d45ca73
commit
3063526430
@ -228,7 +228,8 @@ class Settings(QtCore.QSettings):
|
||||
u'user interface/main window splitter geometry': QtCore.QByteArray(),
|
||||
u'user interface/main window state': QtCore.QByteArray(),
|
||||
u'user interface/preview panel': True,
|
||||
u'user interface/preview splitter geometry': QtCore.QByteArray()
|
||||
u'user interface/preview splitter geometry': QtCore.QByteArray(),
|
||||
u'servicemanager/last directory': u''
|
||||
}
|
||||
__file_path__ = u''
|
||||
__obsolete_settings__ = [
|
||||
|
@ -484,6 +484,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||
self.formattingTagForm = FormattingTagForm(self)
|
||||
self.shortcutForm = ShortcutListForm(self)
|
||||
self.recentFiles = []
|
||||
self.timer_id = 0
|
||||
self.timer_version_id = 0
|
||||
# Set up the path with plugins
|
||||
plugin_path = AppLocation.get_directory(AppLocation.PluginsDir)
|
||||
self.plugin_manager = PluginManager(plugin_path)
|
||||
@ -592,13 +594,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||
def version_notice(self, version):
|
||||
"""
|
||||
Notifies the user that a newer version of OpenLP is available.
|
||||
Triggered by delay thread.
|
||||
Triggered by delay thread and cannot display popup.
|
||||
"""
|
||||
log.debug(u'version_notice')
|
||||
version_text = translate('OpenLP.MainWindow', 'Version %s of OpenLP is now available for download (you are '
|
||||
'currently running version %s). \n\nYou can download the latest version from http://openlp.org/.')
|
||||
QtGui.QMessageBox.question(self,
|
||||
translate('OpenLP.MainWindow', 'OpenLP Version Updated'),
|
||||
version_text % (version, get_application_version()[u'full']))
|
||||
self.version_text = version_text % (version, get_application_version()[u'full'])
|
||||
|
||||
def show(self):
|
||||
"""
|
||||
@ -618,6 +619,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||
self.serviceManagerContents.load_file(filename)
|
||||
elif Settings().value(self.generalSettingsSection + u'/auto open'):
|
||||
self.serviceManagerContents.load_Last_file()
|
||||
self.timer_version_id = self.startTimer(1000)
|
||||
view_mode = Settings().value(u'%s/view mode' % self.generalSettingsSection)
|
||||
if view_mode == u'default':
|
||||
self.modeDefaultItem.setChecked(True)
|
||||
@ -1340,6 +1342,17 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||
self.timer_id = 0
|
||||
self.loadProgressBar.hide()
|
||||
self.application.process_events()
|
||||
if event.timerId() == self.timer_version_id:
|
||||
self.timer_version_id = 0
|
||||
# Has the thread passed some data to be displayed so display it and stop all waiting
|
||||
if hasattr(self, u'version_text'):
|
||||
QtGui.QMessageBox.question(self, translate('OpenLP.MainWindow', 'OpenLP Version Updated'),
|
||||
self.version_text)
|
||||
else:
|
||||
# the thread has not confirmed it is running or it has not yet sent any data so lets keep waiting
|
||||
if not hasattr(self,u'version_update_running') or self.version_update_running:
|
||||
self.timer_version_id = self.startTimer(1000)
|
||||
self.application.process_events()
|
||||
|
||||
def set_new_data_path(self, new_data_path):
|
||||
"""
|
||||
|
@ -72,12 +72,12 @@ class VersionThread(QtCore.QThread):
|
||||
Run the thread.
|
||||
"""
|
||||
self.sleep(1)
|
||||
log.debug(u'Version thread - run')
|
||||
app_version = get_application_version()
|
||||
version = check_latest_version(app_version)
|
||||
if LooseVersion(str(version)) > LooseVersion(str(app_version[u'full'])):
|
||||
Registry().execute(u'openlp_version_check', u'%s' % version)
|
||||
|
||||
|
||||
class AppLocation(object):
|
||||
"""
|
||||
The :class:`AppLocation` class is a static class which retrieves a
|
||||
@ -288,6 +288,8 @@ def check_latest_version(current_version):
|
||||
this_test = datetime.now().date()
|
||||
settings.setValue(u'last version test', this_test)
|
||||
settings.endGroup()
|
||||
# Tell the main window whether there will ever be data to display
|
||||
Registry().get(u'main_window').version_update_running = last_test != this_test
|
||||
if last_test != this_test:
|
||||
if current_version[u'build']:
|
||||
req = urllib2.Request(u'http://www.openlp.org/files/nightly_version.txt')
|
||||
|
Loading…
Reference in New Issue
Block a user