2010-07-09 21:32:32 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# OpenLP - Open Source Lyrics Projection #
|
|
|
|
# --------------------------------------------------------------------------- #
|
2011-12-27 10:33:55 +00:00
|
|
|
# Copyright (c) 2008-2012 Raoul Snyman #
|
|
|
|
# Portions copyright (c) 2008-2012 Tim Bentley, Gerald Britton, Jonathan #
|
2011-05-26 16:25:54 +00:00
|
|
|
# Corwin, Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, #
|
2011-05-26 17:11:22 +00:00
|
|
|
# Armin Köhler, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias #
|
2011-06-12 16:02:52 +00:00
|
|
|
# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
|
2011-06-12 15:41:01 +00:00
|
|
|
# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund #
|
2010-07-09 21:32:32 +00:00
|
|
|
# --------------------------------------------------------------------------- #
|
|
|
|
# This program is free software; you can redistribute it and/or modify it #
|
|
|
|
# under the terms of the GNU General Public License as published by the Free #
|
|
|
|
# Software Foundation; version 2 of the License. #
|
|
|
|
# #
|
|
|
|
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
|
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
|
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
|
|
|
# more details. #
|
|
|
|
# #
|
|
|
|
# You should have received a copy of the GNU General Public License along #
|
|
|
|
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
|
|
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
|
|
|
###############################################################################
|
|
|
|
"""
|
|
|
|
The :mod:`advancedtab` provides an advanced settings facility.
|
|
|
|
"""
|
|
|
|
from PyQt4 import QtCore, QtGui
|
|
|
|
|
2012-01-07 11:22:53 +00:00
|
|
|
from openlp.core.lib import SettingsTab, translate, build_icon, Receiver
|
2011-02-10 04:06:16 +00:00
|
|
|
from openlp.core.lib.ui import UiStrings
|
2011-02-23 20:55:55 +00:00
|
|
|
from openlp.core.utils import get_images_filter
|
2012-01-15 01:21:35 +00:00
|
|
|
from datetime import datetime, timedelta
|
2010-07-09 21:32:32 +00:00
|
|
|
|
|
|
|
class AdvancedTab(SettingsTab):
|
|
|
|
"""
|
|
|
|
The :class:`AdvancedTab` manages the advanced settings tab including the UI
|
|
|
|
and the loading and saving of the displayed settings.
|
|
|
|
"""
|
2011-04-13 19:12:47 +00:00
|
|
|
def __init__(self, parent):
|
2010-07-09 21:32:32 +00:00
|
|
|
"""
|
|
|
|
Initialise the settings tab
|
|
|
|
"""
|
2012-01-07 11:22:53 +00:00
|
|
|
self.display_changed = False
|
2012-01-03 00:08:08 +00:00
|
|
|
advancedTranslated = translate('OpenLP.AdvancedTab', 'Advanced')
|
2012-01-15 01:21:35 +00:00
|
|
|
# 7 stands for now, 0 to 6 is Monday to Sunday.
|
2012-01-16 13:59:23 +00:00
|
|
|
self.default_service_day = 7
|
2012-01-15 01:21:35 +00:00
|
|
|
# 11 o'clock is the most popular time for morning service.
|
|
|
|
self.default_service_hour = 11
|
|
|
|
self.default_service_minute = 0
|
2012-01-03 00:08:08 +00:00
|
|
|
self.default_service_name = unicode(translate('OpenLP.AdvancedTab',
|
2012-01-18 19:16:50 +00:00
|
|
|
'Service %Y-%m-%d %H-%M',
|
|
|
|
'This is the default default service name template, which can be '
|
2012-01-27 22:10:12 +00:00
|
|
|
'found under Advanced in Settings, Configure OpenLP. Please do not '
|
2012-01-18 19:16:50 +00:00
|
|
|
'include any of the following characters: /\\?*|<>\[\]":+\n'
|
|
|
|
'You can use any of the directives as shown on page '
|
|
|
|
'http://docs.python.org/library/datetime.html'
|
|
|
|
'#strftime-strptime-behavior , but if possible, please keep '
|
|
|
|
'the resulting string sortable by name.'))
|
2011-02-23 06:42:33 +00:00
|
|
|
self.default_image = u':/graphics/openlp-splash-screen.png'
|
2011-04-27 10:30:29 +00:00
|
|
|
self.default_color = u'#ffffff'
|
2011-04-15 17:17:51 +00:00
|
|
|
self.icon_path = u':/system/system_settings.png'
|
2011-04-27 09:00:37 +00:00
|
|
|
SettingsTab.__init__(self, parent, u'Advanced', advancedTranslated)
|
2010-07-09 21:32:32 +00:00
|
|
|
|
|
|
|
def setupUi(self):
|
|
|
|
"""
|
|
|
|
Configure the UI elements for the tab.
|
|
|
|
"""
|
|
|
|
self.setObjectName(u'AdvancedTab')
|
2011-01-03 11:25:30 +00:00
|
|
|
SettingsTab.setupUi(self)
|
|
|
|
self.uiGroupBox = QtGui.QGroupBox(self.leftColumn)
|
2010-07-12 14:32:48 +00:00
|
|
|
self.uiGroupBox.setObjectName(u'uiGroupBox')
|
2010-12-31 18:10:45 +00:00
|
|
|
self.uiLayout = QtGui.QFormLayout(self.uiGroupBox)
|
2010-07-12 14:32:48 +00:00
|
|
|
self.uiLayout.setObjectName(u'uiLayout')
|
|
|
|
self.recentLabel = QtGui.QLabel(self.uiGroupBox)
|
2010-07-09 21:32:32 +00:00
|
|
|
self.recentLabel.setObjectName(u'recentLabel')
|
2010-07-12 14:32:48 +00:00
|
|
|
self.recentSpinBox = QtGui.QSpinBox(self.uiGroupBox)
|
2010-07-09 21:32:32 +00:00
|
|
|
self.recentSpinBox.setObjectName(u'recentSpinBox')
|
2010-07-12 14:32:48 +00:00
|
|
|
self.recentSpinBox.setMinimum(0)
|
2010-12-31 18:10:45 +00:00
|
|
|
self.uiLayout.addRow(self.recentLabel, self.recentSpinBox)
|
2010-07-12 14:32:48 +00:00
|
|
|
self.mediaPluginCheckBox = QtGui.QCheckBox(self.uiGroupBox)
|
|
|
|
self.mediaPluginCheckBox.setObjectName(u'mediaPluginCheckBox')
|
2010-12-31 18:10:45 +00:00
|
|
|
self.uiLayout.addRow(self.mediaPluginCheckBox)
|
2010-07-13 16:00:33 +00:00
|
|
|
self.doubleClickLiveCheckBox = QtGui.QCheckBox(self.uiGroupBox)
|
|
|
|
self.doubleClickLiveCheckBox.setObjectName(u'doubleClickLiveCheckBox')
|
2010-12-31 18:10:45 +00:00
|
|
|
self.uiLayout.addRow(self.doubleClickLiveCheckBox)
|
2011-04-02 09:52:32 +00:00
|
|
|
self.singleClickPreviewCheckBox = QtGui.QCheckBox(self.uiGroupBox)
|
|
|
|
self.singleClickPreviewCheckBox.setObjectName(
|
|
|
|
u'singleClickPreviewCheckBox')
|
|
|
|
self.uiLayout.addRow(self.singleClickPreviewCheckBox)
|
2010-10-08 19:32:07 +00:00
|
|
|
self.expandServiceItemCheckBox = QtGui.QCheckBox(self.uiGroupBox)
|
2010-11-03 18:03:28 +00:00
|
|
|
self.expandServiceItemCheckBox.setObjectName(
|
|
|
|
u'expandServiceItemCheckBox')
|
2010-12-31 18:10:45 +00:00
|
|
|
self.uiLayout.addRow(self.expandServiceItemCheckBox)
|
2011-01-02 16:42:30 +00:00
|
|
|
self.enableAutoCloseCheckBox = QtGui.QCheckBox(self.uiGroupBox)
|
|
|
|
self.enableAutoCloseCheckBox.setObjectName(
|
|
|
|
u'enableAutoCloseCheckBox')
|
2011-01-04 09:19:53 +00:00
|
|
|
self.uiLayout.addRow(self.enableAutoCloseCheckBox)
|
2010-12-31 18:10:45 +00:00
|
|
|
self.leftLayout.addWidget(self.uiGroupBox)
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceGroupBox = QtGui.QGroupBox(self.leftColumn)
|
|
|
|
self.defaultServiceGroupBox.setObjectName(u'defaultServiceGroupBox')
|
|
|
|
self.defaultServiceLayout = QtGui.QFormLayout(
|
|
|
|
self.defaultServiceGroupBox)
|
2012-01-25 09:32:20 +00:00
|
|
|
self.defaultServiceCheckBox = QtGui.QCheckBox(
|
|
|
|
self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceCheckBox.setObjectName(u'defaultServiceCheckBox')
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceLayout.setObjectName(u'defaultServiceLayout')
|
2012-01-25 09:32:20 +00:00
|
|
|
self.defaultServiceLayout.addRow(self.defaultServiceCheckBox)
|
2012-01-17 08:50:29 +00:00
|
|
|
self.defaultServiceTimeLabel = QtGui.QLabel(self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceTimeLabel.setObjectName(u'defaultServiceTimeLabel')
|
2012-01-15 01:21:35 +00:00
|
|
|
self.defaultServiceDay = QtGui.QComboBox(
|
|
|
|
self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceDay.addItems(
|
|
|
|
[u'', u'', u'', u'', u'', u'', u'', u''])
|
|
|
|
self.defaultServiceDay.setObjectName(
|
|
|
|
u'defaultServiceDay')
|
|
|
|
self.defaultServiceTime = QtGui.QTimeEdit(self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceTime.setObjectName(u'defaultServiceTime')
|
|
|
|
self.defaultServiceTimeHBox = QtGui.QHBoxLayout()
|
|
|
|
self.defaultServiceTimeHBox.setObjectName(u'defaultServiceTimeHBox')
|
|
|
|
self.defaultServiceTimeHBox.addWidget(self.defaultServiceDay)
|
|
|
|
self.defaultServiceTimeHBox.addWidget(self.defaultServiceTime)
|
2012-01-17 08:50:29 +00:00
|
|
|
self.defaultServiceLayout.addRow(self.defaultServiceTimeLabel,
|
|
|
|
self.defaultServiceTimeHBox)
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceLabel = QtGui.QLabel(self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceLabel.setObjectName(u'defaultServiceLabel')
|
2012-01-15 01:21:35 +00:00
|
|
|
self.defaultServiceName = QtGui.QLineEdit(self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceName.setObjectName(u'defaultServiceName')
|
|
|
|
self.defaultServiceName.setValidator(QtGui.QRegExpValidator(
|
|
|
|
QtCore.QRegExp(r'[^/\\?*|<>\[\]":+]+'), self))
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceRevertButton = QtGui.QToolButton(
|
|
|
|
self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceRevertButton.setObjectName(
|
|
|
|
u'defaultServiceRevertButton')
|
|
|
|
self.defaultServiceRevertButton.setIcon(
|
|
|
|
build_icon(u':/general/general_revert.png'))
|
|
|
|
self.defaultServiceHBox = QtGui.QHBoxLayout()
|
|
|
|
self.defaultServiceHBox.setObjectName(u'defaultServiceHBox')
|
2012-01-15 01:21:35 +00:00
|
|
|
self.defaultServiceHBox.addWidget(self.defaultServiceName)
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceHBox.addWidget(self.defaultServiceRevertButton)
|
2012-01-17 08:50:29 +00:00
|
|
|
self.defaultServiceLayout.addRow(self.defaultServiceLabel,
|
|
|
|
self.defaultServiceHBox)
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceExampleLabel = QtGui.QLabel(
|
|
|
|
self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceExampleLabel.setObjectName(
|
|
|
|
u'defaultServiceExampleLabel')
|
|
|
|
self.defaultServiceExample = QtGui.QLabel(self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceExample.setObjectName(u'defaultServiceExample')
|
|
|
|
self.defaultServiceLayout.addRow(self.defaultServiceExampleLabel,
|
|
|
|
self.defaultServiceExample)
|
2012-01-17 08:50:29 +00:00
|
|
|
self.defaultServiceNote = QtGui.QLabel(self.defaultServiceGroupBox)
|
|
|
|
self.defaultServiceNote.setWordWrap(True)
|
|
|
|
self.defaultServiceNote.setObjectName(u'defaultServiceNote')
|
|
|
|
self.defaultServiceLayout.addRow(self.defaultServiceNote)
|
2011-12-15 18:13:45 +00:00
|
|
|
self.leftLayout.addWidget(self.defaultServiceGroupBox)
|
2010-12-31 18:10:45 +00:00
|
|
|
self.leftLayout.addStretch()
|
2011-02-23 06:42:33 +00:00
|
|
|
self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn)
|
|
|
|
self.defaultImageGroupBox.setObjectName(u'defaultImageGroupBox')
|
|
|
|
self.defaultImageLayout = QtGui.QFormLayout(self.defaultImageGroupBox)
|
|
|
|
self.defaultImageLayout.setObjectName(u'defaultImageLayout')
|
|
|
|
self.defaultColorLabel = QtGui.QLabel(self.defaultImageGroupBox)
|
|
|
|
self.defaultColorLabel.setObjectName(u'defaultColorLabel')
|
|
|
|
self.defaultColorButton = QtGui.QPushButton(self.defaultImageGroupBox)
|
|
|
|
self.defaultColorButton.setObjectName(u'defaultColorButton')
|
|
|
|
self.defaultImageLayout.addRow(self.defaultColorLabel,
|
|
|
|
self.defaultColorButton)
|
|
|
|
self.defaultFileLabel = QtGui.QLabel(self.defaultImageGroupBox)
|
|
|
|
self.defaultFileLabel.setObjectName(u'defaultFileLabel')
|
|
|
|
self.defaultFileEdit = QtGui.QLineEdit(self.defaultImageGroupBox)
|
|
|
|
self.defaultFileEdit.setObjectName(u'defaultFileEdit')
|
2011-02-23 13:55:36 +00:00
|
|
|
self.defaultBrowseButton = QtGui.QToolButton(self.defaultImageGroupBox)
|
|
|
|
self.defaultBrowseButton.setObjectName(u'defaultBrowseButton')
|
2011-02-23 20:55:55 +00:00
|
|
|
self.defaultBrowseButton.setIcon(
|
|
|
|
build_icon(u':/general/general_open.png'))
|
2011-04-27 09:00:37 +00:00
|
|
|
self.defaultRevertButton = QtGui.QToolButton(self.defaultImageGroupBox)
|
|
|
|
self.defaultRevertButton.setObjectName(u'defaultRevertButton')
|
|
|
|
self.defaultRevertButton.setIcon(
|
|
|
|
build_icon(u':/general/general_revert.png'))
|
2011-02-23 13:55:36 +00:00
|
|
|
self.defaultFileLayout = QtGui.QHBoxLayout()
|
|
|
|
self.defaultFileLayout.setObjectName(u'defaultFileLayout')
|
|
|
|
self.defaultFileLayout.addWidget(self.defaultFileEdit)
|
|
|
|
self.defaultFileLayout.addWidget(self.defaultBrowseButton)
|
2011-04-27 09:00:37 +00:00
|
|
|
self.defaultFileLayout.addWidget(self.defaultRevertButton)
|
2011-02-23 06:42:33 +00:00
|
|
|
self.defaultImageLayout.addRow(self.defaultFileLabel,
|
2011-02-23 13:55:36 +00:00
|
|
|
self.defaultFileLayout)
|
2011-02-23 06:42:33 +00:00
|
|
|
self.rightLayout.addWidget(self.defaultImageGroupBox)
|
2011-04-27 09:00:37 +00:00
|
|
|
self.hideMouseGroupBox = QtGui.QGroupBox(self.leftColumn)
|
|
|
|
self.hideMouseGroupBox.setObjectName(u'hideMouseGroupBox')
|
|
|
|
self.hideMouseLayout = QtGui.QVBoxLayout(self.hideMouseGroupBox)
|
|
|
|
self.hideMouseLayout.setObjectName(u'hideMouseLayout')
|
|
|
|
self.hideMouseCheckBox = QtGui.QCheckBox(self.hideMouseGroupBox)
|
|
|
|
self.hideMouseCheckBox.setObjectName(u'hideMouseCheckBox')
|
|
|
|
self.hideMouseLayout.addWidget(self.hideMouseCheckBox)
|
|
|
|
self.rightLayout.addWidget(self.hideMouseGroupBox)
|
2012-01-07 11:22:53 +00:00
|
|
|
self.x11GroupBox = QtGui.QGroupBox(self.leftColumn)
|
|
|
|
self.x11GroupBox.setObjectName(u'x11GroupBox')
|
|
|
|
self.x11Layout = QtGui.QVBoxLayout(self.x11GroupBox)
|
|
|
|
self.x11Layout.setObjectName(u'x11Layout')
|
|
|
|
self.x11BypassCheckBox = QtGui.QCheckBox(self.x11GroupBox)
|
|
|
|
self.x11BypassCheckBox.setObjectName(u'x11BypassCheckBox')
|
|
|
|
self.x11Layout.addWidget(self.x11BypassCheckBox)
|
|
|
|
self.rightLayout.addWidget(self.x11GroupBox)
|
2010-12-31 18:10:45 +00:00
|
|
|
self.rightLayout.addStretch()
|
2011-02-23 06:42:33 +00:00
|
|
|
|
2012-01-25 09:32:20 +00:00
|
|
|
QtCore.QObject.connect(self.defaultServiceCheckBox,
|
|
|
|
QtCore.SIGNAL(u'toggled(bool)'), self.defaultServiceCheckBoxToggled)
|
2012-01-15 01:21:35 +00:00
|
|
|
QtCore.QObject.connect(self.defaultServiceDay,
|
|
|
|
QtCore.SIGNAL(u'currentIndexChanged(int)'),
|
|
|
|
self.onDefaultServiceDayChanged)
|
|
|
|
QtCore.QObject.connect(self.defaultServiceTime,
|
|
|
|
QtCore.SIGNAL(u'timeChanged(QTime)'),
|
|
|
|
self.onDefaultServiceTimeChanged)
|
|
|
|
QtCore.QObject.connect(self.defaultServiceName,
|
2011-12-15 18:13:45 +00:00
|
|
|
QtCore.SIGNAL(u'textChanged(QString)'),
|
2012-01-15 01:21:35 +00:00
|
|
|
self.onDefaultServiceNameChanged)
|
2011-12-15 18:13:45 +00:00
|
|
|
QtCore.QObject.connect(self.defaultServiceRevertButton,
|
|
|
|
QtCore.SIGNAL(u'pressed()'),
|
|
|
|
self.onDefaultServiceRevertButtonPressed)
|
2011-02-23 06:42:33 +00:00
|
|
|
QtCore.QObject.connect(self.defaultColorButton,
|
|
|
|
QtCore.SIGNAL(u'pressed()'), self.onDefaultColorButtonPressed)
|
2011-02-23 20:55:55 +00:00
|
|
|
QtCore.QObject.connect(self.defaultBrowseButton,
|
|
|
|
QtCore.SIGNAL(u'pressed()'), self.onDefaultBrowseButtonPressed)
|
2011-04-27 09:00:37 +00:00
|
|
|
QtCore.QObject.connect(self.defaultRevertButton,
|
|
|
|
QtCore.SIGNAL(u'pressed()'), self.onDefaultRevertButtonPressed)
|
2012-01-07 11:22:53 +00:00
|
|
|
QtCore.QObject.connect(self.x11BypassCheckBox,
|
|
|
|
QtCore.SIGNAL(u'toggled(bool)'), self.onX11BypassCheckBoxToggled)
|
2010-07-09 21:32:32 +00:00
|
|
|
|
|
|
|
def retranslateUi(self):
|
|
|
|
"""
|
|
|
|
Setup the interface translation strings.
|
|
|
|
"""
|
2011-04-15 21:43:59 +00:00
|
|
|
self.tabTitleVisible = UiStrings().Advanced
|
2011-04-27 09:00:37 +00:00
|
|
|
self.uiGroupBox.setTitle(
|
|
|
|
translate('OpenLP.AdvancedTab', 'UI Settings'))
|
2010-07-09 21:32:32 +00:00
|
|
|
self.recentLabel.setText(
|
2010-07-26 15:19:11 +00:00
|
|
|
translate('OpenLP.AdvancedTab',
|
|
|
|
'Number of recent files to display:'))
|
2010-07-21 05:20:03 +00:00
|
|
|
self.mediaPluginCheckBox.setText(translate('OpenLP.AdvancedTab',
|
2010-07-21 06:24:32 +00:00
|
|
|
'Remember active media manager tab on startup'))
|
2010-07-21 05:20:03 +00:00
|
|
|
self.doubleClickLiveCheckBox.setText(translate('OpenLP.AdvancedTab',
|
2010-11-26 09:49:06 +00:00
|
|
|
'Double-click to send items straight to live'))
|
2011-04-02 09:52:32 +00:00
|
|
|
self.singleClickPreviewCheckBox.setText(translate('OpenLP.AdvancedTab',
|
|
|
|
'Preview items when clicked in Media Manager'))
|
2010-10-08 19:15:01 +00:00
|
|
|
self.expandServiceItemCheckBox.setText(translate('OpenLP.AdvancedTab',
|
|
|
|
'Expand new service items on creation'))
|
2011-01-02 16:42:30 +00:00
|
|
|
self.enableAutoCloseCheckBox.setText(translate('OpenLP.AdvancedTab',
|
2011-01-03 08:56:17 +00:00
|
|
|
'Enable application exit confirmation'))
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceGroupBox.setTitle(
|
2012-01-16 13:50:17 +00:00
|
|
|
translate('OpenLP.AdvancedTab', 'Default Service Name'))
|
2012-01-25 09:32:20 +00:00
|
|
|
self.defaultServiceCheckBox.setText(
|
2012-01-27 22:10:12 +00:00
|
|
|
translate('OpenLP.AdvancedTab', 'Enable default service name'))
|
2012-01-17 08:50:29 +00:00
|
|
|
self.defaultServiceTimeLabel.setText(
|
2012-01-16 13:50:17 +00:00
|
|
|
translate('OpenLP.AdvancedTab', 'Date and Time:'))
|
2012-01-15 01:21:35 +00:00
|
|
|
self.defaultServiceDay.setItemText(0,
|
|
|
|
translate('OpenLP.AdvancedTab', 'Monday'))
|
|
|
|
self.defaultServiceDay.setItemText(1,
|
|
|
|
translate('OpenLP.AdvancedTab', 'Tuesday'))
|
|
|
|
self.defaultServiceDay.setItemText(2,
|
|
|
|
translate('OpenLP.AdvancedTab', 'Wednesday'))
|
|
|
|
self.defaultServiceDay.setItemText(3,
|
|
|
|
translate('OpenLP.AdvancedTab', 'Thurdsday'))
|
|
|
|
self.defaultServiceDay.setItemText(4,
|
|
|
|
translate('OpenLP.AdvancedTab', 'Friday'))
|
|
|
|
self.defaultServiceDay.setItemText(5,
|
|
|
|
translate('OpenLP.AdvancedTab', 'Saturday'))
|
|
|
|
self.defaultServiceDay.setItemText(6,
|
|
|
|
translate('OpenLP.AdvancedTab', 'Sunday'))
|
|
|
|
self.defaultServiceDay.setItemText(7,
|
|
|
|
translate('OpenLP.AdvancedTab', 'Now'))
|
|
|
|
self.defaultServiceTime.setToolTip(translate('OpenLP.AdvancedTab',
|
|
|
|
'Time when usual service starts.'))
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceLabel.setText(
|
2012-01-16 13:50:17 +00:00
|
|
|
translate('OpenLP.AdvancedTab', 'Name:'))
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceRevertButton.setToolTip(unicode(
|
2012-01-03 00:08:08 +00:00
|
|
|
translate('OpenLP.AdvancedTab',
|
|
|
|
'Revert to the default service name "%s".')) %
|
2011-12-15 18:13:45 +00:00
|
|
|
self.default_service_name)
|
|
|
|
self.defaultServiceExampleLabel.setText(translate('OpenLP.AdvancedTab',
|
2012-01-03 00:08:08 +00:00
|
|
|
'Example:'))
|
2012-01-17 08:50:29 +00:00
|
|
|
self.defaultServiceNote.setText(
|
2012-01-25 09:32:20 +00:00
|
|
|
translate('OpenLP.AdvancedTab', 'Note: '
|
2012-01-27 22:10:12 +00:00
|
|
|
'Consult the OpenLP manual for usage.'))
|
2011-01-17 16:32:58 +00:00
|
|
|
self.hideMouseGroupBox.setTitle(translate('OpenLP.AdvancedTab',
|
2011-01-17 00:08:16 +00:00
|
|
|
'Mouse Cursor'))
|
2011-01-17 16:32:58 +00:00
|
|
|
self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab',
|
2011-02-23 06:42:33 +00:00
|
|
|
'Hide mouse cursor when over display window'))
|
|
|
|
self.defaultImageGroupBox.setTitle(translate('OpenLP.AdvancedTab',
|
|
|
|
'Default Image'))
|
|
|
|
self.defaultColorLabel.setText(translate('OpenLP.AdvancedTab',
|
|
|
|
'Background color:'))
|
2011-04-27 09:00:37 +00:00
|
|
|
self.defaultColorButton.setToolTip(translate('OpenLP.AdvancedTab',
|
|
|
|
'Click to select a color.'))
|
2011-02-23 06:42:33 +00:00
|
|
|
self.defaultFileLabel.setText(translate('OpenLP.AdvancedTab',
|
|
|
|
'Image file:'))
|
2011-04-27 09:00:37 +00:00
|
|
|
self.defaultBrowseButton.setToolTip(translate('OpenLP.AdvancedTab',
|
|
|
|
'Browse for an image file to display.'))
|
|
|
|
self.defaultRevertButton.setToolTip(translate('OpenLP.AdvancedTab',
|
|
|
|
'Revert to the default OpenLP logo.'))
|
2012-01-07 11:22:53 +00:00
|
|
|
self.x11GroupBox.setTitle(translate('OpenLP.AdvancedTab',
|
|
|
|
'X11'))
|
|
|
|
self.x11BypassCheckBox.setText(translate('OpenLP.AdvancedTab',
|
|
|
|
'Bypass X11 Window Manager'))
|
2010-07-09 21:32:32 +00:00
|
|
|
|
|
|
|
def load(self):
|
|
|
|
"""
|
|
|
|
Load settings from disk.
|
|
|
|
"""
|
|
|
|
settings = QtCore.QSettings()
|
|
|
|
settings.beginGroup(self.settingsSection)
|
|
|
|
# The max recent files value does not have an interface and so never
|
|
|
|
# gets actually stored in the settings therefore the default value of
|
|
|
|
# 20 will always be used.
|
|
|
|
self.recentSpinBox.setMaximum(QtCore.QSettings().value(
|
|
|
|
u'max recent files', QtCore.QVariant(20)).toInt()[0])
|
|
|
|
self.recentSpinBox.setValue(settings.value(u'recent file count',
|
|
|
|
QtCore.QVariant(4)).toInt()[0])
|
2010-07-12 14:32:48 +00:00
|
|
|
self.mediaPluginCheckBox.setChecked(
|
|
|
|
settings.value(u'save current plugin',
|
|
|
|
QtCore.QVariant(False)).toBool())
|
2010-07-13 16:00:33 +00:00
|
|
|
self.doubleClickLiveCheckBox.setChecked(
|
|
|
|
settings.value(u'double click live',
|
|
|
|
QtCore.QVariant(False)).toBool())
|
2011-04-02 09:52:32 +00:00
|
|
|
self.singleClickPreviewCheckBox.setChecked(
|
|
|
|
settings.value(u'single click preview',
|
|
|
|
QtCore.QVariant(False)).toBool())
|
2010-10-08 19:15:01 +00:00
|
|
|
self.expandServiceItemCheckBox.setChecked(
|
|
|
|
settings.value(u'expand service item',
|
|
|
|
QtCore.QVariant(False)).toBool())
|
2011-01-02 16:42:30 +00:00
|
|
|
self.enableAutoCloseCheckBox.setChecked(
|
2011-01-03 08:56:17 +00:00
|
|
|
settings.value(u'enable exit confirmation',
|
2011-01-02 16:42:30 +00:00
|
|
|
QtCore.QVariant(True)).toBool())
|
2011-01-17 00:08:16 +00:00
|
|
|
self.hideMouseCheckBox.setChecked(
|
2011-01-18 00:04:12 +00:00
|
|
|
settings.value(u'hide mouse', QtCore.QVariant(False)).toBool())
|
2012-01-25 09:32:20 +00:00
|
|
|
default_service_enabled = settings.value(u'default service enabled',
|
|
|
|
QtCore.QVariant(True)).toBool()
|
2012-01-15 01:21:35 +00:00
|
|
|
self.service_day, ok = settings.value(u'default service day',
|
|
|
|
QtCore.QVariant(self.default_service_day)).toInt()
|
|
|
|
self.service_hour, ok = settings.value(u'default service hour',
|
|
|
|
self.default_service_hour).toInt()
|
|
|
|
self.service_minute, ok = settings.value(u'default service minute',
|
|
|
|
self.default_service_minute).toInt()
|
2011-12-15 18:13:45 +00:00
|
|
|
self.service_name = unicode(settings.value(u'default service name',
|
|
|
|
self.default_service_name).toString())
|
2012-01-15 01:21:35 +00:00
|
|
|
self.defaultServiceDay.setCurrentIndex(self.service_day)
|
|
|
|
self.defaultServiceTime.setTime(
|
|
|
|
QtCore.QTime(self.service_hour, self.service_minute))
|
|
|
|
self.defaultServiceName.setText(self.service_name)
|
2012-01-27 23:13:35 +00:00
|
|
|
self.defaultServiceCheckBox.setChecked(default_service_enabled)
|
2012-01-25 09:32:20 +00:00
|
|
|
self.defaultServiceCheckBoxToggled(default_service_enabled)
|
2012-01-07 11:22:53 +00:00
|
|
|
self.x11BypassCheckBox.setChecked(
|
|
|
|
settings.value(u'x11 bypass wm', QtCore.QVariant(True)).toBool())
|
2011-02-23 06:42:33 +00:00
|
|
|
self.default_color = settings.value(u'default color',
|
2011-04-27 10:30:29 +00:00
|
|
|
QtCore.QVariant(u'#ffffff')).toString()
|
2011-02-23 06:42:33 +00:00
|
|
|
self.defaultFileEdit.setText(settings.value(u'default image',
|
|
|
|
QtCore.QVariant(u':/graphics/openlp-splash-screen.png'))\
|
|
|
|
.toString())
|
2010-07-09 21:32:32 +00:00
|
|
|
settings.endGroup()
|
2011-02-23 06:42:33 +00:00
|
|
|
self.defaultColorButton.setStyleSheet(
|
|
|
|
u'background-color: %s' % self.default_color)
|
2010-07-09 21:32:32 +00:00
|
|
|
|
|
|
|
def save(self):
|
|
|
|
"""
|
|
|
|
Save settings to disk.
|
|
|
|
"""
|
2012-01-15 01:21:35 +00:00
|
|
|
preset_is_valid, name_example = self.generate_service_name_example()
|
|
|
|
if not preset_is_valid:
|
2012-01-03 00:08:08 +00:00
|
|
|
self.service_name = self.default_service_name
|
2012-01-18 11:20:15 +00:00
|
|
|
self.defaultServiceName.setText(self.service_name)
|
2010-07-09 21:32:32 +00:00
|
|
|
settings = QtCore.QSettings()
|
|
|
|
settings.beginGroup(self.settingsSection)
|
2012-01-25 09:32:20 +00:00
|
|
|
settings.setValue(u'default service enabled',
|
|
|
|
self.defaultServiceCheckBox.isChecked())
|
2011-12-15 18:13:45 +00:00
|
|
|
if self.service_name == self.default_service_name:
|
|
|
|
settings.remove(u'default service name')
|
|
|
|
else:
|
|
|
|
settings.setValue(u'default service name', self.service_name)
|
2012-01-15 01:21:35 +00:00
|
|
|
settings.setValue(u'default service day',
|
|
|
|
self.defaultServiceDay.currentIndex())
|
|
|
|
settings.setValue(u'default service hour',
|
|
|
|
self.defaultServiceTime.time().hour())
|
|
|
|
settings.setValue(u'default service minute',
|
|
|
|
self.defaultServiceTime.time().minute())
|
2010-07-09 21:32:32 +00:00
|
|
|
settings.setValue(u'recent file count',
|
|
|
|
QtCore.QVariant(self.recentSpinBox.value()))
|
2010-07-12 14:32:48 +00:00
|
|
|
settings.setValue(u'save current plugin',
|
|
|
|
QtCore.QVariant(self.mediaPluginCheckBox.isChecked()))
|
2010-07-13 16:00:33 +00:00
|
|
|
settings.setValue(u'double click live',
|
|
|
|
QtCore.QVariant(self.doubleClickLiveCheckBox.isChecked()))
|
2011-04-02 09:52:32 +00:00
|
|
|
settings.setValue(u'single click preview',
|
|
|
|
QtCore.QVariant(self.singleClickPreviewCheckBox.isChecked()))
|
2010-10-08 19:15:01 +00:00
|
|
|
settings.setValue(u'expand service item',
|
|
|
|
QtCore.QVariant(self.expandServiceItemCheckBox.isChecked()))
|
2011-01-03 08:56:17 +00:00
|
|
|
settings.setValue(u'enable exit confirmation',
|
2011-01-02 16:42:30 +00:00
|
|
|
QtCore.QVariant(self.enableAutoCloseCheckBox.isChecked()))
|
2011-01-17 00:08:16 +00:00
|
|
|
settings.setValue(u'hide mouse',
|
|
|
|
QtCore.QVariant(self.hideMouseCheckBox.isChecked()))
|
2012-01-07 11:22:53 +00:00
|
|
|
settings.setValue(u'x11 bypass wm',
|
|
|
|
QtCore.QVariant(self.x11BypassCheckBox.isChecked()))
|
2011-02-23 20:55:55 +00:00
|
|
|
settings.setValue(u'default color', self.default_color)
|
|
|
|
settings.setValue(u'default image', self.defaultFileEdit.text())
|
2010-07-09 21:32:32 +00:00
|
|
|
settings.endGroup()
|
2012-01-07 11:22:53 +00:00
|
|
|
if self.display_changed:
|
|
|
|
Receiver.send_message(u'config_screen_changed')
|
|
|
|
self.display_changed = False
|
2010-07-09 21:32:32 +00:00
|
|
|
|
2012-01-25 09:32:20 +00:00
|
|
|
def defaultServiceCheckBoxToggled(self, default_service_enabled):
|
|
|
|
self.defaultServiceDay.setEnabled(default_service_enabled)
|
|
|
|
time_enabled = default_service_enabled and self.service_day is not 7
|
|
|
|
self.defaultServiceTime.setEnabled(time_enabled)
|
|
|
|
self.defaultServiceName.setEnabled(default_service_enabled)
|
|
|
|
self.defaultServiceRevertButton.setEnabled(default_service_enabled)
|
|
|
|
|
2012-01-15 01:21:35 +00:00
|
|
|
def generate_service_name_example(self):
|
|
|
|
preset_is_valid = True
|
|
|
|
if self.service_day == 7:
|
|
|
|
time = datetime.now()
|
|
|
|
else:
|
|
|
|
now = datetime.now()
|
|
|
|
day_delta = self.service_day - now.weekday()
|
|
|
|
if day_delta < 0:
|
|
|
|
day_delta += 7
|
|
|
|
time = now + timedelta(days=day_delta)
|
|
|
|
time = time.replace(hour = self.service_hour,
|
|
|
|
minute = self.service_minute)
|
2011-12-15 18:13:45 +00:00
|
|
|
try:
|
2012-01-15 01:21:35 +00:00
|
|
|
service_name_example = time.strftime(unicode(self.service_name))
|
2011-12-15 18:13:45 +00:00
|
|
|
except ValueError:
|
2012-01-18 11:20:15 +00:00
|
|
|
preset_is_valid = False
|
2012-01-03 00:08:08 +00:00
|
|
|
service_name_example = translate('OpenLP.AdvancedTab',
|
|
|
|
'Syntax error.')
|
2012-01-15 01:21:35 +00:00
|
|
|
return preset_is_valid, service_name_example
|
2011-12-15 18:13:45 +00:00
|
|
|
|
2012-01-15 01:21:35 +00:00
|
|
|
def updateServiceNameExample(self):
|
|
|
|
preset_is_valid, name_example = self.generate_service_name_example()
|
2011-12-15 18:13:45 +00:00
|
|
|
self.defaultServiceExample.setText(name_example)
|
|
|
|
|
2012-01-15 01:21:35 +00:00
|
|
|
def onDefaultServiceDayChanged(self, index):
|
|
|
|
self.service_day = index
|
2012-01-25 09:32:20 +00:00
|
|
|
self.defaultServiceTime.setEnabled(self.service_day is not 7)
|
2012-01-15 01:21:35 +00:00
|
|
|
self.updateServiceNameExample()
|
|
|
|
|
|
|
|
def onDefaultServiceTimeChanged(self, time):
|
|
|
|
self.service_hour = time.hour()
|
|
|
|
self.service_minute = time.minute()
|
|
|
|
self.updateServiceNameExample()
|
|
|
|
|
|
|
|
def onDefaultServiceNameChanged(self, name):
|
|
|
|
self.service_name = name
|
|
|
|
self.updateServiceNameExample()
|
|
|
|
|
2011-12-15 18:13:45 +00:00
|
|
|
def onDefaultServiceRevertButtonPressed(self):
|
2012-01-15 01:21:35 +00:00
|
|
|
self.defaultServiceName.setText(self.default_service_name)
|
|
|
|
self.defaultServiceName.setFocus()
|
2011-12-15 18:13:45 +00:00
|
|
|
|
2011-02-23 06:42:33 +00:00
|
|
|
def onDefaultColorButtonPressed(self):
|
|
|
|
new_color = QtGui.QColorDialog.getColor(
|
|
|
|
QtGui.QColor(self.default_color), self)
|
|
|
|
if new_color.isValid():
|
|
|
|
self.default_color = new_color.name()
|
|
|
|
self.defaultColorButton.setStyleSheet(
|
|
|
|
u'background-color: %s' % self.default_color)
|
|
|
|
|
2011-02-23 20:55:55 +00:00
|
|
|
def onDefaultBrowseButtonPressed(self):
|
|
|
|
file_filters = u'%s;;%s (*.*) (*)' % (get_images_filter(),
|
2011-04-15 21:43:59 +00:00
|
|
|
UiStrings().AllFiles)
|
2011-02-23 20:55:55 +00:00
|
|
|
filename = QtGui.QFileDialog.getOpenFileName(self,
|
|
|
|
translate('OpenLP.AdvancedTab', 'Open File'), '',
|
|
|
|
file_filters)
|
|
|
|
if filename:
|
|
|
|
self.defaultFileEdit.setText(filename)
|
2011-04-27 09:00:37 +00:00
|
|
|
self.defaultFileEdit.setFocus()
|
|
|
|
|
|
|
|
def onDefaultRevertButtonPressed(self):
|
|
|
|
self.defaultFileEdit.setText(u':/graphics/openlp-splash-screen.png')
|
|
|
|
self.defaultFileEdit.setFocus()
|
2012-01-07 11:22:53 +00:00
|
|
|
|
|
|
|
def onX11BypassCheckBoxToggled(self, checked):
|
|
|
|
"""
|
|
|
|
Toggle X11 bypass flag on maindisplay depending on check box state.
|
|
|
|
|
|
|
|
``checked``
|
|
|
|
The state of the check box (boolean).
|
|
|
|
"""
|
|
|
|
self.display_changed = True
|