# -*- coding: utf-8 -*- # vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 """ OpenLP - Open Source Lyrics Projection Copyright (c) 2008 Raoul Snyman Portions copyright (c) 2008 - 2009 Martin Thompson, Tim Bentley, 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 """ from PyQt4 import QtCore, QtGui from openlp.core.lib import SettingsTab, translate, str_to_bool class GeneralTab(SettingsTab): """ GeneralTab is the general settings tab in the settings dialog. """ def __init__(self, screen_list): self.screen_list = screen_list SettingsTab.__init__(self, translate(u'GeneralTab', u'General'), u'General') def setupUi(self): self.setObjectName(u'GeneralTab') self.GeneralLayout = QtGui.QHBoxLayout(self) self.GeneralLayout.setSpacing(8) self.GeneralLayout.setMargin(8) self.GeneralLayout.setObjectName(u'GeneralLayout') self.GeneralLeftWidget = QtGui.QWidget(self) self.GeneralLeftWidget.setObjectName(u'GeneralLeftWidget') self.GeneralLeftLayout = QtGui.QVBoxLayout(self.GeneralLeftWidget) self.GeneralLeftLayout.setObjectName(u'GeneralLeftLayout') self.GeneralLeftLayout.setSpacing(8) self.GeneralLeftLayout.setMargin(0) self.MonitorGroupBox = QtGui.QGroupBox(self.GeneralLeftWidget) self.MonitorGroupBox.setObjectName(u'MonitorGroupBox') self.MonitorLayout = QtGui.QVBoxLayout(self.MonitorGroupBox) self.MonitorLayout.setSpacing(8) self.MonitorLayout.setMargin(8) self.MonitorLayout.setObjectName(u'MonitorLayout') self.MonitorLabel = QtGui.QLabel(self.MonitorGroupBox) self.MonitorLabel.setObjectName(u'MonitorLabel') self.MonitorLayout.addWidget(self.MonitorLabel) self.MonitorComboBox = QtGui.QComboBox(self.MonitorGroupBox) self.MonitorComboBox.setObjectName(u'MonitorComboBox') self.MonitorLayout.addWidget(self.MonitorComboBox) self.GeneralLeftLayout.addWidget(self.MonitorGroupBox) self.BlankScreenGroupBox = QtGui.QGroupBox(self.GeneralLeftWidget) self.BlankScreenGroupBox.setObjectName(u'BlankScreenGroupBox') self.BlankScreenLayout = QtGui.QVBoxLayout(self.BlankScreenGroupBox) self.BlankScreenLayout.setSpacing(8) self.BlankScreenLayout.setMargin(8) self.BlankScreenLayout.setObjectName(u'BlankScreenLayout') self.WarningCheckBox = QtGui.QCheckBox(self.BlankScreenGroupBox) self.WarningCheckBox.setObjectName(u'WarningCheckBox') self.BlankScreenLayout.addWidget(self.WarningCheckBox) self.GeneralLeftLayout.addWidget(self.BlankScreenGroupBox) self.AutoOpenGroupBox = QtGui.QGroupBox(self.GeneralLeftWidget) self.AutoOpenGroupBox.setObjectName(u'AutoOpenGroupBox') self.AutoOpenLayout = QtGui.QVBoxLayout(self.AutoOpenGroupBox) self.AutoOpenLayout.setObjectName(u'AutoOpenLayout') self.AutoOpenCheckBox = QtGui.QCheckBox(self.AutoOpenGroupBox) self.AutoOpenCheckBox.setObjectName(u'AutoOpenCheckBox') self.AutoOpenLayout.addWidget(self.AutoOpenCheckBox) self.GeneralLeftLayout.addWidget(self.AutoOpenGroupBox) self.GeneralLeftSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.GeneralLeftLayout.addItem(self.GeneralLeftSpacer) self.GeneralLayout.addWidget(self.GeneralLeftWidget) self.GeneralRightWidget = QtGui.QWidget(self) self.GeneralRightWidget.setObjectName(u'GeneralRightWidget') self.GeneralRightLayout = QtGui.QVBoxLayout(self.GeneralRightWidget) self.GeneralRightLayout.setSpacing(8) self.GeneralRightLayout.setMargin(0) self.GeneralRightLayout.setObjectName(u'GeneralRightLayout') self.CCLIGroupBox = QtGui.QGroupBox(self.GeneralRightWidget) self.CCLIGroupBox.setObjectName(u'CCLIGroupBox') self.CCLILayout = QtGui.QGridLayout(self.CCLIGroupBox) self.CCLILayout.setMargin(8) self.CCLILayout.setSpacing(8) self.CCLILayout.setObjectName(u'CCLILayout') self.NumberLabel = QtGui.QLabel(self.CCLIGroupBox) self.NumberLabel.setObjectName(u'NumberLabel') self.CCLILayout.addWidget(self.NumberLabel, 0, 0, 1, 1) self.NumberEdit = QtGui.QLineEdit(self.CCLIGroupBox) self.NumberEdit.setObjectName(u'NumberEdit') self.CCLILayout.addWidget(self.NumberEdit, 0, 1, 1, 1) self.UsernameLabel = QtGui.QLabel(self.CCLIGroupBox) self.UsernameLabel.setObjectName(u'UsernameLabel') self.CCLILayout.addWidget(self.UsernameLabel, 1, 0, 1, 1) self.UsernameEdit = QtGui.QLineEdit(self.CCLIGroupBox) self.UsernameEdit.setObjectName(u'UsernameEdit') self.CCLILayout.addWidget(self.UsernameEdit, 1, 1, 1, 1) self.PasswordLabel = QtGui.QLabel(self.CCLIGroupBox) self.PasswordLabel.setObjectName(u'PasswordLabel') self.CCLILayout.addWidget(self.PasswordLabel, 2, 0, 1, 1) self.PasswordEdit = QtGui.QLineEdit(self.CCLIGroupBox) self.PasswordEdit.setEchoMode(QtGui.QLineEdit.Password) self.PasswordEdit.setObjectName(u'PasswordEdit') self.CCLILayout.addWidget(self.PasswordEdit, 2, 1, 1, 1) self.GeneralRightLayout.addWidget(self.CCLIGroupBox) self.GeneralRightSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.GeneralRightLayout.addItem(self.GeneralRightSpacer) self.GeneralLayout.addWidget(self.GeneralRightWidget) QtCore.QObject.connect(self.MonitorComboBox, QtCore.SIGNAL(u'activated(int)'), self.onMonitorComboBoxChanged) QtCore.QObject.connect(self.WarningCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onWarningCheckBoxChanged) QtCore.QObject.connect(self.AutoOpenCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onAutoOpenCheckBoxChanged) QtCore.QObject.connect(self.NumberEdit, QtCore.SIGNAL(u'lostFocus()'), self.onNumberEditLostFocus) QtCore.QObject.connect(self.UsernameEdit, QtCore.SIGNAL(u'lostFocus()'), self.onUsernameEditLostFocus) QtCore.QObject.connect(self.PasswordEdit, QtCore.SIGNAL(u'lostFocus()'), self.onPasswordEditLostFocus) def retranslateUi(self): self.MonitorGroupBox.setTitle(translate(u'GeneralTab', u'Monitors')) self.MonitorLabel.setText(translate(u'GeneralTab', u'Select monitor for output display:')) self.BlankScreenGroupBox.setTitle(translate(u'GeneralTab', u'Blank Screen')) self.WarningCheckBox.setText(translate(u'GeneralTab', u'Show warning on startup')) self.AutoOpenGroupBox.setTitle(translate(u'GeneralTab', u'Auto Open Last Service')) self.AutoOpenCheckBox.setText(translate(u'GeneralTab', u'Automatically open the last service at startup')) self.CCLIGroupBox.setTitle(translate(u'GeneralTab', u'CCLI Details')) self.NumberLabel.setText(translate(u'GeneralTab', u'CCLI Number:')) self.UsernameLabel.setText(translate(u'GeneralTab', u'SongSelect Username:')) self.PasswordLabel.setText(translate(u'GeneralTab', u'SongSelect Password:')) def onMonitorComboBoxChanged(self): self.MonitorNumber = self.MonitorComboBox.currentIndex() def onAutoOpenCheckBoxChanged(self, value): self.AutoOpen = False if value == 2: # we have a set value convert to True/False self.AutoOpen = True def onWarningCheckBoxChanged(self, value): self.Warning = False if value == 2: # we have a set value convert to True/False self.Warning = True def onNumberEditLostFocus(self): self.CCLNumber = self.NumberEdit.displayText() def onUsernameEditLostFocus(self): self.Username = self.UsernameEdit.displayText() def onPasswordEditLostFocus(self): self.Password = self.PasswordEdit.displayText() def load(self): for screen in self.screen_list: screen_name = translate(u'GeneralTab', u'Screen') + u' ' + \ unicode(screen[u'number'] + 1) if screen[u'primary']: screen_name = screen_name + u' (' + \ translate(u'GeneralTab', u'primary') + u')' self.MonitorComboBox.addItem(screen_name) # Get the configs self.MonitorNumber = int(self.config.get_config(u'Monitor', u'0')) self.Warning = str_to_bool(self.config.get_config(u'Warning', u'False')) self.AutoOpen = str_to_bool(self.config.get_config(u'Auto Open', u'False')) self.CCLNumber = unicode(self.config.get_config(u'CCL Number', u'XXX')) self.Username = unicode(self.config.get_config(u'User Name', u'')) self.Password = unicode(self.config.get_config(u'Password', u'')) # Set a few things up self.MonitorComboBox.setCurrentIndex(self.MonitorNumber) self.WarningCheckBox.setChecked(self.Warning) self.AutoOpenCheckBox.setChecked(self.AutoOpen) self.NumberEdit.setText(self.CCLNumber) self.UsernameEdit.setText(self.Username) self.PasswordEdit.setText(self.Password) def save(self): self.config.set_config(u'Monitor', self.MonitorNumber) self.config.set_config(u'Warning', self.Warning) self.config.set_config(u'Auto Open', self.AutoOpen) self.config.set_config(u'CCL Number', self.CCLNumber) self.config.set_config(u'User Name', self.Username) self.config.set_config(u'Password', self.Password)