From cd565fe4a9c31b82cdd6d5e65a89a8bcaddc09ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Thu, 15 Dec 2011 20:13:45 +0200 Subject: [PATCH 01/20] First almost working example. I suppose someone suggest to make specific class now. You may be right :) --- openlp/core/ui/advancedtab.py | 103 ++++++++++++++++++++++++++++++- openlp/core/ui/servicemanager.py | 12 +++- 2 files changed, 111 insertions(+), 4 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 43e2a9915..dc15b80ef 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -32,6 +32,8 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import SettingsTab, translate, build_icon from openlp.core.lib.ui import UiStrings from openlp.core.utils import get_images_filter +from datetime import datetime +import re class AdvancedTab(SettingsTab): """ @@ -42,7 +44,14 @@ class AdvancedTab(SettingsTab): """ Initialise the settings tab """ - advancedTranslated = translate('OpenLP.AdvancedTab', 'Advanced') + advancedTranslated = translate(u'OpenLP.AdvancedTab', u'Advanced') + self.default_service_name = unicode(translate(u'OpenLP.AdvancedTab', + u'Service %Y-%m-%d')) + self.default_service_example = unicode(translate(u'OpenLP.AdvancedTab', + u'%Y-%m-%d', + u'This should be the date part of default service name.')) + self.wrong_characters_expression = \ + re.compile(r'[\[\]/\;,><&*:%=+@!#^()|?^]+') self.default_image = u':/graphics/openlp-splash-screen.png' self.default_color = u'#ffffff' self.icon_path = u':/system/system_settings.png' @@ -83,6 +92,40 @@ class AdvancedTab(SettingsTab): u'enableAutoCloseCheckBox') self.uiLayout.addRow(self.enableAutoCloseCheckBox) self.leftLayout.addWidget(self.uiGroupBox) + self.defaultServiceGroupBox = QtGui.QGroupBox(self.leftColumn) + self.defaultServiceGroupBox.setObjectName(u'defaultServiceGroupBox') + self.defaultServiceLayout = QtGui.QFormLayout( + self.defaultServiceGroupBox) + self.defaultServiceLayout.setObjectName(u'defaultServiceLayout') + self.defaultServiceLabel = QtGui.QLabel(self.defaultServiceGroupBox) + self.defaultServiceLabel.setObjectName(u'defaultServiceLabel') + self.defaultServiceEdit = QtGui.QLineEdit(self.defaultServiceGroupBox) + self.defaultServiceEdit.setObjectName(u'defaultServiceEdit') + 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') + self.defaultServiceHBox.addWidget(self.defaultServiceLabel) + self.defaultServiceHBox.addWidget(self.defaultServiceEdit) + self.defaultServiceHBox.addWidget(self.defaultServiceRevertButton) + self.defaultServiceLayout.addRow(self.defaultServiceHBox) + 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) + self.defaultServiceNoteLabel = QtGui.QLabel(self.defaultServiceGroupBox) + self.defaultServiceNoteLabel.setWordWrap(True) + self.defaultServiceNoteLabel.setObjectName(u'defaultServiceNoteLabel') + self.defaultServiceLayout.addRow(self.defaultServiceNoteLabel) + self.leftLayout.addWidget(self.defaultServiceGroupBox) self.leftLayout.addStretch() self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn) self.defaultImageGroupBox.setObjectName(u'defaultImageGroupBox') @@ -124,6 +167,12 @@ class AdvancedTab(SettingsTab): self.rightLayout.addWidget(self.hideMouseGroupBox) self.rightLayout.addStretch() + QtCore.QObject.connect(self.defaultServiceEdit, + QtCore.SIGNAL(u'textChanged(QString)'), + self.onDefaultServiceUpdated) + QtCore.QObject.connect(self.defaultServiceRevertButton, + QtCore.SIGNAL(u'pressed()'), + self.onDefaultServiceRevertButtonPressed) QtCore.QObject.connect(self.defaultColorButton, QtCore.SIGNAL(u'pressed()'), self.onDefaultColorButtonPressed) QtCore.QObject.connect(self.defaultBrowseButton, @@ -151,6 +200,22 @@ class AdvancedTab(SettingsTab): 'Expand new service items on creation')) self.enableAutoCloseCheckBox.setText(translate('OpenLP.AdvancedTab', 'Enable application exit confirmation')) + self.defaultServiceGroupBox.setTitle( + translate(u'OpenLP.AdvancedTab', u'Default Service')) + self.defaultServiceLabel.setText( + translate(u'OpenLP.AdvancedTab', u'Default service name:')) + self.defaultServiceRevertButton.setToolTip(unicode( + translate(u'OpenLP.AdvancedTab', + u'Revert to the default service name "%s".')) % + self.default_service_name) + self.defaultServiceExampleLabel.setText(translate('OpenLP.AdvancedTab', + u'Example:')) + self.defaultServiceNoteLabel.setText(unicode( + translate(u'OpenLP.AdvancedTab', u'Default service name when ' + 'saving a new service. You can use date placeholders, e.g %s ' + 'results in %s. Leave it empty to use no default value.')) % + (self.default_service_example, + datetime.now().strftime(self.default_service_example))) self.hideMouseGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Mouse Cursor')) self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab', @@ -198,6 +263,9 @@ class AdvancedTab(SettingsTab): QtCore.QVariant(True)).toBool()) self.hideMouseCheckBox.setChecked( settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) + self.service_name = unicode(settings.value(u'default service name', + self.default_service_name).toString()) + self.defaultServiceEdit.setText(self.service_name) self.default_color = settings.value(u'default color', QtCore.QVariant(u'#ffffff')).toString() self.defaultFileEdit.setText(settings.value(u'default image', @@ -211,8 +279,18 @@ class AdvancedTab(SettingsTab): """ Save settings to disk. """ + self.service_name = unicode(self.defaultServiceEdit.text()) + preset_okay, name_example = self.generate_service_name_example( + self.service_name) + if not preset_okay: + # should alert or something + pass settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) + if self.service_name == self.default_service_name: + settings.remove(u'default service name') + else: + settings.setValue(u'default service name', self.service_name) settings.setValue(u'recent file count', QtCore.QVariant(self.recentSpinBox.value())) settings.setValue(u'save current plugin', @@ -231,6 +309,29 @@ class AdvancedTab(SettingsTab): settings.setValue(u'default image', self.defaultFileEdit.text()) settings.endGroup() + def generate_service_name_example(self, service_name_preset): + preset_okay = True + try: + service_name_example = datetime.now().strftime( + unicode(service_name_preset)) + if self.wrong_characters_expression.search(service_name_example): + service_name_example = translate(u'OpenLP.AdvancedTab', + u'Filename contains wrong characters.') + preset_okay = False + except ValueError: + service_name_example = translate(u'OpenLP.AdvancedTab', + u'Syntax error.') + preset_okay = False + return preset_okay, service_name_example + + def onDefaultServiceUpdated(self, preset): + preset_okay, name_example = self.generate_service_name_example(preset) + self.defaultServiceExample.setText(name_example) + + def onDefaultServiceRevertButtonPressed(self): + self.defaultServiceEdit.setText(self.default_service_name) + self.defaultServiceEdit.setFocus() + def onDefaultColorButtonPressed(self): new_color = QtGui.QColorDialog.getColor( QtGui.QColor(self.default_color), self) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 0eb1e77c5..036db96c3 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -31,6 +31,7 @@ import os import shutil import zipfile from tempfile import mkstemp +from datetime import datetime log = logging.getLogger(__name__) @@ -610,10 +611,15 @@ class ServiceManager(QtGui.QWidget): Get a file name and then call :func:`ServiceManager.saveFile` to save the file. """ + default_pattern = unicode(QtCore.QSettings().value( + u'advanced/default service name', + translate(u'OpenLP.AdvancedTab', u'Service %Y-%m-%d')).toString()) + default_filename = datetime.now().strftime(default_pattern) + directory = unicode(SettingsManager.get_last_dir( + self.mainwindow.servicemanagerSettingsSection)) + path = os.path.join(directory, default_filename) fileName = unicode(QtGui.QFileDialog.getSaveFileName(self.mainwindow, - UiStrings().SaveService, - SettingsManager.get_last_dir( - self.mainwindow.servicemanagerSettingsSection), + UiStrings().SaveService, path, translate('OpenLP.ServiceManager', 'OpenLP Service Files (*.osz)'))) if not fileName: return False From 1cf246940d1363b5459ee6f0cb6b2f290d50ba14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Tue, 3 Jan 2012 02:08:08 +0200 Subject: [PATCH 02/20] A few fixes, useful when default service name is wrong. --- openlp/core/ui/advancedtab.py | 35 ++++++++++++++++---------------- openlp/core/ui/servicemanager.py | 2 +- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index dc15b80ef..adc1e7a81 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -44,12 +44,12 @@ class AdvancedTab(SettingsTab): """ Initialise the settings tab """ - advancedTranslated = translate(u'OpenLP.AdvancedTab', u'Advanced') - self.default_service_name = unicode(translate(u'OpenLP.AdvancedTab', - u'Service %Y-%m-%d')) - self.default_service_example = unicode(translate(u'OpenLP.AdvancedTab', - u'%Y-%m-%d', - u'This should be the date part of default service name.')) + advancedTranslated = translate('OpenLP.AdvancedTab', 'Advanced') + self.default_service_name = unicode(translate('OpenLP.AdvancedTab', + 'Service %Y-%m-%d')) + self.default_service_example = unicode(translate('OpenLP.AdvancedTab', + '%Y-%m-%d', + 'This should be the date part of default service name.')) self.wrong_characters_expression = \ re.compile(r'[\[\]/\;,><&*:%=+@!#^()|?^]+') self.default_image = u':/graphics/openlp-splash-screen.png' @@ -201,17 +201,17 @@ class AdvancedTab(SettingsTab): self.enableAutoCloseCheckBox.setText(translate('OpenLP.AdvancedTab', 'Enable application exit confirmation')) self.defaultServiceGroupBox.setTitle( - translate(u'OpenLP.AdvancedTab', u'Default Service')) + translate('OpenLP.AdvancedTab', 'Default Service')) self.defaultServiceLabel.setText( - translate(u'OpenLP.AdvancedTab', u'Default service name:')) + translate('OpenLP.AdvancedTab', 'Default service name:')) self.defaultServiceRevertButton.setToolTip(unicode( - translate(u'OpenLP.AdvancedTab', - u'Revert to the default service name "%s".')) % + translate('OpenLP.AdvancedTab', + 'Revert to the default service name "%s".')) % self.default_service_name) self.defaultServiceExampleLabel.setText(translate('OpenLP.AdvancedTab', - u'Example:')) + 'Example:')) self.defaultServiceNoteLabel.setText(unicode( - translate(u'OpenLP.AdvancedTab', u'Default service name when ' + translate('OpenLP.AdvancedTab', 'Default service name when ' 'saving a new service. You can use date placeholders, e.g %s ' 'results in %s. Leave it empty to use no default value.')) % (self.default_service_example, @@ -283,8 +283,7 @@ class AdvancedTab(SettingsTab): preset_okay, name_example = self.generate_service_name_example( self.service_name) if not preset_okay: - # should alert or something - pass + self.service_name = self.default_service_name settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) if self.service_name == self.default_service_name: @@ -315,12 +314,12 @@ class AdvancedTab(SettingsTab): service_name_example = datetime.now().strftime( unicode(service_name_preset)) if self.wrong_characters_expression.search(service_name_example): - service_name_example = translate(u'OpenLP.AdvancedTab', - u'Filename contains wrong characters.') + service_name_example = translate('OpenLP.AdvancedTab', + 'Filename contains wrong characters.') preset_okay = False except ValueError: - service_name_example = translate(u'OpenLP.AdvancedTab', - u'Syntax error.') + service_name_example = translate('OpenLP.AdvancedTab', + 'Syntax error.') preset_okay = False return preset_okay, service_name_example diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 036db96c3..2e881efb4 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -613,7 +613,7 @@ class ServiceManager(QtGui.QWidget): """ default_pattern = unicode(QtCore.QSettings().value( u'advanced/default service name', - translate(u'OpenLP.AdvancedTab', u'Service %Y-%m-%d')).toString()) + translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d')).toString()) default_filename = datetime.now().strftime(default_pattern) directory = unicode(SettingsManager.get_last_dir( self.mainwindow.servicemanagerSettingsSection)) From b70f95c8251ee9ae74e649062dae47c0d66b06ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Sun, 15 Jan 2012 03:21:35 +0200 Subject: [PATCH 03/20] Added possibility to choose one day time in next week or now as the datetime. Also took Meinert's comment about too restricted filename characters into account. --- openlp/core/ui/advancedtab.py | 136 ++++++++++++++++++++++++------- openlp/core/ui/servicemanager.py | 22 ++++- 2 files changed, 126 insertions(+), 32 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 77eca8382..788f7ce0f 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -32,7 +32,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import SettingsTab, translate, build_icon from openlp.core.lib.ui import UiStrings from openlp.core.utils import get_images_filter -from datetime import datetime +from datetime import datetime, timedelta import re class AdvancedTab(SettingsTab): @@ -45,13 +45,16 @@ class AdvancedTab(SettingsTab): Initialise the settings tab """ advancedTranslated = translate('OpenLP.AdvancedTab', 'Advanced') + # 7 stands for now, 0 to 6 is Monday to Sunday. + self.default_service_day = 0 + # 11 o'clock is the most popular time for morning service. + self.default_service_hour = 11 + self.default_service_minute = 0 self.default_service_name = unicode(translate('OpenLP.AdvancedTab', - 'Service %Y-%m-%d')) + 'Service %Y-%m-%d-%H-%M')) self.default_service_example = unicode(translate('OpenLP.AdvancedTab', - '%Y-%m-%d', + '%Y-%m-%d-%H-%M', 'This should be the date part of default service name.')) - self.wrong_characters_expression = \ - re.compile(r'[\[\]/\;,><&*:%=+@!#^()|?^]+') self.default_image = u':/graphics/openlp-splash-screen.png' self.default_color = u'#ffffff' self.icon_path = u':/system/system_settings.png' @@ -97,10 +100,28 @@ class AdvancedTab(SettingsTab): self.defaultServiceLayout = QtGui.QFormLayout( self.defaultServiceGroupBox) self.defaultServiceLayout.setObjectName(u'defaultServiceLayout') + self.defaultServiceDayLabel = QtGui.QLabel(self.defaultServiceGroupBox) + self.defaultServiceDayLabel.setObjectName(u'defaultServiceDayLabel') + 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.defaultServiceDayLabel) + self.defaultServiceTimeHBox.addWidget(self.defaultServiceDay) + self.defaultServiceTimeHBox.addWidget(self.defaultServiceTime) + self.defaultServiceLayout.addRow(self.defaultServiceTimeHBox) self.defaultServiceLabel = QtGui.QLabel(self.defaultServiceGroupBox) self.defaultServiceLabel.setObjectName(u'defaultServiceLabel') - self.defaultServiceEdit = QtGui.QLineEdit(self.defaultServiceGroupBox) - self.defaultServiceEdit.setObjectName(u'defaultServiceEdit') + self.defaultServiceName = QtGui.QLineEdit(self.defaultServiceGroupBox) + self.defaultServiceName.setObjectName(u'defaultServiceName') + self.defaultServiceName.setValidator(QtGui.QRegExpValidator( + QtCore.QRegExp(r'[^/\\?*|<>\[\]":+]+'), self)) self.defaultServiceRevertButton = QtGui.QToolButton( self.defaultServiceGroupBox) self.defaultServiceRevertButton.setObjectName( @@ -110,7 +131,7 @@ class AdvancedTab(SettingsTab): self.defaultServiceHBox = QtGui.QHBoxLayout() self.defaultServiceHBox.setObjectName(u'defaultServiceHBox') self.defaultServiceHBox.addWidget(self.defaultServiceLabel) - self.defaultServiceHBox.addWidget(self.defaultServiceEdit) + self.defaultServiceHBox.addWidget(self.defaultServiceName) self.defaultServiceHBox.addWidget(self.defaultServiceRevertButton) self.defaultServiceLayout.addRow(self.defaultServiceHBox) self.defaultServiceExampleLabel = QtGui.QLabel( @@ -167,9 +188,15 @@ class AdvancedTab(SettingsTab): self.rightLayout.addWidget(self.hideMouseGroupBox) self.rightLayout.addStretch() - QtCore.QObject.connect(self.defaultServiceEdit, + 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, QtCore.SIGNAL(u'textChanged(QString)'), - self.onDefaultServiceUpdated) + self.onDefaultServiceNameChanged) QtCore.QObject.connect(self.defaultServiceRevertButton, QtCore.SIGNAL(u'pressed()'), self.onDefaultServiceRevertButtonPressed) @@ -202,6 +229,26 @@ class AdvancedTab(SettingsTab): 'Enable application exit confirmation')) self.defaultServiceGroupBox.setTitle( translate('OpenLP.AdvancedTab', 'Default Service')) + self.defaultServiceDayLabel.setText( + translate('OpenLP.AdvancedTab', 'Service name refers to:')) + 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.')) self.defaultServiceLabel.setText( translate('OpenLP.AdvancedTab', 'Default service name:')) self.defaultServiceRevertButton.setToolTip(unicode( @@ -263,9 +310,18 @@ class AdvancedTab(SettingsTab): QtCore.QVariant(True)).toBool()) self.hideMouseCheckBox.setChecked( settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) + 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() self.service_name = unicode(settings.value(u'default service name', self.default_service_name).toString()) - self.defaultServiceEdit.setText(self.service_name) + self.defaultServiceDay.setCurrentIndex(self.service_day) + self.defaultServiceTime.setTime( + QtCore.QTime(self.service_hour, self.service_minute)) + self.defaultServiceName.setText(self.service_name) self.default_color = settings.value(u'default color', QtCore.QVariant(u'#ffffff')).toString() self.defaultFileEdit.setText(settings.value(u'default image', @@ -279,10 +335,8 @@ class AdvancedTab(SettingsTab): """ Save settings to disk. """ - self.service_name = unicode(self.defaultServiceEdit.text()) - preset_okay, name_example = self.generate_service_name_example( - self.service_name) - if not preset_okay: + preset_is_valid, name_example = self.generate_service_name_example() + if not preset_is_valid: self.service_name = self.default_service_name settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) @@ -290,6 +344,12 @@ class AdvancedTab(SettingsTab): settings.remove(u'default service name') else: settings.setValue(u'default service name', self.service_name) + 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()) settings.setValue(u'recent file count', QtCore.QVariant(self.recentSpinBox.value())) settings.setValue(u'save current plugin', @@ -308,28 +368,46 @@ class AdvancedTab(SettingsTab): settings.setValue(u'default image', self.defaultFileEdit.text()) settings.endGroup() - def generate_service_name_example(self, service_name_preset): - preset_okay = True + 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) try: - service_name_example = datetime.now().strftime( - unicode(service_name_preset)) - if self.wrong_characters_expression.search(service_name_example): - service_name_example = translate('OpenLP.AdvancedTab', - 'Filename contains wrong characters.') - preset_okay = False + service_name_example = time.strftime(unicode(self.service_name)) except ValueError: service_name_example = translate('OpenLP.AdvancedTab', 'Syntax error.') - preset_okay = False - return preset_okay, service_name_example + preset_is_valid = False + return preset_is_valid, service_name_example - def onDefaultServiceUpdated(self, preset): - preset_okay, name_example = self.generate_service_name_example(preset) + def updateServiceNameExample(self): + preset_is_valid, name_example = self.generate_service_name_example() self.defaultServiceExample.setText(name_example) + def onDefaultServiceDayChanged(self, index): + self.service_day = index + 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() + def onDefaultServiceRevertButtonPressed(self): - self.defaultServiceEdit.setText(self.default_service_name) - self.defaultServiceEdit.setFocus() + self.defaultServiceName.setText(self.default_service_name) + self.defaultServiceName.setFocus() def onDefaultColorButtonPressed(self): new_color = QtGui.QColorDialog.getColor( diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 54aae2f94..f75d5ec8c 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -31,7 +31,7 @@ import os import shutil import zipfile from tempfile import mkstemp -from datetime import datetime +from datetime import datetime, timedelta log = logging.getLogger(__name__) @@ -610,10 +610,26 @@ class ServiceManager(QtGui.QWidget): Get a file name and then call :func:`ServiceManager.saveFile` to save the file. """ + service_day, ok = QtCore.QSettings().value( + u'advanced/default service day', 7).toInt() + if service_day == 7: + time = datetime.now() + else: + service_hour, ok = QtCore.QSettings().value( + u'advanced/default service hour', 11).toInt() + service_minute, ok = QtCore.QSettings().value( + u'advanced/default service minute', 0).toInt() + now = datetime.now() + day_delta = service_day - now.weekday() + if day_delta < 0: + day_delta += 7 + time = now + timedelta(days=day_delta) + time = time.replace(hour = service_hour, minute = service_minute) default_pattern = unicode(QtCore.QSettings().value( u'advanced/default service name', - translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d')).toString()) - default_filename = datetime.now().strftime(default_pattern) + translate('OpenLP.AdvancedTab', + 'Service %Y-%m-%d-%H-%M')).toString()) + default_filename = time.strftime(default_pattern) directory = unicode(SettingsManager.get_last_dir( self.mainwindow.servicemanagerSettingsSection)) path = os.path.join(directory, default_filename) From e6f2fd67c3b680be2180fadea45aaf793c465c6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Sun, 15 Jan 2012 11:58:02 +0200 Subject: [PATCH 04/20] Disable QTimeEdit box, when it is not used. --- openlp/core/ui/advancedtab.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 056374d46..6ca50de2b 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -416,6 +416,7 @@ class AdvancedTab(SettingsTab): def onDefaultServiceDayChanged(self, index): self.service_day = index + self.defaultServiceTime.setReadOnly(self.service_day == 7) self.updateServiceNameExample() def onDefaultServiceTimeChanged(self, time): From 982bfbbd55caab4719bac99dfb35c2f132f63322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Mon, 16 Jan 2012 15:50:17 +0200 Subject: [PATCH 05/20] Fix labels according to Meinert's comment. --- openlp/core/ui/advancedtab.py | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 6ca50de2b..5774db9ff 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -143,10 +143,6 @@ class AdvancedTab(SettingsTab): self.defaultServiceExample.setObjectName(u'defaultServiceExample') self.defaultServiceLayout.addRow(self.defaultServiceExampleLabel, self.defaultServiceExample) - self.defaultServiceNoteLabel = QtGui.QLabel(self.defaultServiceGroupBox) - self.defaultServiceNoteLabel.setWordWrap(True) - self.defaultServiceNoteLabel.setObjectName(u'defaultServiceNoteLabel') - self.defaultServiceLayout.addRow(self.defaultServiceNoteLabel) self.leftLayout.addWidget(self.defaultServiceGroupBox) self.leftLayout.addStretch() self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn) @@ -239,9 +235,9 @@ class AdvancedTab(SettingsTab): self.enableAutoCloseCheckBox.setText(translate('OpenLP.AdvancedTab', 'Enable application exit confirmation')) self.defaultServiceGroupBox.setTitle( - translate('OpenLP.AdvancedTab', 'Default Service')) + translate('OpenLP.AdvancedTab', 'Default Service Name')) self.defaultServiceDayLabel.setText( - translate('OpenLP.AdvancedTab', 'Service name refers to:')) + translate('OpenLP.AdvancedTab', 'Date and Time:')) self.defaultServiceDay.setItemText(0, translate('OpenLP.AdvancedTab', 'Monday')) self.defaultServiceDay.setItemText(1, @@ -261,19 +257,13 @@ class AdvancedTab(SettingsTab): self.defaultServiceTime.setToolTip(translate('OpenLP.AdvancedTab', 'Time when usual service starts.')) self.defaultServiceLabel.setText( - translate('OpenLP.AdvancedTab', 'Default service name:')) + translate('OpenLP.AdvancedTab', 'Name:')) self.defaultServiceRevertButton.setToolTip(unicode( translate('OpenLP.AdvancedTab', 'Revert to the default service name "%s".')) % self.default_service_name) self.defaultServiceExampleLabel.setText(translate('OpenLP.AdvancedTab', 'Example:')) - self.defaultServiceNoteLabel.setText(unicode( - translate('OpenLP.AdvancedTab', 'Default service name when ' - 'saving a new service. You can use date placeholders, e.g %s ' - 'results in %s. Leave it empty to use no default value.')) % - (self.default_service_example, - datetime.now().strftime(self.default_service_example))) self.hideMouseGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Mouse Cursor')) self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab', From df60a89121ed127466ad8a67a2fe502a2743179b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Mon, 16 Jan 2012 15:59:23 +0200 Subject: [PATCH 06/20] Change default name and remove now obsolete string. --- openlp/core/ui/advancedtab.py | 7 ++----- openlp/core/ui/servicemanager.py | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 5774db9ff..67811a209 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -47,15 +47,12 @@ class AdvancedTab(SettingsTab): self.display_changed = False advancedTranslated = translate('OpenLP.AdvancedTab', 'Advanced') # 7 stands for now, 0 to 6 is Monday to Sunday. - self.default_service_day = 0 + self.default_service_day = 7 # 11 o'clock is the most popular time for morning service. self.default_service_hour = 11 self.default_service_minute = 0 self.default_service_name = unicode(translate('OpenLP.AdvancedTab', - 'Service %Y-%m-%d-%H-%M')) - self.default_service_example = unicode(translate('OpenLP.AdvancedTab', - '%Y-%m-%d-%H-%M', - 'This should be the date part of default service name.')) + 'Service %Y-%m-%d %H-%M')) self.default_image = u':/graphics/openlp-splash-screen.png' self.default_color = u'#ffffff' self.icon_path = u':/system/system_settings.png' diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 4d7398243..44a9cb6de 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -631,7 +631,7 @@ class ServiceManager(QtGui.QWidget): default_pattern = unicode(QtCore.QSettings().value( u'advanced/default service name', translate('OpenLP.AdvancedTab', - 'Service %Y-%m-%d-%H-%M')).toString()) + 'Service %Y-%m-%d %H-%M')).toString()) default_filename = time.strftime(default_pattern) directory = unicode(SettingsManager.get_last_dir( self.mainwindow.servicemanagerSettingsSection)) From e4f983e6ca353b3905420841e72892ccb63da2de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Tue, 17 Jan 2012 10:50:29 +0200 Subject: [PATCH 07/20] Label back with new text. Also element Labels to the right place as Meinert suggested. --- openlp/core/ui/advancedtab.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 67811a209..f4583a33f 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -98,8 +98,8 @@ class AdvancedTab(SettingsTab): self.defaultServiceLayout = QtGui.QFormLayout( self.defaultServiceGroupBox) self.defaultServiceLayout.setObjectName(u'defaultServiceLayout') - self.defaultServiceDayLabel = QtGui.QLabel(self.defaultServiceGroupBox) - self.defaultServiceDayLabel.setObjectName(u'defaultServiceDayLabel') + self.defaultServiceTimeLabel = QtGui.QLabel(self.defaultServiceGroupBox) + self.defaultServiceTimeLabel.setObjectName(u'defaultServiceTimeLabel') self.defaultServiceDay = QtGui.QComboBox( self.defaultServiceGroupBox) self.defaultServiceDay.addItems( @@ -110,10 +110,10 @@ class AdvancedTab(SettingsTab): self.defaultServiceTime.setObjectName(u'defaultServiceTime') self.defaultServiceTimeHBox = QtGui.QHBoxLayout() self.defaultServiceTimeHBox.setObjectName(u'defaultServiceTimeHBox') - self.defaultServiceTimeHBox.addWidget(self.defaultServiceDayLabel) self.defaultServiceTimeHBox.addWidget(self.defaultServiceDay) self.defaultServiceTimeHBox.addWidget(self.defaultServiceTime) - self.defaultServiceLayout.addRow(self.defaultServiceTimeHBox) + self.defaultServiceLayout.addRow(self.defaultServiceTimeLabel, + self.defaultServiceTimeHBox) self.defaultServiceLabel = QtGui.QLabel(self.defaultServiceGroupBox) self.defaultServiceLabel.setObjectName(u'defaultServiceLabel') self.defaultServiceName = QtGui.QLineEdit(self.defaultServiceGroupBox) @@ -128,10 +128,10 @@ class AdvancedTab(SettingsTab): build_icon(u':/general/general_revert.png')) self.defaultServiceHBox = QtGui.QHBoxLayout() self.defaultServiceHBox.setObjectName(u'defaultServiceHBox') - self.defaultServiceHBox.addWidget(self.defaultServiceLabel) self.defaultServiceHBox.addWidget(self.defaultServiceName) self.defaultServiceHBox.addWidget(self.defaultServiceRevertButton) - self.defaultServiceLayout.addRow(self.defaultServiceHBox) + self.defaultServiceLayout.addRow(self.defaultServiceLabel, + self.defaultServiceHBox) self.defaultServiceExampleLabel = QtGui.QLabel( self.defaultServiceGroupBox) self.defaultServiceExampleLabel.setObjectName( @@ -140,6 +140,10 @@ class AdvancedTab(SettingsTab): self.defaultServiceExample.setObjectName(u'defaultServiceExample') self.defaultServiceLayout.addRow(self.defaultServiceExampleLabel, self.defaultServiceExample) + self.defaultServiceNote = QtGui.QLabel(self.defaultServiceGroupBox) + self.defaultServiceNote.setWordWrap(True) + self.defaultServiceNote.setObjectName(u'defaultServiceNote') + self.defaultServiceLayout.addRow(self.defaultServiceNote) self.leftLayout.addWidget(self.defaultServiceGroupBox) self.leftLayout.addStretch() self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn) @@ -233,7 +237,7 @@ class AdvancedTab(SettingsTab): 'Enable application exit confirmation')) self.defaultServiceGroupBox.setTitle( translate('OpenLP.AdvancedTab', 'Default Service Name')) - self.defaultServiceDayLabel.setText( + self.defaultServiceTimeLabel.setText( translate('OpenLP.AdvancedTab', 'Date and Time:')) self.defaultServiceDay.setItemText(0, translate('OpenLP.AdvancedTab', 'Monday')) @@ -261,6 +265,10 @@ class AdvancedTab(SettingsTab): self.default_service_name) self.defaultServiceExampleLabel.setText(translate('OpenLP.AdvancedTab', 'Example:')) + self.defaultServiceNote.setText( + translate('OpenLP.AdvancedTab', 'Note: Leave Name field blank to ' + 'have no prefilled name in Save As dialog. ' + 'Consult manual for special symbols usage.')) self.hideMouseGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Mouse Cursor')) self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab', From 8601a47dce205166fde118d72bdd1c6b846493d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Wed, 18 Jan 2012 13:20:15 +0200 Subject: [PATCH 08/20] Remove obsolete import. Fix saving wrong syntax and % bugs. --- openlp/core/ui/advancedtab.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index f4583a33f..6a0483e93 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -33,7 +33,6 @@ from openlp.core.lib import SettingsTab, translate, build_icon, Receiver from openlp.core.lib.ui import UiStrings from openlp.core.utils import get_images_filter from datetime import datetime, timedelta -import re class AdvancedTab(SettingsTab): """ @@ -350,6 +349,7 @@ class AdvancedTab(SettingsTab): preset_is_valid, name_example = self.generate_service_name_example() if not preset_is_valid: self.service_name = self.default_service_name + self.defaultServiceName.setText(self.service_name) settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) if self.service_name == self.default_service_name: @@ -399,10 +399,14 @@ class AdvancedTab(SettingsTab): minute = self.service_minute) try: service_name_example = time.strftime(unicode(self.service_name)) + print service_name_example + if service_name_example.find('%') != -1: + preset_is_valid = False except ValueError: + preset_is_valid = False + if not preset_is_valid: service_name_example = translate('OpenLP.AdvancedTab', 'Syntax error.') - preset_is_valid = False return preset_is_valid, service_name_example def updateServiceNameExample(self): From 62d4db0c82335436bbe951b3d2cc9dfa6457a29f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Wed, 18 Jan 2012 21:16:50 +0200 Subject: [PATCH 09/20] Added a comment for translators. --- openlp/core/ui/advancedtab.py | 9 ++++++++- openlp/core/ui/servicemanager.py | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 6a0483e93..9752a1fea 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -51,7 +51,14 @@ class AdvancedTab(SettingsTab): self.default_service_hour = 11 self.default_service_minute = 0 self.default_service_name = unicode(translate('OpenLP.AdvancedTab', - 'Service %Y-%m-%d %H-%M')) + 'Service %Y-%m-%d %H-%M', + 'This is the default default service name template, which can be ' + 'found in Advanced tab under Tools, Settings. Please do not ' + '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.')) self.default_image = u':/graphics/openlp-splash-screen.png' self.default_color = u'#ffffff' self.icon_path = u':/system/system_settings.png' diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 44a9cb6de..af8c97235 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -631,7 +631,14 @@ class ServiceManager(QtGui.QWidget): default_pattern = unicode(QtCore.QSettings().value( u'advanced/default service name', translate('OpenLP.AdvancedTab', - 'Service %Y-%m-%d %H-%M')).toString()) + 'Service %Y-%m-%d %H-%M', + 'This is the default default service name template, which can be ' + 'found in Advanced tab under Tools, Settings. Please do not ' + '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.')).toString()) default_filename = time.strftime(default_pattern) directory = unicode(SettingsManager.get_last_dir( self.mainwindow.servicemanagerSettingsSection)) From 62a5578528a023da49eeb20daf5ef9fbb9e5073b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Wed, 18 Jan 2012 21:18:18 +0200 Subject: [PATCH 10/20] Make % acceptable character for filenames again. --- openlp/core/ui/advancedtab.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 9752a1fea..579aee1a1 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -406,12 +406,8 @@ class AdvancedTab(SettingsTab): minute = self.service_minute) try: service_name_example = time.strftime(unicode(self.service_name)) - print service_name_example - if service_name_example.find('%') != -1: - preset_is_valid = False except ValueError: preset_is_valid = False - if not preset_is_valid: service_name_example = translate('OpenLP.AdvancedTab', 'Syntax error.') return preset_is_valid, service_name_example From 8c483a58b34051a0fa6afa5909a724bffdfaeba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Wed, 25 Jan 2012 11:32:20 +0200 Subject: [PATCH 11/20] Added checkbox for to disable default service name, just as suggested. --- openlp/core/ui/advancedtab.py | 29 +++++++++++++--- openlp/core/ui/servicemanager.py | 57 +++++++++++++++++--------------- 2 files changed, 56 insertions(+), 30 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 579aee1a1..940f7b373 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -103,7 +103,11 @@ class AdvancedTab(SettingsTab): self.defaultServiceGroupBox.setObjectName(u'defaultServiceGroupBox') self.defaultServiceLayout = QtGui.QFormLayout( self.defaultServiceGroupBox) + self.defaultServiceCheckBox = QtGui.QCheckBox( + self.defaultServiceGroupBox) + self.defaultServiceCheckBox.setObjectName(u'defaultServiceCheckBox') self.defaultServiceLayout.setObjectName(u'defaultServiceLayout') + self.defaultServiceLayout.addRow(self.defaultServiceCheckBox) self.defaultServiceTimeLabel = QtGui.QLabel(self.defaultServiceGroupBox) self.defaultServiceTimeLabel.setObjectName(u'defaultServiceTimeLabel') self.defaultServiceDay = QtGui.QComboBox( @@ -200,6 +204,8 @@ class AdvancedTab(SettingsTab): self.rightLayout.addWidget(self.x11GroupBox) self.rightLayout.addStretch() + QtCore.QObject.connect(self.defaultServiceCheckBox, + QtCore.SIGNAL(u'toggled(bool)'), self.defaultServiceCheckBoxToggled) QtCore.QObject.connect(self.defaultServiceDay, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.onDefaultServiceDayChanged) @@ -243,6 +249,9 @@ class AdvancedTab(SettingsTab): 'Enable application exit confirmation')) self.defaultServiceGroupBox.setTitle( translate('OpenLP.AdvancedTab', 'Default Service Name')) + self.defaultServiceCheckBox.setText( + translate('OpenLP.AdvancedTab', + 'Save As dialog has prefilled service name')) self.defaultServiceTimeLabel.setText( translate('OpenLP.AdvancedTab', 'Date and Time:')) self.defaultServiceDay.setItemText(0, @@ -272,9 +281,8 @@ class AdvancedTab(SettingsTab): self.defaultServiceExampleLabel.setText(translate('OpenLP.AdvancedTab', 'Example:')) self.defaultServiceNote.setText( - translate('OpenLP.AdvancedTab', 'Note: Leave Name field blank to ' - 'have no prefilled name in Save As dialog. ' - 'Consult manual for special symbols usage.')) + translate('OpenLP.AdvancedTab', 'Note: ' + 'Consult OpenLP manual for special symbols usage.')) self.hideMouseGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Mouse Cursor')) self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab', @@ -326,6 +334,9 @@ class AdvancedTab(SettingsTab): QtCore.QVariant(True)).toBool()) self.hideMouseCheckBox.setChecked( settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) + default_service_enabled = settings.value(u'default service enabled', + QtCore.QVariant(True)).toBool() + self.defaultServiceCheckBox.setChecked(default_service_enabled) 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', @@ -338,6 +349,7 @@ class AdvancedTab(SettingsTab): self.defaultServiceTime.setTime( QtCore.QTime(self.service_hour, self.service_minute)) self.defaultServiceName.setText(self.service_name) + self.defaultServiceCheckBoxToggled(default_service_enabled) self.x11BypassCheckBox.setChecked( settings.value(u'x11 bypass wm', QtCore.QVariant(True)).toBool()) self.default_color = settings.value(u'default color', @@ -359,6 +371,8 @@ class AdvancedTab(SettingsTab): self.defaultServiceName.setText(self.service_name) settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) + settings.setValue(u'default service enabled', + self.defaultServiceCheckBox.isChecked()) if self.service_name == self.default_service_name: settings.remove(u'default service name') else: @@ -392,6 +406,13 @@ class AdvancedTab(SettingsTab): Receiver.send_message(u'config_screen_changed') self.display_changed = False + 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) + def generate_service_name_example(self): preset_is_valid = True if self.service_day == 7: @@ -418,7 +439,7 @@ class AdvancedTab(SettingsTab): def onDefaultServiceDayChanged(self, index): self.service_day = index - self.defaultServiceTime.setReadOnly(self.service_day == 7) + self.defaultServiceTime.setEnabled(self.service_day is not 7) self.updateServiceNameExample() def onDefaultServiceTimeChanged(self, time): diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index af8c97235..4f1ac3164 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -613,33 +613,38 @@ class ServiceManager(QtGui.QWidget): Get a file name and then call :func:`ServiceManager.saveFile` to save the file. """ - service_day, ok = QtCore.QSettings().value( - u'advanced/default service day', 7).toInt() - if service_day == 7: - time = datetime.now() + default_service_enabled = QtCore.QSettings().value( + u'advanced/default service enabled', QtCore.QVariant(True)).toBool() + if default_service_enabled: + service_day, ok = QtCore.QSettings().value( + u'advanced/default service day', 7).toInt() + if service_day == 7: + time = datetime.now() + else: + service_hour, ok = QtCore.QSettings().value( + u'advanced/default service hour', 11).toInt() + service_minute, ok = QtCore.QSettings().value( + u'advanced/default service minute', 0).toInt() + now = datetime.now() + day_delta = service_day - now.weekday() + if day_delta < 0: + day_delta += 7 + time = now + timedelta(days=day_delta) + time = time.replace(hour=service_hour, minute=service_minute) + default_pattern = unicode(QtCore.QSettings().value( + u'advanced/default service name', + translate('OpenLP.AdvancedTab', + 'Service %Y-%m-%d %H-%M', + 'This is the default default service name template, which can ' + 'be found in Advanced tab under Tools, Settings. Please do not ' + '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.')).toString()) + default_filename = time.strftime(default_pattern) else: - service_hour, ok = QtCore.QSettings().value( - u'advanced/default service hour', 11).toInt() - service_minute, ok = QtCore.QSettings().value( - u'advanced/default service minute', 0).toInt() - now = datetime.now() - day_delta = service_day - now.weekday() - if day_delta < 0: - day_delta += 7 - time = now + timedelta(days=day_delta) - time = time.replace(hour = service_hour, minute = service_minute) - default_pattern = unicode(QtCore.QSettings().value( - u'advanced/default service name', - translate('OpenLP.AdvancedTab', - 'Service %Y-%m-%d %H-%M', - 'This is the default default service name template, which can be ' - 'found in Advanced tab under Tools, Settings. Please do not ' - '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.')).toString()) - default_filename = time.strftime(default_pattern) + default_filename = u'' directory = unicode(SettingsManager.get_last_dir( self.mainwindow.servicemanagerSettingsSection)) path = os.path.join(directory, default_filename) From 83155d45ea16e524cf792e0a785fbffab2954b54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Sat, 28 Jan 2012 00:10:12 +0200 Subject: [PATCH 12/20] Text changes, thanks to Raoul. --- openlp/core/ui/advancedtab.py | 7 +++---- openlp/core/ui/servicemanager.py | 5 +++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 940f7b373..492157b25 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -53,7 +53,7 @@ class AdvancedTab(SettingsTab): self.default_service_name = unicode(translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d %H-%M', 'This is the default default service name template, which can be ' - 'found in Advanced tab under Tools, Settings. Please do not ' + 'found under Advanced in Settings, Configure OpenLP. Please do not ' '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' @@ -250,8 +250,7 @@ class AdvancedTab(SettingsTab): self.defaultServiceGroupBox.setTitle( translate('OpenLP.AdvancedTab', 'Default Service Name')) self.defaultServiceCheckBox.setText( - translate('OpenLP.AdvancedTab', - 'Save As dialog has prefilled service name')) + translate('OpenLP.AdvancedTab', 'Enable default service name')) self.defaultServiceTimeLabel.setText( translate('OpenLP.AdvancedTab', 'Date and Time:')) self.defaultServiceDay.setItemText(0, @@ -282,7 +281,7 @@ class AdvancedTab(SettingsTab): 'Example:')) self.defaultServiceNote.setText( translate('OpenLP.AdvancedTab', 'Note: ' - 'Consult OpenLP manual for special symbols usage.')) + 'Consult the OpenLP manual for usage.')) self.hideMouseGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Mouse Cursor')) self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab', diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 4f1ac3164..583e8c1d4 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -636,8 +636,9 @@ class ServiceManager(QtGui.QWidget): translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d %H-%M', 'This is the default default service name template, which can ' - 'be found in Advanced tab under Tools, Settings. Please do not ' - 'include any of the following characters: /\\?*|<>\[\]":+\n' + 'be found under Advanced in Settings, Configure OpenLP. ' + 'Please do not 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 ' From b03295584b70e7fc297753719863138025bdf6eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Sat, 28 Jan 2012 01:13:35 +0200 Subject: [PATCH 13/20] Addresses Meinert's concern about a hidden exception. --- openlp/core/ui/advancedtab.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 492157b25..35fdebd0a 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -335,7 +335,6 @@ class AdvancedTab(SettingsTab): settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) default_service_enabled = settings.value(u'default service enabled', QtCore.QVariant(True)).toBool() - self.defaultServiceCheckBox.setChecked(default_service_enabled) 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', @@ -348,6 +347,7 @@ class AdvancedTab(SettingsTab): self.defaultServiceTime.setTime( QtCore.QTime(self.service_hour, self.service_minute)) self.defaultServiceName.setText(self.service_name) + self.defaultServiceCheckBox.setChecked(default_service_enabled) self.defaultServiceCheckBoxToggled(default_service_enabled) self.x11BypassCheckBox.setChecked( settings.value(u'x11 bypass wm', QtCore.QVariant(True)).toBool()) From 01d42e0f1148e5337a28750df7e1a597999c4304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Sun, 29 Jan 2012 18:47:15 +0200 Subject: [PATCH 14/20] Use note text as tooltip. --- openlp/core/ui/advancedtab.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 35fdebd0a..01ea3eeff 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -27,12 +27,13 @@ """ The :mod:`advancedtab` provides an advanced settings facility. """ +from datetime import datetime, timedelta + from PyQt4 import QtCore, QtGui from openlp.core.lib import SettingsTab, translate, build_icon, Receiver from openlp.core.lib.ui import UiStrings from openlp.core.utils import get_images_filter -from datetime import datetime, timedelta class AdvancedTab(SettingsTab): """ @@ -150,10 +151,6 @@ class AdvancedTab(SettingsTab): self.defaultServiceExample.setObjectName(u'defaultServiceExample') self.defaultServiceLayout.addRow(self.defaultServiceExampleLabel, self.defaultServiceExample) - self.defaultServiceNote = QtGui.QLabel(self.defaultServiceGroupBox) - self.defaultServiceNote.setWordWrap(True) - self.defaultServiceNote.setObjectName(u'defaultServiceNote') - self.defaultServiceLayout.addRow(self.defaultServiceNote) self.leftLayout.addWidget(self.defaultServiceGroupBox) self.leftLayout.addStretch() self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn) @@ -273,15 +270,14 @@ class AdvancedTab(SettingsTab): 'Time when usual service starts.')) self.defaultServiceLabel.setText( translate('OpenLP.AdvancedTab', 'Name:')) + self.defaultServiceName.setToolTip(translate('OpenLP.AdvancedTab', + 'Consult the OpenLP manual for usage.')) self.defaultServiceRevertButton.setToolTip(unicode( translate('OpenLP.AdvancedTab', 'Revert to the default service name "%s".')) % self.default_service_name) self.defaultServiceExampleLabel.setText(translate('OpenLP.AdvancedTab', 'Example:')) - self.defaultServiceNote.setText( - translate('OpenLP.AdvancedTab', 'Note: ' - 'Consult the OpenLP manual for usage.')) self.hideMouseGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Mouse Cursor')) self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab', From 90332e60d3517d272bc2a51e4d2aff67f221967c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Sun, 29 Jan 2012 23:14:27 +0200 Subject: [PATCH 15/20] Prevent several updates to service name example when launching OpenLP. --- openlp/core/ui/advancedtab.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 01ea3eeff..a3b418e8d 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -201,6 +201,7 @@ class AdvancedTab(SettingsTab): self.rightLayout.addWidget(self.x11GroupBox) self.rightLayout.addStretch() + self.updateDefaultServiceExample = False QtCore.QObject.connect(self.defaultServiceCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.defaultServiceCheckBoxToggled) QtCore.QObject.connect(self.defaultServiceDay, @@ -344,6 +345,7 @@ class AdvancedTab(SettingsTab): QtCore.QTime(self.service_hour, self.service_minute)) self.defaultServiceName.setText(self.service_name) self.defaultServiceCheckBox.setChecked(default_service_enabled) + self.updateDefaultServiceExample = True self.defaultServiceCheckBoxToggled(default_service_enabled) self.x11BypassCheckBox.setChecked( settings.value(u'x11 bypass wm', QtCore.QVariant(True)).toBool()) @@ -402,6 +404,8 @@ class AdvancedTab(SettingsTab): self.display_changed = False def defaultServiceCheckBoxToggled(self, default_service_enabled): + if not self.updateDefaultServiceExample: + return self.defaultServiceDay.setEnabled(default_service_enabled) time_enabled = default_service_enabled and self.service_day is not 7 self.defaultServiceTime.setEnabled(time_enabled) @@ -433,16 +437,22 @@ class AdvancedTab(SettingsTab): self.defaultServiceExample.setText(name_example) def onDefaultServiceDayChanged(self, index): + if not self.updateDefaultServiceExample: + return self.service_day = index self.defaultServiceTime.setEnabled(self.service_day is not 7) self.updateServiceNameExample() def onDefaultServiceTimeChanged(self, time): + if not self.updateDefaultServiceExample: + return self.service_hour = time.hour() self.service_minute = time.minute() self.updateServiceNameExample() def onDefaultServiceNameChanged(self, name): + if not self.updateDefaultServiceExample: + return self.service_name = name self.updateServiceNameExample() From 6da181834c8e87d0836659822735a4f264e2e601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Mon, 30 Jan 2012 01:16:12 +0200 Subject: [PATCH 16/20] Meinert's suggestions taken into account about syntax and removed unnecessary variables. --- openlp/core/ui/advancedtab.py | 83 ++++++++++++++--------------------- 1 file changed, 34 insertions(+), 49 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index a3b418e8d..7db16680f 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -209,10 +209,10 @@ class AdvancedTab(SettingsTab): self.onDefaultServiceDayChanged) QtCore.QObject.connect(self.defaultServiceTime, QtCore.SIGNAL(u'timeChanged(QTime)'), - self.onDefaultServiceTimeChanged) + self.updateServiceNameExample) QtCore.QObject.connect(self.defaultServiceName, QtCore.SIGNAL(u'textChanged(QString)'), - self.onDefaultServiceNameChanged) + self.updateServiceNameExample) QtCore.QObject.connect(self.defaultServiceRevertButton, QtCore.SIGNAL(u'pressed()'), self.onDefaultServiceRevertButtonPressed) @@ -330,22 +330,20 @@ class AdvancedTab(SettingsTab): QtCore.QVariant(True)).toBool()) self.hideMouseCheckBox.setChecked( settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) + self.defaultServiceDay.setCurrentIndex( + settings.value(u'default service day', + QtCore.QVariant(self.default_service_day)).toInt()[0]) + self.defaultServiceTime.setTime(QtCore.QTime( + settings.value(u'default service hour', + self.default_service_hour).toInt()[0], + settings.value(u'default service minute', + self.default_service_minute).toInt()[0])) + self.updateDefaultServiceExample = True + self.defaultServiceName.setText(settings.value(u'default service name', + self.default_service_name).toString()) default_service_enabled = settings.value(u'default service enabled', QtCore.QVariant(True)).toBool() - 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() - self.service_name = unicode(settings.value(u'default service name', - self.default_service_name).toString()) - self.defaultServiceDay.setCurrentIndex(self.service_day) - self.defaultServiceTime.setTime( - QtCore.QTime(self.service_hour, self.service_minute)) - self.defaultServiceName.setText(self.service_name) self.defaultServiceCheckBox.setChecked(default_service_enabled) - self.updateDefaultServiceExample = True self.defaultServiceCheckBoxToggled(default_service_enabled) self.x11BypassCheckBox.setChecked( settings.value(u'x11 bypass wm', QtCore.QVariant(True)).toBool()) @@ -362,18 +360,19 @@ class AdvancedTab(SettingsTab): """ Save settings to disk. """ - preset_is_valid, name_example = self.generate_service_name_example() + preset_is_valid = self.generate_service_name_example()[0] + service_name = unicode(self.defaultServiceName.text()) if not preset_is_valid: - self.service_name = self.default_service_name - self.defaultServiceName.setText(self.service_name) + service_name = self.default_service_name + self.defaultServiceName.setText(service_name) settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) settings.setValue(u'default service enabled', self.defaultServiceCheckBox.isChecked()) - if self.service_name == self.default_service_name: + if service_name == self.default_service_name: settings.remove(u'default service name') else: - settings.setValue(u'default service name', self.service_name) + settings.setValue(u'default service name', service_name) settings.setValue(u'default service day', self.defaultServiceDay.currentIndex()) settings.setValue(u'default service hour', @@ -404,57 +403,43 @@ class AdvancedTab(SettingsTab): self.display_changed = False def defaultServiceCheckBoxToggled(self, default_service_enabled): - if not self.updateDefaultServiceExample: - return self.defaultServiceDay.setEnabled(default_service_enabled) - time_enabled = default_service_enabled and self.service_day is not 7 + time_enabled = default_service_enabled and \ + self.defaultServiceDay.currentIndex() is not 7 self.defaultServiceTime.setEnabled(time_enabled) self.defaultServiceName.setEnabled(default_service_enabled) self.defaultServiceRevertButton.setEnabled(default_service_enabled) def generate_service_name_example(self): preset_is_valid = True - if self.service_day == 7: + if self.defaultServiceDay.currentIndex() == 7: time = datetime.now() else: now = datetime.now() - day_delta = self.service_day - now.weekday() + day_delta = self.defaultServiceDay.currentIndex() - 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) + time = time.replace(hour = self.defaultServiceTime.time().hour(), + minute = self.defaultServiceTime.time().minute()) try: - service_name_example = time.strftime(unicode(self.service_name)) + service_name_example = time.strftime(unicode( + self.defaultServiceName.text())) except ValueError: preset_is_valid = False service_name_example = translate('OpenLP.AdvancedTab', 'Syntax error.') return preset_is_valid, service_name_example - def updateServiceNameExample(self): - preset_is_valid, name_example = self.generate_service_name_example() + def updateServiceNameExample(self, returned_value): + if not self.updateDefaultServiceExample: + return + name_example = self.generate_service_name_example()[1] self.defaultServiceExample.setText(name_example) - def onDefaultServiceDayChanged(self, index): - if not self.updateDefaultServiceExample: - return - self.service_day = index - self.defaultServiceTime.setEnabled(self.service_day is not 7) - self.updateServiceNameExample() - - def onDefaultServiceTimeChanged(self, time): - if not self.updateDefaultServiceExample: - return - self.service_hour = time.hour() - self.service_minute = time.minute() - self.updateServiceNameExample() - - def onDefaultServiceNameChanged(self, name): - if not self.updateDefaultServiceExample: - return - self.service_name = name - self.updateServiceNameExample() + def onDefaultServiceDayChanged(self, service_day): + self.defaultServiceTime.setEnabled(service_day is not 7) + self.updateServiceNameExample(None) def onDefaultServiceRevertButtonPressed(self): self.defaultServiceName.setText(self.default_service_name) From 6f219e175fc4f50c650099d55448e421fa8b3d0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Thu, 2 Feb 2012 14:42:52 +0200 Subject: [PATCH 17/20] Name changes to camelCase where appropriate. --- openlp/core/ui/advancedtab.py | 236 +++++++++++++++---------------- openlp/core/ui/servicemanager.py | 12 +- 2 files changed, 123 insertions(+), 125 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 7db16680f..04a3ac981 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -47,11 +47,11 @@ class AdvancedTab(SettingsTab): self.display_changed = False advancedTranslated = translate('OpenLP.AdvancedTab', 'Advanced') # 7 stands for now, 0 to 6 is Monday to Sunday. - self.default_service_day = 7 + self.defaultServiceDay = 7 # 11 o'clock is the most popular time for morning service. - self.default_service_hour = 11 - self.default_service_minute = 0 - self.default_service_name = unicode(translate('OpenLP.AdvancedTab', + self.defaultServiceHour = 11 + self.defaultServiceMinute = 0 + self.defaultServiceName = unicode(translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d %H-%M', 'This is the default default service name template, which can be ' 'found under Advanced in Settings, Configure OpenLP. Please do not ' @@ -100,58 +100,58 @@ class AdvancedTab(SettingsTab): u'enableAutoCloseCheckBox') self.uiLayout.addRow(self.enableAutoCloseCheckBox) self.leftLayout.addWidget(self.uiGroupBox) - self.defaultServiceGroupBox = QtGui.QGroupBox(self.leftColumn) - self.defaultServiceGroupBox.setObjectName(u'defaultServiceGroupBox') - self.defaultServiceLayout = QtGui.QFormLayout( - self.defaultServiceGroupBox) - self.defaultServiceCheckBox = QtGui.QCheckBox( - self.defaultServiceGroupBox) - self.defaultServiceCheckBox.setObjectName(u'defaultServiceCheckBox') - self.defaultServiceLayout.setObjectName(u'defaultServiceLayout') - self.defaultServiceLayout.addRow(self.defaultServiceCheckBox) - self.defaultServiceTimeLabel = QtGui.QLabel(self.defaultServiceGroupBox) - self.defaultServiceTimeLabel.setObjectName(u'defaultServiceTimeLabel') - self.defaultServiceDay = QtGui.QComboBox( - self.defaultServiceGroupBox) - self.defaultServiceDay.addItems( + self.serviceNameGroupBox = QtGui.QGroupBox(self.leftColumn) + self.serviceNameGroupBox.setObjectName(u'serviceNameGroupBox') + self.serviceNameLayout = QtGui.QFormLayout( + self.serviceNameGroupBox) + self.serviceNameCheckBox = QtGui.QCheckBox( + self.serviceNameGroupBox) + self.serviceNameCheckBox.setObjectName(u'serviceNameCheckBox') + self.serviceNameLayout.setObjectName(u'serviceNameLayout') + self.serviceNameLayout.addRow(self.serviceNameCheckBox) + self.serviceNameTimeLabel = QtGui.QLabel(self.serviceNameGroupBox) + self.serviceNameTimeLabel.setObjectName(u'serviceNameTimeLabel') + self.serviceNameDay = QtGui.QComboBox( + self.serviceNameGroupBox) + self.serviceNameDay.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) - self.defaultServiceLayout.addRow(self.defaultServiceTimeLabel, - self.defaultServiceTimeHBox) - self.defaultServiceLabel = QtGui.QLabel(self.defaultServiceGroupBox) - self.defaultServiceLabel.setObjectName(u'defaultServiceLabel') - self.defaultServiceName = QtGui.QLineEdit(self.defaultServiceGroupBox) - self.defaultServiceName.setObjectName(u'defaultServiceName') - self.defaultServiceName.setValidator(QtGui.QRegExpValidator( + self.serviceNameDay.setObjectName( + u'serviceNameDay') + self.serviceNameTime = QtGui.QTimeEdit(self.serviceNameGroupBox) + self.serviceNameTime.setObjectName(u'serviceNameTime') + self.serviceNameTimeHBox = QtGui.QHBoxLayout() + self.serviceNameTimeHBox.setObjectName(u'serviceNameTimeHBox') + self.serviceNameTimeHBox.addWidget(self.serviceNameDay) + self.serviceNameTimeHBox.addWidget(self.serviceNameTime) + self.serviceNameLayout.addRow(self.serviceNameTimeLabel, + self.serviceNameTimeHBox) + self.serviceNameLabel = QtGui.QLabel(self.serviceNameGroupBox) + self.serviceNameLabel.setObjectName(u'serviceNameLabel') + self.serviceNameEdit = QtGui.QLineEdit(self.serviceNameGroupBox) + self.serviceNameEdit.setObjectName(u'serviceNameEdit') + self.serviceNameEdit.setValidator(QtGui.QRegExpValidator( QtCore.QRegExp(r'[^/\\?*|<>\[\]":+]+'), self)) - self.defaultServiceRevertButton = QtGui.QToolButton( - self.defaultServiceGroupBox) - self.defaultServiceRevertButton.setObjectName( - u'defaultServiceRevertButton') - self.defaultServiceRevertButton.setIcon( + self.serviceNameRevertButton = QtGui.QToolButton( + self.serviceNameGroupBox) + self.serviceNameRevertButton.setObjectName( + u'serviceNameRevertButton') + self.serviceNameRevertButton.setIcon( build_icon(u':/general/general_revert.png')) - self.defaultServiceHBox = QtGui.QHBoxLayout() - self.defaultServiceHBox.setObjectName(u'defaultServiceHBox') - self.defaultServiceHBox.addWidget(self.defaultServiceName) - self.defaultServiceHBox.addWidget(self.defaultServiceRevertButton) - self.defaultServiceLayout.addRow(self.defaultServiceLabel, - self.defaultServiceHBox) - 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) - self.leftLayout.addWidget(self.defaultServiceGroupBox) + self.serviceNameHBox = QtGui.QHBoxLayout() + self.serviceNameHBox.setObjectName(u'serviceNameHBox') + self.serviceNameHBox.addWidget(self.serviceNameEdit) + self.serviceNameHBox.addWidget(self.serviceNameRevertButton) + self.serviceNameLayout.addRow(self.serviceNameLabel, + self.serviceNameHBox) + self.serviceNameExampleLabel = QtGui.QLabel( + self.serviceNameGroupBox) + self.serviceNameExampleLabel.setObjectName( + u'serviceNameExampleLabel') + self.serviceNameExample = QtGui.QLabel(self.serviceNameGroupBox) + self.serviceNameExample.setObjectName(u'serviceNameExample') + self.serviceNameLayout.addRow(self.serviceNameExampleLabel, + self.serviceNameExample) + self.leftLayout.addWidget(self.serviceNameGroupBox) self.leftLayout.addStretch() self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn) self.defaultImageGroupBox.setObjectName(u'defaultImageGroupBox') @@ -201,21 +201,21 @@ class AdvancedTab(SettingsTab): self.rightLayout.addWidget(self.x11GroupBox) self.rightLayout.addStretch() - self.updateDefaultServiceExample = False - QtCore.QObject.connect(self.defaultServiceCheckBox, - QtCore.SIGNAL(u'toggled(bool)'), self.defaultServiceCheckBoxToggled) - QtCore.QObject.connect(self.defaultServiceDay, + self.updateserviceNameExample = False + QtCore.QObject.connect(self.serviceNameCheckBox, + QtCore.SIGNAL(u'toggled(bool)'), self.serviceNameCheckBoxToggled) + QtCore.QObject.connect(self.serviceNameDay, QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.onDefaultServiceDayChanged) - QtCore.QObject.connect(self.defaultServiceTime, + self.onserviceNameDayChanged) + QtCore.QObject.connect(self.serviceNameTime, QtCore.SIGNAL(u'timeChanged(QTime)'), self.updateServiceNameExample) - QtCore.QObject.connect(self.defaultServiceName, + QtCore.QObject.connect(self.serviceNameEdit, QtCore.SIGNAL(u'textChanged(QString)'), self.updateServiceNameExample) - QtCore.QObject.connect(self.defaultServiceRevertButton, + QtCore.QObject.connect(self.serviceNameRevertButton, QtCore.SIGNAL(u'pressed()'), - self.onDefaultServiceRevertButtonPressed) + self.onserviceNameRevertButtonPressed) QtCore.QObject.connect(self.defaultColorButton, QtCore.SIGNAL(u'pressed()'), self.onDefaultColorButtonPressed) QtCore.QObject.connect(self.defaultBrowseButton, @@ -245,39 +245,39 @@ class AdvancedTab(SettingsTab): 'Expand new service items on creation')) self.enableAutoCloseCheckBox.setText(translate('OpenLP.AdvancedTab', 'Enable application exit confirmation')) - self.defaultServiceGroupBox.setTitle( + self.serviceNameGroupBox.setTitle( translate('OpenLP.AdvancedTab', 'Default Service Name')) - self.defaultServiceCheckBox.setText( + self.serviceNameCheckBox.setText( translate('OpenLP.AdvancedTab', 'Enable default service name')) - self.defaultServiceTimeLabel.setText( + self.serviceNameTimeLabel.setText( translate('OpenLP.AdvancedTab', 'Date and Time:')) - self.defaultServiceDay.setItemText(0, + self.serviceNameDay.setItemText(0, translate('OpenLP.AdvancedTab', 'Monday')) - self.defaultServiceDay.setItemText(1, + self.serviceNameDay.setItemText(1, translate('OpenLP.AdvancedTab', 'Tuesday')) - self.defaultServiceDay.setItemText(2, + self.serviceNameDay.setItemText(2, translate('OpenLP.AdvancedTab', 'Wednesday')) - self.defaultServiceDay.setItemText(3, + self.serviceNameDay.setItemText(3, translate('OpenLP.AdvancedTab', 'Thurdsday')) - self.defaultServiceDay.setItemText(4, + self.serviceNameDay.setItemText(4, translate('OpenLP.AdvancedTab', 'Friday')) - self.defaultServiceDay.setItemText(5, + self.serviceNameDay.setItemText(5, translate('OpenLP.AdvancedTab', 'Saturday')) - self.defaultServiceDay.setItemText(6, + self.serviceNameDay.setItemText(6, translate('OpenLP.AdvancedTab', 'Sunday')) - self.defaultServiceDay.setItemText(7, + self.serviceNameDay.setItemText(7, translate('OpenLP.AdvancedTab', 'Now')) - self.defaultServiceTime.setToolTip(translate('OpenLP.AdvancedTab', + self.serviceNameTime.setToolTip(translate('OpenLP.AdvancedTab', 'Time when usual service starts.')) - self.defaultServiceLabel.setText( + self.serviceNameLabel.setText( translate('OpenLP.AdvancedTab', 'Name:')) - self.defaultServiceName.setToolTip(translate('OpenLP.AdvancedTab', + self.serviceNameEdit.setToolTip(translate('OpenLP.AdvancedTab', 'Consult the OpenLP manual for usage.')) - self.defaultServiceRevertButton.setToolTip(unicode( + self.serviceNameRevertButton.setToolTip(unicode( translate('OpenLP.AdvancedTab', 'Revert to the default service name "%s".')) % - self.default_service_name) - self.defaultServiceExampleLabel.setText(translate('OpenLP.AdvancedTab', + self.defaultServiceName) + self.serviceNameExampleLabel.setText(translate('OpenLP.AdvancedTab', 'Example:')) self.hideMouseGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Mouse Cursor')) @@ -330,21 +330,21 @@ class AdvancedTab(SettingsTab): QtCore.QVariant(True)).toBool()) self.hideMouseCheckBox.setChecked( settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) - self.defaultServiceDay.setCurrentIndex( + self.serviceNameDay.setCurrentIndex( settings.value(u'default service day', - QtCore.QVariant(self.default_service_day)).toInt()[0]) - self.defaultServiceTime.setTime(QtCore.QTime( + QtCore.QVariant(self.defaultServiceDay)).toInt()[0]) + self.serviceNameTime.setTime(QtCore.QTime( settings.value(u'default service hour', - self.default_service_hour).toInt()[0], + self.defaultServiceHour).toInt()[0], settings.value(u'default service minute', - self.default_service_minute).toInt()[0])) - self.updateDefaultServiceExample = True - self.defaultServiceName.setText(settings.value(u'default service name', - self.default_service_name).toString()) + self.defaultServiceMinute).toInt()[0])) + self.updateserviceNameExample = True + self.serviceNameEdit.setText(settings.value(u'default service name', + self.defaultServiceName).toString()) default_service_enabled = settings.value(u'default service enabled', QtCore.QVariant(True)).toBool() - self.defaultServiceCheckBox.setChecked(default_service_enabled) - self.defaultServiceCheckBoxToggled(default_service_enabled) + self.serviceNameCheckBox.setChecked(default_service_enabled) + self.serviceNameCheckBoxToggled(default_service_enabled) self.x11BypassCheckBox.setChecked( settings.value(u'x11 bypass wm', QtCore.QVariant(True)).toBool()) self.default_color = settings.value(u'default color', @@ -360,25 +360,23 @@ class AdvancedTab(SettingsTab): """ Save settings to disk. """ - preset_is_valid = self.generate_service_name_example()[0] - service_name = unicode(self.defaultServiceName.text()) - if not preset_is_valid: - service_name = self.default_service_name - self.defaultServiceName.setText(service_name) settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) settings.setValue(u'default service enabled', - self.defaultServiceCheckBox.isChecked()) - if service_name == self.default_service_name: + self.serviceNameCheckBox.isChecked()) + service_name = unicode(self.serviceNameEdit.text()) + preset_is_valid = self.generateServiceNameExample()[0] + if service_name == self.defaultServiceName or not preset_is_valid: settings.remove(u'default service name') + self.serviceNameEdit.setText(service_name) else: settings.setValue(u'default service name', service_name) settings.setValue(u'default service day', - self.defaultServiceDay.currentIndex()) + self.serviceNameDay.currentIndex()) settings.setValue(u'default service hour', - self.defaultServiceTime.time().hour()) + self.serviceNameTime.time().hour()) settings.setValue(u'default service minute', - self.defaultServiceTime.time().minute()) + self.serviceNameTime.time().minute()) settings.setValue(u'recent file count', QtCore.QVariant(self.recentSpinBox.value())) settings.setValue(u'save current plugin', @@ -402,29 +400,29 @@ class AdvancedTab(SettingsTab): Receiver.send_message(u'config_screen_changed') self.display_changed = False - def defaultServiceCheckBoxToggled(self, default_service_enabled): - self.defaultServiceDay.setEnabled(default_service_enabled) + def serviceNameCheckBoxToggled(self, default_service_enabled): + self.serviceNameDay.setEnabled(default_service_enabled) time_enabled = default_service_enabled and \ - self.defaultServiceDay.currentIndex() is not 7 - self.defaultServiceTime.setEnabled(time_enabled) - self.defaultServiceName.setEnabled(default_service_enabled) - self.defaultServiceRevertButton.setEnabled(default_service_enabled) + self.serviceNameDay.currentIndex() is not 7 + self.serviceNameTime.setEnabled(time_enabled) + self.serviceNameEdit.setEnabled(default_service_enabled) + self.serviceNameRevertButton.setEnabled(default_service_enabled) - def generate_service_name_example(self): + def generateServiceNameExample(self): preset_is_valid = True - if self.defaultServiceDay.currentIndex() == 7: + if self.serviceNameDay.currentIndex() == 7: time = datetime.now() else: now = datetime.now() - day_delta = self.defaultServiceDay.currentIndex() - now.weekday() + day_delta = self.serviceNameDay.currentIndex() - now.weekday() if day_delta < 0: day_delta += 7 time = now + timedelta(days=day_delta) - time = time.replace(hour = self.defaultServiceTime.time().hour(), - minute = self.defaultServiceTime.time().minute()) + time = time.replace(hour = self.serviceNameTime.time().hour(), + minute = self.serviceNameTime.time().minute()) try: service_name_example = time.strftime(unicode( - self.defaultServiceName.text())) + self.serviceNameEdit.text())) except ValueError: preset_is_valid = False service_name_example = translate('OpenLP.AdvancedTab', @@ -432,18 +430,18 @@ class AdvancedTab(SettingsTab): return preset_is_valid, service_name_example def updateServiceNameExample(self, returned_value): - if not self.updateDefaultServiceExample: + if not self.updateserviceNameExample: return - name_example = self.generate_service_name_example()[1] - self.defaultServiceExample.setText(name_example) + name_example = self.generateServiceNameExample()[1] + self.serviceNameExample.setText(name_example) - def onDefaultServiceDayChanged(self, service_day): - self.defaultServiceTime.setEnabled(service_day is not 7) + def onserviceNameDayChanged(self, service_day): + self.serviceNameTime.setEnabled(service_day is not 7) self.updateServiceNameExample(None) - def onDefaultServiceRevertButtonPressed(self): - self.defaultServiceName.setText(self.default_service_name) - self.defaultServiceName.setFocus() + def onserviceNameRevertButtonPressed(self): + self.serviceNameEdit.setText(self.defaultServiceName) + self.serviceNameEdit.setFocus() def onDefaultColorButtonPressed(self): new_color = QtGui.QColorDialog.getColor( diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 583e8c1d4..d2b48fb9a 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -616,15 +616,15 @@ class ServiceManager(QtGui.QWidget): default_service_enabled = QtCore.QSettings().value( u'advanced/default service enabled', QtCore.QVariant(True)).toBool() if default_service_enabled: - service_day, ok = QtCore.QSettings().value( - u'advanced/default service day', 7).toInt() + service_day = QtCore.QSettings().value( + u'advanced/default service day', 7).toInt()[0] if service_day == 7: time = datetime.now() else: - service_hour, ok = QtCore.QSettings().value( - u'advanced/default service hour', 11).toInt() - service_minute, ok = QtCore.QSettings().value( - u'advanced/default service minute', 0).toInt() + service_hour = QtCore.QSettings().value( + u'advanced/default service hour', 11).toInt()[0] + service_minute = QtCore.QSettings().value( + u'advanced/default service minute', 0).toInt()[0] now = datetime.now() day_delta = service_day - now.weekday() if day_delta < 0: From 51ee117a48c5637c87e7a87017b9c4bf687c43be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Sat, 4 Feb 2012 09:46:10 +0200 Subject: [PATCH 18/20] More function name changes. --- openlp/core/ui/advancedtab.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 04a3ac981..3650cf905 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -201,12 +201,12 @@ class AdvancedTab(SettingsTab): self.rightLayout.addWidget(self.x11GroupBox) self.rightLayout.addStretch() - self.updateserviceNameExample = False + self.shouldUpdateServiceNameExample = False QtCore.QObject.connect(self.serviceNameCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.serviceNameCheckBoxToggled) QtCore.QObject.connect(self.serviceNameDay, QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.onserviceNameDayChanged) + self.onServiceNameDayChanged) QtCore.QObject.connect(self.serviceNameTime, QtCore.SIGNAL(u'timeChanged(QTime)'), self.updateServiceNameExample) @@ -215,7 +215,7 @@ class AdvancedTab(SettingsTab): self.updateServiceNameExample) QtCore.QObject.connect(self.serviceNameRevertButton, QtCore.SIGNAL(u'pressed()'), - self.onserviceNameRevertButtonPressed) + self.onServiceNameRevertButtonPressed) QtCore.QObject.connect(self.defaultColorButton, QtCore.SIGNAL(u'pressed()'), self.onDefaultColorButtonPressed) QtCore.QObject.connect(self.defaultBrowseButton, @@ -338,7 +338,7 @@ class AdvancedTab(SettingsTab): self.defaultServiceHour).toInt()[0], settings.value(u'default service minute', self.defaultServiceMinute).toInt()[0])) - self.updateserviceNameExample = True + self.shouldUpdateServiceNameExample = True self.serviceNameEdit.setText(settings.value(u'default service name', self.defaultServiceName).toString()) default_service_enabled = settings.value(u'default service enabled', @@ -430,16 +430,16 @@ class AdvancedTab(SettingsTab): return preset_is_valid, service_name_example def updateServiceNameExample(self, returned_value): - if not self.updateserviceNameExample: + if not self.shouldUpdateServiceNameExample: return name_example = self.generateServiceNameExample()[1] self.serviceNameExample.setText(name_example) - def onserviceNameDayChanged(self, service_day): + def onServiceNameDayChanged(self, service_day): self.serviceNameTime.setEnabled(service_day is not 7) self.updateServiceNameExample(None) - def onserviceNameRevertButtonPressed(self): + def onServiceNameRevertButtonPressed(self): self.serviceNameEdit.setText(self.defaultServiceName) self.serviceNameEdit.setFocus() From 62e2616aceadf5c811967cb10ae3c8278729eaf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Tue, 7 Feb 2012 12:54:13 +0200 Subject: [PATCH 19/20] Code cleanup. --- openlp/core/ui/advancedtab.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 3650cf905..cbd3e6b45 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -44,8 +44,7 @@ class AdvancedTab(SettingsTab): """ Initialise the settings tab """ - self.display_changed = False - advancedTranslated = translate('OpenLP.AdvancedTab', 'Advanced') + self.displayChanged = False # 7 stands for now, 0 to 6 is Monday to Sunday. self.defaultServiceDay = 7 # 11 o'clock is the most popular time for morning service. @@ -60,10 +59,11 @@ class AdvancedTab(SettingsTab): 'http://docs.python.org/library/datetime.html' '#strftime-strptime-behavior , but if possible, please keep ' 'the resulting string sortable by name.')) - self.default_image = u':/graphics/openlp-splash-screen.png' - self.default_color = u'#ffffff' + self.defaultImage = u':/graphics/openlp-splash-screen.png' + self.defaultColor = u'#ffffff' self.icon_path = u':/system/system_settings.png' - SettingsTab.__init__(self, parent, u'Advanced', advancedTranslated) + advanced_translated = translate('OpenLP.AdvancedTab', 'Advanced') + SettingsTab.__init__(self, parent, u'Advanced', advanced_translated) def setupUi(self): """ @@ -347,14 +347,14 @@ class AdvancedTab(SettingsTab): self.serviceNameCheckBoxToggled(default_service_enabled) self.x11BypassCheckBox.setChecked( settings.value(u'x11 bypass wm', QtCore.QVariant(True)).toBool()) - self.default_color = settings.value(u'default color', + self.defaultColor = settings.value(u'default color', QtCore.QVariant(u'#ffffff')).toString() self.defaultFileEdit.setText(settings.value(u'default image', QtCore.QVariant(u':/graphics/openlp-splash-screen.png'))\ .toString()) settings.endGroup() self.defaultColorButton.setStyleSheet( - u'background-color: %s' % self.default_color) + u'background-color: %s' % self.defaultColor) def save(self): """ @@ -393,12 +393,12 @@ class AdvancedTab(SettingsTab): QtCore.QVariant(self.hideMouseCheckBox.isChecked())) settings.setValue(u'x11 bypass wm', QtCore.QVariant(self.x11BypassCheckBox.isChecked())) - settings.setValue(u'default color', self.default_color) + settings.setValue(u'default color', self.defaultColor) settings.setValue(u'default image', self.defaultFileEdit.text()) settings.endGroup() - if self.display_changed: + if self.displayChanged: Receiver.send_message(u'config_screen_changed') - self.display_changed = False + self.displayChanged = False def serviceNameCheckBoxToggled(self, default_service_enabled): self.serviceNameDay.setEnabled(default_service_enabled) @@ -445,11 +445,11 @@ class AdvancedTab(SettingsTab): def onDefaultColorButtonPressed(self): new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.default_color), self) + QtGui.QColor(self.defaultColor), self) if new_color.isValid(): - self.default_color = new_color.name() + self.defaultColor = new_color.name() self.defaultColorButton.setStyleSheet( - u'background-color: %s' % self.default_color) + u'background-color: %s' % self.defaultColor) def onDefaultBrowseButtonPressed(self): file_filters = u'%s;;%s (*.*) (*)' % (get_images_filter(), @@ -472,4 +472,4 @@ class AdvancedTab(SettingsTab): ``checked`` The state of the check box (boolean). """ - self.display_changed = True + self.displayChanged = True From d4efbfe122df5772b82d870989c9902400a0d28b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Mon, 13 Feb 2012 13:10:27 +0200 Subject: [PATCH 20/20] Moved two items over to right columns. --- openlp/core/ui/advancedtab.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 6e9cba72e..210dabdd2 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -101,6 +101,7 @@ class AdvancedTab(SettingsTab): u'enableAutoCloseCheckBox') self.uiLayout.addRow(self.enableAutoCloseCheckBox) self.leftLayout.addWidget(self.uiGroupBox) + # Default service name self.serviceNameGroupBox = QtGui.QGroupBox(self.leftColumn) self.serviceNameGroupBox.setObjectName(u'serviceNameGroupBox') self.serviceNameLayout = QtGui.QFormLayout( @@ -154,6 +155,7 @@ class AdvancedTab(SettingsTab): self.serviceNameExample) self.leftLayout.addWidget(self.serviceNameGroupBox) self.leftLayout.addStretch() + # Default Image self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn) self.defaultImageGroupBox.setObjectName(u'defaultImageGroupBox') self.defaultImageLayout = QtGui.QFormLayout(self.defaultImageGroupBox) @@ -183,16 +185,16 @@ class AdvancedTab(SettingsTab): self.defaultFileLayout.addWidget(self.defaultRevertButton) self.defaultImageLayout.addRow(self.defaultFileLabel, self.defaultFileLayout) - self.leftLayout.addWidget(self.defaultImageGroupBox) - self.hideMouseGroupBox = QtGui.QGroupBox(self.leftColumn) + self.rightLayout.addWidget(self.defaultImageGroupBox) + # Hide mouse + self.hideMouseGroupBox = QtGui.QGroupBox(self.rightColumn) 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.leftLayout.addWidget(self.hideMouseGroupBox) - self.leftLayout.addStretch() + self.rightLayout.addWidget(self.hideMouseGroupBox) # Service Item Slide Limits self.slideGroupBox = QtGui.QGroupBox(self.rightColumn) self.slideGroupBox.setObjectName(u'slideGroupBox')