mirror of https://gitlab.com/openlp/openlp.git
Add Load service Progress Bar
This commit is contained in:
parent
95757f5650
commit
17d74a8d9a
|
@ -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, \
|
||||||
get_application_version
|
get_application_version, LoadSleepThread
|
||||||
from openlp.core.utils.actions import ActionList, CategoryOrder
|
from openlp.core.utils.actions import ActionList, CategoryOrder
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
@ -122,12 +122,17 @@ class Ui_MainWindow(object):
|
||||||
self.HelpMenu = QtGui.QMenu(self.MenuBar)
|
self.HelpMenu = QtGui.QMenu(self.MenuBar)
|
||||||
self.HelpMenu.setObjectName(u'HelpMenu')
|
self.HelpMenu.setObjectName(u'HelpMenu')
|
||||||
mainWindow.setMenuBar(self.MenuBar)
|
mainWindow.setMenuBar(self.MenuBar)
|
||||||
self.StatusBar = QtGui.QStatusBar(mainWindow)
|
self.statusBar = QtGui.QStatusBar(mainWindow)
|
||||||
self.StatusBar.setObjectName(u'StatusBar')
|
self.statusBar.setObjectName(u'statusBar')
|
||||||
mainWindow.setStatusBar(self.StatusBar)
|
mainWindow.setStatusBar(self.statusBar)
|
||||||
self.DefaultThemeLabel = QtGui.QLabel(self.StatusBar)
|
self.loadProgressBar = QtGui.QProgressBar(self.statusBar)
|
||||||
self.DefaultThemeLabel.setObjectName(u'DefaultThemeLabel')
|
self.loadProgressBar.setObjectName(u'loadProgressBar')
|
||||||
self.StatusBar.addPermanentWidget(self.DefaultThemeLabel)
|
self.statusBar.addPermanentWidget(self.loadProgressBar)
|
||||||
|
self.statusBar.removeWidget(self.loadProgressBar)
|
||||||
|
self.loadProgressBar.setValue(0)
|
||||||
|
self.defaultThemeLabel = QtGui.QLabel(self.statusBar)
|
||||||
|
self.defaultThemeLabel.setObjectName(u'defaultThemeLabel')
|
||||||
|
self.statusBar.addPermanentWidget(self.defaultThemeLabel)
|
||||||
# Create the MediaManager
|
# Create the MediaManager
|
||||||
self.mediaManagerDock = OpenLPDockWidget(mainWindow,
|
self.mediaManagerDock = OpenLPDockWidget(mainWindow,
|
||||||
u'mediaManagerDock', u':/system/system_mediamanager.png')
|
u'mediaManagerDock', u':/system/system_mediamanager.png')
|
||||||
|
@ -544,6 +549,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'openlp_information_message'),
|
QtCore.SIGNAL(u'openlp_information_message'),
|
||||||
self.onInformationMessage)
|
self.onInformationMessage)
|
||||||
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
|
QtCore.SIGNAL(u'mainwindow_remove_progress'),
|
||||||
|
self.removeProgressBar)
|
||||||
# warning cyclic dependency
|
# warning cyclic dependency
|
||||||
# RenderManager needs to call ThemeManager and
|
# RenderManager needs to call ThemeManager and
|
||||||
# ThemeManager needs to call RenderManager
|
# ThemeManager needs to call RenderManager
|
||||||
|
@ -880,10 +888,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||||
self.setWindowTitle(title)
|
self.setWindowTitle(title)
|
||||||
|
|
||||||
def showStatusMessage(self, message):
|
def showStatusMessage(self, message):
|
||||||
self.StatusBar.showMessage(message)
|
self.statusBar.showMessage(message)
|
||||||
|
|
||||||
def defaultThemeChanged(self, theme):
|
def defaultThemeChanged(self, theme):
|
||||||
self.DefaultThemeLabel.setText(
|
self.defaultThemeLabel.setText(
|
||||||
unicode(translate('OpenLP.MainWindow', 'Default Theme: %s')) %
|
unicode(translate('OpenLP.MainWindow', 'Default Theme: %s')) %
|
||||||
theme)
|
theme)
|
||||||
|
|
||||||
|
@ -979,7 +987,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||||
for fileId, filename in enumerate(recentFilesToDisplay):
|
for fileId, filename in enumerate(recentFilesToDisplay):
|
||||||
log.debug('Recent file name: %s', filename)
|
log.debug('Recent file name: %s', filename)
|
||||||
action = base_action(self, u'')
|
action = base_action(self, u'')
|
||||||
action.setText(u'&%d %s' %
|
action.setText(u'&%d %s' %
|
||||||
(fileId + 1, QtCore.QFileInfo(filename).fileName()))
|
(fileId + 1, QtCore.QFileInfo(filename).fileName()))
|
||||||
action.setData(QtCore.QVariant(filename))
|
action.setData(QtCore.QVariant(filename))
|
||||||
self.connect(action, QtCore.SIGNAL(u'triggered()'),
|
self.connect(action, QtCore.SIGNAL(u'triggered()'),
|
||||||
|
@ -1008,3 +1016,33 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||||
while self.recentFiles.count() > maxRecentFiles:
|
while self.recentFiles.count() > maxRecentFiles:
|
||||||
# Don't care what API says takeLast works, removeLast doesn't!
|
# Don't care what API says takeLast works, removeLast doesn't!
|
||||||
self.recentFiles.takeLast()
|
self.recentFiles.takeLast()
|
||||||
|
|
||||||
|
def displayProgressBar(self, size):
|
||||||
|
"""
|
||||||
|
Make Progress bar visible and set size
|
||||||
|
"""
|
||||||
|
self.statusBar.addWidget(self.loadProgressBar)
|
||||||
|
self.loadProgressBar.show()
|
||||||
|
self.loadProgressBar.setMaximum(size)
|
||||||
|
self.loadProgressBar.setValue(0)
|
||||||
|
Receiver.send_message(u'openlp_process_events')
|
||||||
|
|
||||||
|
def incrementProgressBar(self):
|
||||||
|
"""
|
||||||
|
Increase the Progress Bar Value by 1
|
||||||
|
"""
|
||||||
|
self.loadProgressBar.setValue(self.loadProgressBar.value() + 1)
|
||||||
|
Receiver.send_message(u'openlp_process_events')
|
||||||
|
|
||||||
|
def finishedProgressBar(self):
|
||||||
|
"""
|
||||||
|
Trigger it's removal after 1 second
|
||||||
|
"""
|
||||||
|
LoadSleepThread(self).start()
|
||||||
|
|
||||||
|
def removeProgressBar(self):
|
||||||
|
"""
|
||||||
|
Remove the Progress bar from view.
|
||||||
|
"""
|
||||||
|
self.statusBar.removeWidget(self.loadProgressBar)
|
||||||
|
Receiver.send_message(u'openlp_process_events')
|
||||||
|
|
|
@ -576,7 +576,9 @@ class ServiceManager(QtGui.QWidget):
|
||||||
items = cPickle.load(fileTo)
|
items = cPickle.load(fileTo)
|
||||||
fileTo.close()
|
fileTo.close()
|
||||||
self.newFile()
|
self.newFile()
|
||||||
|
self.mainwindow.displayProgressBar(len(items))
|
||||||
for item in items:
|
for item in items:
|
||||||
|
self.mainwindow.incrementProgressBar()
|
||||||
serviceItem = ServiceItem()
|
serviceItem = ServiceItem()
|
||||||
serviceItem.from_service = True
|
serviceItem.from_service = True
|
||||||
serviceItem.render_manager = self.mainwindow.renderManager
|
serviceItem.render_manager = self.mainwindow.renderManager
|
||||||
|
@ -592,6 +594,7 @@ class ServiceManager(QtGui.QWidget):
|
||||||
self.setModified(False)
|
self.setModified(False)
|
||||||
QtCore.QSettings().setValue(
|
QtCore.QSettings().setValue(
|
||||||
'service/last file', QtCore.QVariant(fileName))
|
'service/last file', QtCore.QVariant(fileName))
|
||||||
|
self.mainwindow.finishedProgressBar()
|
||||||
Receiver.send_message(u'cursor_normal')
|
Receiver.send_message(u'cursor_normal')
|
||||||
else:
|
else:
|
||||||
critical_error_message_box(
|
critical_error_message_box(
|
||||||
|
|
|
@ -100,6 +100,19 @@ class VersionThread(QtCore.QThread):
|
||||||
remote_version[u'revision'] > local_version[u'revision']:
|
remote_version[u'revision'] > local_version[u'revision']:
|
||||||
Receiver.send_message(u'openlp_version_check', u'%s' % version)
|
Receiver.send_message(u'openlp_version_check', u'%s' % version)
|
||||||
|
|
||||||
|
class LoadSleepThread(QtCore.QThread):
|
||||||
|
"""
|
||||||
|
A special Qt thread class sleep then remove the load progress bar
|
||||||
|
"""
|
||||||
|
def __init__(self, parent):
|
||||||
|
QtCore.QThread.__init__(self, parent)
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
"""
|
||||||
|
Run the thread.
|
||||||
|
"""
|
||||||
|
time.sleep(1)
|
||||||
|
Receiver.send_message(u'mainwindow_remove_progress')
|
||||||
|
|
||||||
class AppLocation(object):
|
class AppLocation(object):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue