forked from openlp/openlp
r1430
This commit is contained in:
commit
b84c4a0a3d
31
openlp.pyw
31
openlp.pyw
@ -38,6 +38,7 @@ from traceback import format_exception
|
|||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.lib import Receiver, check_directory_exists
|
from openlp.core.lib import Receiver, check_directory_exists
|
||||||
|
from openlp.core.lib.ui import UiStrings
|
||||||
from openlp.core.resources import qInitResources
|
from openlp.core.resources import qInitResources
|
||||||
from openlp.core.ui.mainwindow import MainWindow
|
from openlp.core.ui.mainwindow import MainWindow
|
||||||
from openlp.core.ui.firsttimelanguageform import FirstTimeLanguageForm
|
from openlp.core.ui.firsttimelanguageform import FirstTimeLanguageForm
|
||||||
@ -77,6 +78,13 @@ class OpenLP(QtGui.QApplication):
|
|||||||
class in order to provide the core of the application.
|
class in order to provide the core of the application.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def exec_(self):
|
||||||
|
"""
|
||||||
|
Override exec method to allow the shared memory to be released on exit
|
||||||
|
"""
|
||||||
|
QtGui.QApplication.exec_()
|
||||||
|
self.sharedMemory.detach()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""
|
"""
|
||||||
Run the OpenLP application.
|
Run the OpenLP application.
|
||||||
@ -107,7 +115,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.clipboard())
|
self.mainWindow = MainWindow(screens, self)
|
||||||
self.mainWindow.show()
|
self.mainWindow.show()
|
||||||
if show_splash:
|
if show_splash:
|
||||||
# now kill the splashscreen
|
# now kill the splashscreen
|
||||||
@ -122,6 +130,24 @@ class OpenLP(QtGui.QApplication):
|
|||||||
VersionThread(self.mainWindow).start()
|
VersionThread(self.mainWindow).start()
|
||||||
return self.exec_()
|
return self.exec_()
|
||||||
|
|
||||||
|
def isAlreadyRunning(self):
|
||||||
|
"""
|
||||||
|
Look to see if OpenLP is already running and ask if a 2nd copy
|
||||||
|
is to be started.
|
||||||
|
"""
|
||||||
|
self.sharedMemory = QtCore.QSharedMemory('OpenLP')
|
||||||
|
if self.sharedMemory.attach():
|
||||||
|
status = QtGui.QMessageBox.critical(None,
|
||||||
|
UiStrings.Error, UiStrings.OpenLPStart,
|
||||||
|
QtGui.QMessageBox.StandardButtons(
|
||||||
|
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No))
|
||||||
|
if status == QtGui.QMessageBox.No:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
self.sharedMemory.create(1)
|
||||||
|
return False
|
||||||
|
|
||||||
def hookException(self, exctype, value, traceback):
|
def hookException(self, exctype, value, traceback):
|
||||||
if not hasattr(self, u'mainWindow'):
|
if not hasattr(self, u'mainWindow'):
|
||||||
log.exception(''.join(format_exception(exctype, value, traceback)))
|
log.exception(''.join(format_exception(exctype, value, traceback)))
|
||||||
@ -194,6 +220,9 @@ def main():
|
|||||||
qInitResources()
|
qInitResources()
|
||||||
# Now create and actually run the application.
|
# Now create and actually run the application.
|
||||||
app = OpenLP(qt_args)
|
app = OpenLP(qt_args)
|
||||||
|
# Instance check
|
||||||
|
if app.isAlreadyRunning():
|
||||||
|
sys.exit()
|
||||||
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')
|
||||||
|
@ -101,6 +101,10 @@ class EventReceiver(QtCore.QObject):
|
|||||||
``servicemanager_previous_item``
|
``servicemanager_previous_item``
|
||||||
Display the previous item in the service
|
Display the previous item in the service
|
||||||
|
|
||||||
|
``servicemanager_preview_live``
|
||||||
|
Requests a Preview item from the Service Manager to update live and
|
||||||
|
add a new item to the preview panel
|
||||||
|
|
||||||
``servicemanager_next_item``
|
``servicemanager_next_item``
|
||||||
Display the next item in the service
|
Display the next item in the service
|
||||||
|
|
||||||
|
@ -146,7 +146,8 @@ class RenderManager(object):
|
|||||||
else:
|
else:
|
||||||
self.theme = self.service_theme
|
self.theme = self.service_theme
|
||||||
else:
|
else:
|
||||||
if theme:
|
# Images have a theme of -1
|
||||||
|
if theme and theme != -1:
|
||||||
self.theme = theme
|
self.theme = theme
|
||||||
elif theme_level == ThemeLevel.Song or \
|
elif theme_level == ThemeLevel.Song or \
|
||||||
theme_level == ThemeLevel.Service:
|
theme_level == ThemeLevel.Service:
|
||||||
|
@ -109,7 +109,9 @@ class ServiceItem(object):
|
|||||||
self.edit_id = None
|
self.edit_id = None
|
||||||
self.xml_version = None
|
self.xml_version = None
|
||||||
self.start_time = 0
|
self.start_time = 0
|
||||||
|
self.end_time = 0
|
||||||
self.media_length = 0
|
self.media_length = 0
|
||||||
|
self.from_service = False
|
||||||
self._new_item()
|
self._new_item()
|
||||||
|
|
||||||
def _new_item(self):
|
def _new_item(self):
|
||||||
@ -261,6 +263,7 @@ class ServiceItem(object):
|
|||||||
u'data': self.data_string,
|
u'data': self.data_string,
|
||||||
u'xml_version': self.xml_version,
|
u'xml_version': self.xml_version,
|
||||||
u'start_time': self.start_time,
|
u'start_time': self.start_time,
|
||||||
|
u'end_time': self.end_time,
|
||||||
u'media_length': self.media_length
|
u'media_length': self.media_length
|
||||||
}
|
}
|
||||||
service_data = []
|
service_data = []
|
||||||
@ -307,6 +310,8 @@ class ServiceItem(object):
|
|||||||
self.xml_version = header[u'xml_version']
|
self.xml_version = header[u'xml_version']
|
||||||
if u'start_time' in header:
|
if u'start_time' in header:
|
||||||
self.start_time = header[u'start_time']
|
self.start_time = header[u'start_time']
|
||||||
|
if u'end_time' in header:
|
||||||
|
self.end_time = header[u'end_time']
|
||||||
if u'media_length' in header:
|
if u'media_length' in header:
|
||||||
self.media_length = header[u'media_length']
|
self.media_length = header[u'media_length']
|
||||||
if self.service_item_type == ServiceItemType.Text:
|
if self.service_item_type == ServiceItemType.Text:
|
||||||
@ -449,4 +454,3 @@ class ServiceItem(object):
|
|||||||
return end
|
return end
|
||||||
else:
|
else:
|
||||||
return u'%s : %s' % (start, end)
|
return u'%s : %s' % (start, end)
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@ class UiStrings(object):
|
|||||||
Export = translate('OpenLP.Ui', 'Export')
|
Export = translate('OpenLP.Ui', 'Export')
|
||||||
FontSizePtUnit = translate('OpenLP.Ui', 'pt',
|
FontSizePtUnit = translate('OpenLP.Ui', 'pt',
|
||||||
'Abbreviated font pointsize unit')
|
'Abbreviated font pointsize unit')
|
||||||
|
Hours = translate('OpenLP.Ui', 'h', 'The abbreviated unit for hours')
|
||||||
Image = translate('OpenLP.Ui', 'Image')
|
Image = translate('OpenLP.Ui', 'Image')
|
||||||
Import = translate('OpenLP.Ui', 'Import')
|
Import = translate('OpenLP.Ui', 'Import')
|
||||||
LengthTime = unicode(translate('OpenLP.Ui', 'Length %s'))
|
LengthTime = unicode(translate('OpenLP.Ui', 'Length %s'))
|
||||||
@ -64,6 +65,7 @@ class UiStrings(object):
|
|||||||
LiveBGError = translate('OpenLP.Ui', 'Live Background Error')
|
LiveBGError = translate('OpenLP.Ui', 'Live Background Error')
|
||||||
LivePanel = translate('OpenLP.Ui', 'Live Panel')
|
LivePanel = translate('OpenLP.Ui', 'Live Panel')
|
||||||
Load = translate('OpenLP.Ui', 'Load')
|
Load = translate('OpenLP.Ui', 'Load')
|
||||||
|
Minutes = translate('OpenLP.Ui', 'm', 'The abbreviated unit for minutes')
|
||||||
Middle = translate('OpenLP.Ui', 'Middle')
|
Middle = translate('OpenLP.Ui', 'Middle')
|
||||||
New = translate('OpenLP.Ui', 'New')
|
New = translate('OpenLP.Ui', 'New')
|
||||||
NewService = translate('OpenLP.Ui', 'New Service')
|
NewService = translate('OpenLP.Ui', 'New Service')
|
||||||
@ -74,6 +76,8 @@ class UiStrings(object):
|
|||||||
NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural')
|
NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural')
|
||||||
OLPV1 = translate('OpenLP.Ui', 'openlp.org 1.x')
|
OLPV1 = translate('OpenLP.Ui', 'openlp.org 1.x')
|
||||||
OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0')
|
OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0')
|
||||||
|
OpenLPStart = translate('OpenLP.Ui', 'OpenLP is already running. Do you '
|
||||||
|
'wish to continue?')
|
||||||
OpenService = translate('OpenLP.Ui', 'Open Service')
|
OpenService = translate('OpenLP.Ui', 'Open Service')
|
||||||
Preview = translate('OpenLP.Ui', 'Preview')
|
Preview = translate('OpenLP.Ui', 'Preview')
|
||||||
PreviewPanel = translate('OpenLP.Ui', 'Preview Panel')
|
PreviewPanel = translate('OpenLP.Ui', 'Preview Panel')
|
||||||
@ -82,7 +86,7 @@ class UiStrings(object):
|
|||||||
ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background')
|
ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background')
|
||||||
ResetBG = translate('OpenLP.Ui', 'Reset Background')
|
ResetBG = translate('OpenLP.Ui', 'Reset Background')
|
||||||
ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background')
|
ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background')
|
||||||
S = translate('OpenLP.Ui', 's', 'The abbreviated unit for seconds')
|
Seconds = translate('OpenLP.Ui', 's', 'The abbreviated unit for seconds')
|
||||||
SaveAndPreview = translate('OpenLP.Ui', 'Save && Preview')
|
SaveAndPreview = translate('OpenLP.Ui', 'Save && Preview')
|
||||||
Search = translate('OpenLP.Ui', 'Search')
|
Search = translate('OpenLP.Ui', 'Search')
|
||||||
SelectDelete = translate('OpenLP.Ui', 'You must select an item to delete.')
|
SelectDelete = translate('OpenLP.Ui', 'You must select an item to delete.')
|
||||||
|
@ -105,6 +105,9 @@ class GeneralTab(SettingsTab):
|
|||||||
self.saveCheckServiceCheckBox = QtGui.QCheckBox(self.settingsGroupBox)
|
self.saveCheckServiceCheckBox = QtGui.QCheckBox(self.settingsGroupBox)
|
||||||
self.saveCheckServiceCheckBox.setObjectName(u'saveCheckServiceCheckBox')
|
self.saveCheckServiceCheckBox.setObjectName(u'saveCheckServiceCheckBox')
|
||||||
self.settingsLayout.addRow(self.saveCheckServiceCheckBox)
|
self.settingsLayout.addRow(self.saveCheckServiceCheckBox)
|
||||||
|
self.autoUnblankCheckBox = QtGui.QCheckBox(self.settingsGroupBox)
|
||||||
|
self.autoUnblankCheckBox.setObjectName(u'autoUnblankCheckBox')
|
||||||
|
self.settingsLayout.addRow(self.autoUnblankCheckBox)
|
||||||
self.autoPreviewCheckBox = QtGui.QCheckBox(self.settingsGroupBox)
|
self.autoPreviewCheckBox = QtGui.QCheckBox(self.settingsGroupBox)
|
||||||
self.autoPreviewCheckBox.setObjectName(u'autoPreviewCheckBox')
|
self.autoPreviewCheckBox.setObjectName(u'autoPreviewCheckBox')
|
||||||
self.settingsLayout.addRow(self.autoPreviewCheckBox)
|
self.settingsLayout.addRow(self.autoPreviewCheckBox)
|
||||||
@ -224,6 +227,8 @@ class GeneralTab(SettingsTab):
|
|||||||
translate('OpenLP.GeneralTab', 'Application Settings'))
|
translate('OpenLP.GeneralTab', 'Application Settings'))
|
||||||
self.saveCheckServiceCheckBox.setText(translate('OpenLP.GeneralTab',
|
self.saveCheckServiceCheckBox.setText(translate('OpenLP.GeneralTab',
|
||||||
'Prompt to save before starting a new service'))
|
'Prompt to save before starting a new service'))
|
||||||
|
self.autoUnblankCheckBox.setText(translate('OpenLP.GeneralTab',
|
||||||
|
'Unblank display when adding new live item'))
|
||||||
self.autoPreviewCheckBox.setText(translate('OpenLP.GeneralTab',
|
self.autoPreviewCheckBox.setText(translate('OpenLP.GeneralTab',
|
||||||
'Automatically preview next item in service'))
|
'Automatically preview next item in service'))
|
||||||
self.timeoutLabel.setText(translate('OpenLP.GeneralTab',
|
self.timeoutLabel.setText(translate('OpenLP.GeneralTab',
|
||||||
@ -262,6 +267,8 @@ class GeneralTab(SettingsTab):
|
|||||||
u'songselect password', QtCore.QVariant(u'')).toString()))
|
u'songselect password', QtCore.QVariant(u'')).toString()))
|
||||||
self.saveCheckServiceCheckBox.setChecked(settings.value(u'save prompt',
|
self.saveCheckServiceCheckBox.setChecked(settings.value(u'save prompt',
|
||||||
QtCore.QVariant(False)).toBool())
|
QtCore.QVariant(False)).toBool())
|
||||||
|
self.autoUnblankCheckBox.setChecked(settings.value(u'auto unblank',
|
||||||
|
QtCore.QVariant(False)).toBool())
|
||||||
self.monitorComboBox.setCurrentIndex(self.monitorNumber)
|
self.monitorComboBox.setCurrentIndex(self.monitorNumber)
|
||||||
self.displayOnMonitorCheck.setChecked(self.screens.display)
|
self.displayOnMonitorCheck.setChecked(self.screens.display)
|
||||||
self.warningCheckBox.setChecked(settings.value(u'blank warning',
|
self.warningCheckBox.setChecked(settings.value(u'blank warning',
|
||||||
@ -312,6 +319,8 @@ class GeneralTab(SettingsTab):
|
|||||||
QtCore.QVariant(self.checkForUpdatesCheckBox.isChecked()))
|
QtCore.QVariant(self.checkForUpdatesCheckBox.isChecked()))
|
||||||
settings.setValue(u'save prompt',
|
settings.setValue(u'save prompt',
|
||||||
QtCore.QVariant(self.saveCheckServiceCheckBox.isChecked()))
|
QtCore.QVariant(self.saveCheckServiceCheckBox.isChecked()))
|
||||||
|
settings.setValue(u'auto unblank',
|
||||||
|
QtCore.QVariant(self.autoUnblankCheckBox.isChecked()))
|
||||||
settings.setValue(u'auto preview',
|
settings.setValue(u'auto preview',
|
||||||
QtCore.QVariant(self.autoPreviewCheckBox.isChecked()))
|
QtCore.QVariant(self.autoPreviewCheckBox.isChecked()))
|
||||||
settings.setValue(u'loop delay',
|
settings.setValue(u'loop delay',
|
||||||
|
@ -367,7 +367,7 @@ class MainDisplay(DisplayWidget):
|
|||||||
self.mediaObject.setCurrentSource(Phonon.MediaSource(videoPath))
|
self.mediaObject.setCurrentSource(Phonon.MediaSource(videoPath))
|
||||||
# Need the timer to trigger set the trigger to 200ms
|
# Need the timer to trigger set the trigger to 200ms
|
||||||
# Value taken from web documentation.
|
# Value taken from web documentation.
|
||||||
if self.serviceItem.start_time != 0:
|
if self.serviceItem.end_time != 0:
|
||||||
self.mediaObject.setTickInterval(200)
|
self.mediaObject.setTickInterval(200)
|
||||||
self.mediaObject.play()
|
self.mediaObject.play()
|
||||||
self.webView.setVisible(False)
|
self.webView.setVisible(False)
|
||||||
@ -401,9 +401,9 @@ class MainDisplay(DisplayWidget):
|
|||||||
def videoTick(self, tick):
|
def videoTick(self, tick):
|
||||||
"""
|
"""
|
||||||
Triggered on video tick every 200 milli seconds
|
Triggered on video tick every 200 milli seconds
|
||||||
Will be used to manage stop time later
|
|
||||||
"""
|
"""
|
||||||
pass
|
if tick > self.serviceItem.end_time * 1000:
|
||||||
|
self.videoFinished()
|
||||||
|
|
||||||
def isWebLoaded(self):
|
def isWebLoaded(self):
|
||||||
"""
|
"""
|
||||||
@ -489,7 +489,11 @@ class MainDisplay(DisplayWidget):
|
|||||||
self.footer(serviceItem.foot_text)
|
self.footer(serviceItem.foot_text)
|
||||||
# if was hidden keep it hidden
|
# if was hidden keep it hidden
|
||||||
if self.hideMode and self.isLive:
|
if self.hideMode and self.isLive:
|
||||||
self.hideDisplay(self.hideMode)
|
if QtCore.QSettings().value(u'general/auto unblank',
|
||||||
|
QtCore.QVariant(False)).toBool():
|
||||||
|
Receiver.send_message(u'slidecontroller_live_unblank')
|
||||||
|
else:
|
||||||
|
self.hideDisplay(self.hideMode)
|
||||||
# display hidden for video end we have a new item so must be shown
|
# display hidden for video end we have a new item so must be shown
|
||||||
if self.videoHide and self.isLive:
|
if self.videoHide and self.isLive:
|
||||||
self.videoHide = False
|
self.videoHide = False
|
||||||
|
@ -469,14 +469,15 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
actionList = ActionList()
|
actionList = ActionList()
|
||||||
|
|
||||||
def __init__(self, screens, clipboard):
|
def __init__(self, screens, 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.screens = screens
|
self.screens = screens
|
||||||
self.clipboard = clipboard
|
|
||||||
|
self.application = application
|
||||||
# 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'
|
||||||
@ -660,7 +661,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
if self.liveController.display.isVisible():
|
if self.liveController.display.isVisible():
|
||||||
self.liveController.display.setFocus()
|
self.liveController.display.setFocus()
|
||||||
self.activateWindow()
|
self.activateWindow()
|
||||||
if QtCore.QSettings().value(
|
if len(self.application.arguments()) > 0:
|
||||||
|
args = []
|
||||||
|
for a in self.application.arguments():
|
||||||
|
args.extend([a])
|
||||||
|
self.ServiceManagerContents.loadFile(unicode(args[0]))
|
||||||
|
elif QtCore.QSettings().value(
|
||||||
self.generalSettingsSection + u'/auto open',
|
self.generalSettingsSection + u'/auto open',
|
||||||
QtCore.QVariant(False)).toBool():
|
QtCore.QVariant(False)).toBool():
|
||||||
self.ServiceManagerContents.loadLastFile()
|
self.ServiceManagerContents.loadLastFile()
|
||||||
|
@ -33,12 +33,12 @@ from openlp.core.ui.printservicedialog import Ui_PrintServiceDialog, ZoomSize
|
|||||||
|
|
||||||
class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog):
|
class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog):
|
||||||
|
|
||||||
def __init__(self, parent, serviceManager):
|
def __init__(self, mainWindow, serviceManager):
|
||||||
"""
|
"""
|
||||||
Constructor
|
Constructor
|
||||||
"""
|
"""
|
||||||
QtGui.QDialog.__init__(self, parent)
|
QtGui.QDialog.__init__(self, mainWindow)
|
||||||
self.parent = parent
|
self.mainWindow = mainWindow
|
||||||
self.serviceManager = serviceManager
|
self.serviceManager = serviceManager
|
||||||
self.printer = QtGui.QPrinter()
|
self.printer = QtGui.QPrinter()
|
||||||
self.printDialog = QtGui.QPrintDialog(self.printer, self)
|
self.printDialog = QtGui.QPrintDialog(self.printer, self)
|
||||||
@ -134,9 +134,12 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog):
|
|||||||
item.notes.replace(u'\n', u'<br />'))
|
item.notes.replace(u'\n', u'<br />'))
|
||||||
# Add play length of media files.
|
# Add play length of media files.
|
||||||
if item.is_media() and self.metaDataCheckBox.isChecked():
|
if item.is_media() and self.metaDataCheckBox.isChecked():
|
||||||
|
tme = item.media_length
|
||||||
|
if item.end_time > 0:
|
||||||
|
tme = item.end_time - item.start_time
|
||||||
text += u'<p><strong>%s</strong> %s</p>' % (translate(
|
text += u'<p><strong>%s</strong> %s</p>' % (translate(
|
||||||
'OpenLP.ServiceManager', u'Playing time:'),
|
'OpenLP.ServiceManager', u'Playing time:'),
|
||||||
unicode(datetime.timedelta(seconds=item.media_length)))
|
unicode(datetime.timedelta(seconds=tme)))
|
||||||
if self.footerTextEdit.toPlainText():
|
if self.footerTextEdit.toPlainText():
|
||||||
text += u'<h4>%s</h4>%s' % (translate('OpenLP.ServiceManager',
|
text += u'<h4>%s</h4>%s' % (translate('OpenLP.ServiceManager',
|
||||||
u'Custom Service Notes:'), self.footerTextEdit.toPlainText())
|
u'Custom Service Notes:'), self.footerTextEdit.toPlainText())
|
||||||
@ -181,13 +184,14 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog):
|
|||||||
"""
|
"""
|
||||||
Copies the display text to the clipboard as plain text
|
Copies the display text to the clipboard as plain text
|
||||||
"""
|
"""
|
||||||
self.parent.clipboard.setText(self.document.toPlainText())
|
self.mainWindow.application.clipboard.setText(
|
||||||
|
self.document.toPlainText())
|
||||||
|
|
||||||
def copyHtmlText(self):
|
def copyHtmlText(self):
|
||||||
"""
|
"""
|
||||||
Copies the display text to the clipboard as Html
|
Copies the display text to the clipboard as Html
|
||||||
"""
|
"""
|
||||||
self.parent.clipboard.setText(self.document.toHtml())
|
self.mainWindow.application.clipboard.setText(self.document.toHtml())
|
||||||
|
|
||||||
def printServiceOrder(self):
|
def printServiceOrder(self):
|
||||||
"""
|
"""
|
||||||
|
@ -141,4 +141,3 @@ class ServiceItemEditForm(QtGui.QDialog, Ui_ServiceItemEditDialog):
|
|||||||
else:
|
else:
|
||||||
self.upButton.setEnabled(True)
|
self.upButton.setEnabled(True)
|
||||||
self.deleteButton.setEnabled(True)
|
self.deleteButton.setEnabled(True)
|
||||||
|
|
||||||
|
@ -231,13 +231,15 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
QtCore.QObject.connect(self.themeComboBox,
|
QtCore.QObject.connect(self.themeComboBox,
|
||||||
QtCore.SIGNAL(u'activated(int)'), self.onThemeComboBoxSelected)
|
QtCore.SIGNAL(u'activated(int)'), self.onThemeComboBoxSelected)
|
||||||
QtCore.QObject.connect(self.serviceManagerList,
|
QtCore.QObject.connect(self.serviceManagerList,
|
||||||
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.makeLive)
|
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onMakeLive)
|
||||||
QtCore.QObject.connect(self.serviceManagerList,
|
QtCore.QObject.connect(self.serviceManagerList,
|
||||||
QtCore.SIGNAL(u'itemCollapsed(QTreeWidgetItem*)'), self.collapsed)
|
QtCore.SIGNAL(u'itemCollapsed(QTreeWidgetItem*)'), self.collapsed)
|
||||||
QtCore.QObject.connect(self.serviceManagerList,
|
QtCore.QObject.connect(self.serviceManagerList,
|
||||||
QtCore.SIGNAL(u'itemExpanded(QTreeWidgetItem*)'), self.expanded)
|
QtCore.SIGNAL(u'itemExpanded(QTreeWidgetItem*)'), self.expanded)
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList)
|
QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList)
|
||||||
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
|
QtCore.SIGNAL(u'servicemanager_preview_live'), self.previewLive)
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'servicemanager_next_item'), self.nextItem)
|
QtCore.SIGNAL(u'servicemanager_next_item'), self.nextItem)
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
@ -561,6 +563,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
self.newFile()
|
self.newFile()
|
||||||
for item in items:
|
for item in items:
|
||||||
serviceItem = ServiceItem()
|
serviceItem = ServiceItem()
|
||||||
|
serviceItem.from_service = True
|
||||||
serviceItem.render_manager = self.mainwindow.renderManager
|
serviceItem.render_manager = self.mainwindow.renderManager
|
||||||
serviceItem.set_from_service(item, self.servicePath)
|
serviceItem.set_from_service(item, self.servicePath)
|
||||||
self.validateItem(serviceItem)
|
self.validateItem(serviceItem)
|
||||||
@ -658,10 +661,6 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
item = self.findServiceItem()[0]
|
item = self.findServiceItem()[0]
|
||||||
self.startTimeForm.item = self.serviceItems[item]
|
self.startTimeForm.item = self.serviceItems[item]
|
||||||
if self.startTimeForm.exec_():
|
if self.startTimeForm.exec_():
|
||||||
self.serviceItems[item][u'service_item'].start_time = \
|
|
||||||
self.startTimeForm.hourSpinBox.value() * 3600 + \
|
|
||||||
self.startTimeForm.minuteSpinBox.value() * 60 + \
|
|
||||||
self.startTimeForm.secondSpinBox.value()
|
|
||||||
self.repaintServiceList(item, -1)
|
self.repaintServiceList(item, -1)
|
||||||
|
|
||||||
def onServiceItemEditForm(self):
|
def onServiceItemEditForm(self):
|
||||||
@ -672,6 +671,19 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
self.addServiceItem(self.serviceItemEditForm.getServiceItem(),
|
self.addServiceItem(self.serviceItemEditForm.getServiceItem(),
|
||||||
replace=True, expand=self.serviceItems[item][u'expanded'])
|
replace=True, expand=self.serviceItems[item][u'expanded'])
|
||||||
|
|
||||||
|
def previewLive(self, message):
|
||||||
|
"""
|
||||||
|
Called by the SlideController to request a preview item be made live
|
||||||
|
and allows the next preview to be updated if relevent.
|
||||||
|
"""
|
||||||
|
id, row = message.split(u':')
|
||||||
|
for sitem in self.serviceItems:
|
||||||
|
if sitem[u'service_item']._uuid == id:
|
||||||
|
item = self.serviceManagerList.topLevelItem(sitem[u'order'] - 1)
|
||||||
|
self.serviceManagerList.setCurrentItem(item)
|
||||||
|
self.makeLive(int(row))
|
||||||
|
return
|
||||||
|
|
||||||
def nextItem(self):
|
def nextItem(self):
|
||||||
"""
|
"""
|
||||||
Called by the SlideController to select the next service item.
|
Called by the SlideController to select the next service item.
|
||||||
@ -1027,6 +1039,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
if expand is None:
|
if expand is None:
|
||||||
expand = self.expandTabs
|
expand = self.expandTabs
|
||||||
item.render()
|
item.render()
|
||||||
|
item.from_service = True
|
||||||
if replace:
|
if replace:
|
||||||
sitem, child = self.findServiceItem()
|
sitem, child = self.findServiceItem()
|
||||||
item.merge(self.serviceItems[sitem][u'service_item'])
|
item.merge(self.serviceItems[sitem][u'service_item'])
|
||||||
@ -1081,11 +1094,24 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
else:
|
else:
|
||||||
return self.serviceItems[item][u'service_item']
|
return self.serviceItems[item][u'service_item']
|
||||||
|
|
||||||
def makeLive(self):
|
def onMakeLive(self):
|
||||||
|
"""
|
||||||
|
Send the current item to the Live slide controller but triggered
|
||||||
|
by a tablewidget click event.
|
||||||
|
"""
|
||||||
|
self.makeLive()
|
||||||
|
|
||||||
|
def makeLive(self, row=-1):
|
||||||
"""
|
"""
|
||||||
Send the current item to the Live slide controller
|
Send the current item to the Live slide controller
|
||||||
|
|
||||||
|
``row``
|
||||||
|
Row number to be displayed if from preview.
|
||||||
|
-1 is passed if the value is not set
|
||||||
"""
|
"""
|
||||||
item, child = self.findServiceItem()
|
item, child = self.findServiceItem()
|
||||||
|
if row != -1:
|
||||||
|
child = row
|
||||||
if self.serviceItems[item][u'service_item'].is_valid:
|
if self.serviceItems[item][u'service_item'].is_valid:
|
||||||
self.mainwindow.liveController.addServiceManagerItem(
|
self.mainwindow.liveController.addServiceManagerItem(
|
||||||
self.serviceItems[item][u'service_item'], child)
|
self.serviceItems[item][u'service_item'], child)
|
||||||
|
@ -185,7 +185,7 @@ class SlideController(QtGui.QWidget):
|
|||||||
self.delaySpinBox.setMinimum(1)
|
self.delaySpinBox.setMinimum(1)
|
||||||
self.delaySpinBox.setMaximum(180)
|
self.delaySpinBox.setMaximum(180)
|
||||||
self.toolbar.addToolbarWidget(u'Image SpinBox', self.delaySpinBox)
|
self.toolbar.addToolbarWidget(u'Image SpinBox', self.delaySpinBox)
|
||||||
self.delaySpinBox.setSuffix(UiStrings.S)
|
self.delaySpinBox.setSuffix(UiStrings.Seconds)
|
||||||
self.delaySpinBox.setToolTip(translate('OpenLP.SlideController',
|
self.delaySpinBox.setToolTip(translate('OpenLP.SlideController',
|
||||||
'Delay between slides in seconds'))
|
'Delay between slides in seconds'))
|
||||||
else:
|
else:
|
||||||
@ -1014,8 +1014,12 @@ class SlideController(QtGui.QWidget):
|
|||||||
"""
|
"""
|
||||||
row = self.previewListWidget.currentRow()
|
row = self.previewListWidget.currentRow()
|
||||||
if row > -1 and row < self.previewListWidget.rowCount():
|
if row > -1 and row < self.previewListWidget.rowCount():
|
||||||
self.parent.liveController.addServiceManagerItem(
|
if self.serviceItem.from_service:
|
||||||
self.serviceItem, row)
|
Receiver.send_message('servicemanager_preview_live',
|
||||||
|
u'%s:%s' % (self.serviceItem._uuid, row))
|
||||||
|
else:
|
||||||
|
self.parent.liveController.addServiceManagerItem(
|
||||||
|
self.serviceItem, row)
|
||||||
|
|
||||||
def onMediaStart(self, item):
|
def onMediaStart(self, item):
|
||||||
"""
|
"""
|
||||||
|
@ -32,39 +32,90 @@ from openlp.core.lib.ui import UiStrings, create_accept_reject_button_box
|
|||||||
class Ui_StartTimeDialog(object):
|
class Ui_StartTimeDialog(object):
|
||||||
def setupUi(self, StartTimeDialog):
|
def setupUi(self, StartTimeDialog):
|
||||||
StartTimeDialog.setObjectName(u'StartTimeDialog')
|
StartTimeDialog.setObjectName(u'StartTimeDialog')
|
||||||
StartTimeDialog.resize(300, 10)
|
StartTimeDialog.resize(350, 10)
|
||||||
self.dialogLayout = QtGui.QGridLayout(StartTimeDialog)
|
self.dialogLayout = QtGui.QGridLayout(StartTimeDialog)
|
||||||
self.dialogLayout.setObjectName(u'dialogLayout')
|
self.dialogLayout.setObjectName(u'dialogLayout')
|
||||||
|
self.startLabel = QtGui.QLabel(StartTimeDialog)
|
||||||
|
self.startLabel.setObjectName(u'startLabel')
|
||||||
|
self.startLabel.setAlignment(QtCore.Qt.AlignHCenter)
|
||||||
|
self.dialogLayout.addWidget(self.startLabel, 0, 1, 1, 1)
|
||||||
|
self.finishLabel = QtGui.QLabel(StartTimeDialog)
|
||||||
|
self.finishLabel.setObjectName(u'finishLabel')
|
||||||
|
self.finishLabel.setAlignment(QtCore.Qt.AlignHCenter)
|
||||||
|
self.dialogLayout.addWidget(self.finishLabel, 0, 2, 1, 1)
|
||||||
|
self.lengthLabel = QtGui.QLabel(StartTimeDialog)
|
||||||
|
self.lengthLabel.setObjectName(u'startLabel')
|
||||||
|
self.lengthLabel.setAlignment(QtCore.Qt.AlignHCenter)
|
||||||
|
self.dialogLayout.addWidget(self.lengthLabel, 0, 3, 1, 1)
|
||||||
self.hourLabel = QtGui.QLabel(StartTimeDialog)
|
self.hourLabel = QtGui.QLabel(StartTimeDialog)
|
||||||
self.hourLabel.setObjectName("hourLabel")
|
self.hourLabel.setObjectName(u'hourLabel')
|
||||||
self.dialogLayout.addWidget(self.hourLabel, 0, 0, 1, 1)
|
self.dialogLayout.addWidget(self.hourLabel, 1, 0, 1, 1)
|
||||||
self.hourSpinBox = QtGui.QSpinBox(StartTimeDialog)
|
self.hourSpinBox = QtGui.QSpinBox(StartTimeDialog)
|
||||||
self.hourSpinBox.setObjectName("hourSpinBox")
|
self.hourSpinBox.setObjectName(u'hourSpinBox')
|
||||||
self.dialogLayout.addWidget(self.hourSpinBox, 0, 1, 1, 1)
|
self.hourSpinBox.setMinimum(0)
|
||||||
|
self.hourSpinBox.setMaximum(4)
|
||||||
|
self.dialogLayout.addWidget(self.hourSpinBox, 1, 1, 1, 1)
|
||||||
|
self.hourFinishSpinBox = QtGui.QSpinBox(StartTimeDialog)
|
||||||
|
self.hourFinishSpinBox.setObjectName(u'hourFinishSpinBox')
|
||||||
|
self.hourFinishSpinBox.setMinimum(0)
|
||||||
|
self.hourFinishSpinBox.setMaximum(4)
|
||||||
|
self.dialogLayout.addWidget(self.hourFinishSpinBox, 1, 2, 1, 1)
|
||||||
|
self.hourFinishLabel = QtGui.QLabel(StartTimeDialog)
|
||||||
|
self.hourFinishLabel.setObjectName(u'hourLabel')
|
||||||
|
self.hourFinishLabel.setAlignment(QtCore.Qt.AlignRight)
|
||||||
|
self.dialogLayout.addWidget(self.hourFinishLabel, 1, 3, 1, 1)
|
||||||
self.minuteLabel = QtGui.QLabel(StartTimeDialog)
|
self.minuteLabel = QtGui.QLabel(StartTimeDialog)
|
||||||
self.minuteLabel.setObjectName("minuteLabel")
|
self.minuteLabel.setObjectName(u'minuteLabel')
|
||||||
self.dialogLayout.addWidget(self.minuteLabel, 1, 0, 1, 1)
|
self.dialogLayout.addWidget(self.minuteLabel, 2, 0, 1, 1)
|
||||||
self.minuteSpinBox = QtGui.QSpinBox(StartTimeDialog)
|
self.minuteSpinBox = QtGui.QSpinBox(StartTimeDialog)
|
||||||
self.minuteSpinBox.setObjectName("minuteSpinBox")
|
self.minuteSpinBox.setObjectName(u'minuteSpinBox')
|
||||||
self.dialogLayout.addWidget(self.minuteSpinBox, 1, 1, 1, 1)
|
self.minuteSpinBox.setMinimum(0)
|
||||||
|
self.minuteSpinBox.setMaximum(59)
|
||||||
|
self.dialogLayout.addWidget(self.minuteSpinBox, 2, 1, 1, 1)
|
||||||
|
self.minuteFinishSpinBox = QtGui.QSpinBox(StartTimeDialog)
|
||||||
|
self.minuteFinishSpinBox.setObjectName(u'minuteFinishSpinBox')
|
||||||
|
self.minuteFinishSpinBox.setMinimum(0)
|
||||||
|
self.minuteFinishSpinBox.setMaximum(59)
|
||||||
|
self.dialogLayout.addWidget(self.minuteFinishSpinBox, 2, 2, 1, 1)
|
||||||
|
self.minuteFinishLabel = QtGui.QLabel(StartTimeDialog)
|
||||||
|
self.minuteFinishLabel.setObjectName(u'minuteLabel')
|
||||||
|
self.minuteFinishLabel.setAlignment(QtCore.Qt.AlignRight)
|
||||||
|
self.dialogLayout.addWidget(self.minuteFinishLabel, 2, 3, 1, 1)
|
||||||
self.secondLabel = QtGui.QLabel(StartTimeDialog)
|
self.secondLabel = QtGui.QLabel(StartTimeDialog)
|
||||||
self.secondLabel.setObjectName("secondLabel")
|
self.secondLabel.setObjectName(u'secondLabel')
|
||||||
self.dialogLayout.addWidget(self.secondLabel, 2, 0, 1, 1)
|
self.dialogLayout.addWidget(self.secondLabel, 3, 0, 1, 1)
|
||||||
self.secondSpinBox = QtGui.QSpinBox(StartTimeDialog)
|
self.secondSpinBox = QtGui.QSpinBox(StartTimeDialog)
|
||||||
self.secondSpinBox.setObjectName("secondSpinBox")
|
self.secondSpinBox.setObjectName(u'secondSpinBox')
|
||||||
self.dialogLayout.addWidget(self.secondSpinBox, 2, 1, 1, 1)
|
self.secondSpinBox.setMinimum(0)
|
||||||
|
self.secondSpinBox.setMaximum(59)
|
||||||
|
self.secondFinishSpinBox = QtGui.QSpinBox(StartTimeDialog)
|
||||||
|
self.secondFinishSpinBox.setObjectName(u'secondFinishSpinBox')
|
||||||
|
self.secondFinishSpinBox.setMinimum(0)
|
||||||
|
self.secondFinishSpinBox.setMaximum(59)
|
||||||
|
self.dialogLayout.addWidget(self.secondFinishSpinBox, 3, 2, 1, 1)
|
||||||
|
self.secondFinishLabel = QtGui.QLabel(StartTimeDialog)
|
||||||
|
self.secondFinishLabel.setObjectName(u'secondLabel')
|
||||||
|
self.secondFinishLabel.setAlignment(QtCore.Qt.AlignRight)
|
||||||
|
self.dialogLayout.addWidget(self.secondFinishLabel, 3, 3, 1, 1)
|
||||||
|
self.dialogLayout.addWidget(self.secondSpinBox, 3, 1, 1, 1)
|
||||||
self.buttonBox = create_accept_reject_button_box(StartTimeDialog, True)
|
self.buttonBox = create_accept_reject_button_box(StartTimeDialog, True)
|
||||||
self.dialogLayout.addWidget(self.buttonBox, 4, 0, 1, 2)
|
self.dialogLayout.addWidget(self.buttonBox, 5, 2, 1, 2)
|
||||||
self.retranslateUi(StartTimeDialog)
|
self.retranslateUi(StartTimeDialog)
|
||||||
self.setMaximumHeight(self.sizeHint().height())
|
self.setMaximumHeight(self.sizeHint().height())
|
||||||
QtCore.QMetaObject.connectSlotsByName(StartTimeDialog)
|
QtCore.QMetaObject.connectSlotsByName(StartTimeDialog)
|
||||||
|
|
||||||
def retranslateUi(self, StartTimeDialog):
|
def retranslateUi(self, StartTimeDialog):
|
||||||
self.setWindowTitle(translate('OpenLP.StartTimeForm',
|
self.setWindowTitle(translate('OpenLP.StartTimeForm',
|
||||||
'Item Start Time'))
|
'Item Start and Finish Time'))
|
||||||
|
self.hourSpinBox.setSuffix(UiStrings.Hours)
|
||||||
|
self.minuteSpinBox.setSuffix(UiStrings.Minutes)
|
||||||
|
self.secondSpinBox.setSuffix(UiStrings.Seconds)
|
||||||
|
self.hourFinishSpinBox.setSuffix(UiStrings.Hours)
|
||||||
|
self.minuteFinishSpinBox.setSuffix(UiStrings.Minutes)
|
||||||
|
self.secondFinishSpinBox.setSuffix(UiStrings.Seconds)
|
||||||
self.hourLabel.setText(translate('OpenLP.StartTimeForm', 'Hours:'))
|
self.hourLabel.setText(translate('OpenLP.StartTimeForm', 'Hours:'))
|
||||||
self.hourSpinBox.setSuffix(translate('OpenLP.StartTimeForm', 'h'))
|
|
||||||
self.minuteSpinBox.setSuffix(translate('OpenLP.StartTimeForm', 'm'))
|
|
||||||
self.secondSpinBox.setSuffix(UiStrings.S)
|
|
||||||
self.minuteLabel.setText(translate('OpenLP.StartTimeForm', 'Minutes:'))
|
self.minuteLabel.setText(translate('OpenLP.StartTimeForm', 'Minutes:'))
|
||||||
self.secondLabel.setText(translate('OpenLP.StartTimeForm', 'Seconds:'))
|
self.secondLabel.setText(translate('OpenLP.StartTimeForm', 'Seconds:'))
|
||||||
|
self.startLabel.setText(translate('OpenLP.StartTimeForm', 'Start'))
|
||||||
|
self.finishLabel.setText(translate('OpenLP.StartTimeForm', 'Finish'))
|
||||||
|
self.lengthLabel.setText(translate('OpenLP.StartTimeForm', 'Length'))
|
||||||
|
@ -28,6 +28,9 @@ from PyQt4 import QtGui
|
|||||||
|
|
||||||
from starttimedialog import Ui_StartTimeDialog
|
from starttimedialog import Ui_StartTimeDialog
|
||||||
|
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
from openlp.core.lib.ui import UiStrings, critical_error_message_box
|
||||||
|
|
||||||
class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog):
|
class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog):
|
||||||
"""
|
"""
|
||||||
The exception dialog
|
The exception dialog
|
||||||
@ -40,13 +43,51 @@ class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog):
|
|||||||
"""
|
"""
|
||||||
Run the Dialog with correct heading.
|
Run the Dialog with correct heading.
|
||||||
"""
|
"""
|
||||||
seconds = self.item[u'service_item'].start_time
|
hour, minutes, seconds = self._time_split(
|
||||||
|
self.item[u'service_item'].start_time)
|
||||||
|
self.hourSpinBox.setValue(hour)
|
||||||
|
self.minuteSpinBox.setValue(minutes)
|
||||||
|
self.secondSpinBox.setValue(seconds)
|
||||||
|
hours, minutes, seconds = self._time_split(
|
||||||
|
self.item[u'service_item'].media_length)
|
||||||
|
self.hourFinishSpinBox.setValue(hours)
|
||||||
|
self.minuteFinishSpinBox.setValue(minutes)
|
||||||
|
self.secondFinishSpinBox.setValue(seconds)
|
||||||
|
self.hourFinishLabel.setText(u'%s%s' % (unicode(hour), UiStrings.Hours))
|
||||||
|
self.minuteFinishLabel.setText(u'%s%s' %
|
||||||
|
(unicode(minutes), UiStrings.Minutes))
|
||||||
|
self.secondFinishLabel.setText(u'%s%s' %
|
||||||
|
(unicode(seconds), UiStrings.Seconds))
|
||||||
|
return QtGui.QDialog.exec_(self)
|
||||||
|
|
||||||
|
def accept(self):
|
||||||
|
start = self.hourSpinBox.value() * 3600 + \
|
||||||
|
self.minuteSpinBox.value() * 60 + \
|
||||||
|
self.secondSpinBox.value()
|
||||||
|
end = self.hourFinishSpinBox.value() * 3600 + \
|
||||||
|
self.minuteFinishSpinBox.value() * 60 + \
|
||||||
|
self.secondFinishSpinBox.value()
|
||||||
|
if end > self.item[u'service_item'].media_length:
|
||||||
|
critical_error_message_box(
|
||||||
|
title=translate('OpenLP.StartTimeForm',
|
||||||
|
'Time Validation Error'),
|
||||||
|
message=translate('OpenLP.StartTimeForm',
|
||||||
|
'End time is set after the end of the media item'))
|
||||||
|
return
|
||||||
|
elif start > end:
|
||||||
|
critical_error_message_box(
|
||||||
|
title=translate('OpenLP.StartTimeForm',
|
||||||
|
'Time Validation Error'),
|
||||||
|
message=translate('OpenLP.StartTimeForm',
|
||||||
|
'Start time is after the End Time of the media item'))
|
||||||
|
return
|
||||||
|
self.item[u'service_item'].start_time = start
|
||||||
|
self.item[u'service_item'].end_time = end
|
||||||
|
return QtGui.QDialog.accept(self)
|
||||||
|
|
||||||
|
def _time_split(self, seconds):
|
||||||
hours = seconds / 3600
|
hours = seconds / 3600
|
||||||
seconds -= 3600 * hours
|
seconds -= 3600 * hours
|
||||||
minutes = seconds / 60
|
minutes = seconds / 60
|
||||||
seconds -= 60 * minutes
|
seconds -= 60 * minutes
|
||||||
self.hourSpinBox.setValue(hours)
|
return hours, minutes, seconds
|
||||||
self.minuteSpinBox.setValue(minutes)
|
|
||||||
self.secondSpinBox.setValue(seconds)
|
|
||||||
return QtGui.QDialog.exec_(self)
|
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ class AlertsTab(SettingsTab):
|
|||||||
self.FontSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit)
|
self.FontSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit)
|
||||||
self.TimeoutLabel.setText(
|
self.TimeoutLabel.setText(
|
||||||
translate('AlertsPlugin.AlertsTab', 'Alert timeout:'))
|
translate('AlertsPlugin.AlertsTab', 'Alert timeout:'))
|
||||||
self.TimeoutSpinBox.setSuffix(UiStrings.S)
|
self.TimeoutSpinBox.setSuffix(UiStrings.Seconds)
|
||||||
self.PreviewGroupBox.setTitle(UiStrings.Preview)
|
self.PreviewGroupBox.setTitle(UiStrings.Preview)
|
||||||
self.FontPreview.setText(UiStrings.OLPV2)
|
self.FontPreview.setText(UiStrings.OLPV2)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user