forked from openlp/openlp
Rearranged the settings tab system to work the same way as the media manager item system.
bzr-revno: 351
This commit is contained in:
parent
3477003106
commit
1c47f553f3
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE UserProject SYSTEM "UserProject-4.0.dtd">
|
||||
<!-- eric4 user project file for project openlp.org 2.0 -->
|
||||
<!-- Saved: 2009-02-20, 00:23:18 -->
|
||||
<!-- Saved: 2009-03-01, 01:17:02 -->
|
||||
<!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org -->
|
||||
<UserProject version="4.0">
|
||||
</UserProject>
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE Tasks SYSTEM "Tasks-4.2.dtd">
|
||||
<!-- eric4 tasks file for project openlp.org 2.0 -->
|
||||
<!-- Saved: 2009-02-20, 00:23:19 -->
|
||||
<!-- Saved: 2009-03-01, 01:17:03 -->
|
||||
<Tasks version="4.2">
|
||||
<Task priority="1" completed="False" bugfix="False">
|
||||
<Summary>TODO: what is the tags for bridge, pre-chorus?</Summary>
|
||||
@ -111,4 +111,31 @@
|
||||
<Linenumber>534</Linenumber>
|
||||
</Resource>
|
||||
</Task>
|
||||
<Task priority="1" completed="False" bugfix="False">
|
||||
<Summary>TODO: need some way to make this geometry work properly!</Summary>
|
||||
<Description></Description>
|
||||
<Created>2009-03-01, 01:09:34</Created>
|
||||
<Resource>
|
||||
<Filename>openlp/core/ui/mainwindow.py</Filename>
|
||||
<Linenumber>96</Linenumber>
|
||||
</Resource>
|
||||
</Task>
|
||||
<Task priority="1" completed="False" bugfix="False">
|
||||
<Summary>TODO: need to get rid of this once all plugins are up to date</Summary>
|
||||
<Description></Description>
|
||||
<Created>2009-03-01, 01:10:29</Created>
|
||||
<Resource>
|
||||
<Filename>openlp/core/pluginmanager.py</Filename>
|
||||
<Linenumber>86</Linenumber>
|
||||
</Resource>
|
||||
</Task>
|
||||
<Task priority="1" completed="False" bugfix="False">
|
||||
<Summary>TODO: These shouldn't be called here...</Summary>
|
||||
<Description></Description>
|
||||
<Created>2009-03-01, 01:10:29</Created>
|
||||
<Resource>
|
||||
<Filename>openlp/core/pluginmanager.py</Filename>
|
||||
<Linenumber>108</Linenumber>
|
||||
</Resource>
|
||||
</Task>
|
||||
</Tasks>
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE Project SYSTEM "Project-4.4.dtd">
|
||||
<!-- eric4 project file for project openlp.org 2.0 -->
|
||||
<!-- Saved: 2009-02-20, 00:23:11 -->
|
||||
<!-- Saved: 2009-03-01, 01:17:00 -->
|
||||
<!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org -->
|
||||
<Project version="4.4">
|
||||
<ProgLanguage mixed="0">Python</ProgLanguage>
|
||||
@ -26,7 +26,6 @@
|
||||
<Source>openlp/core/ui/__init__.py</Source>
|
||||
<Source>openlp/core/ui/mainwindow.py</Source>
|
||||
<Source>openlp/core/ui/splashscreen.py</Source>
|
||||
<Source>openlp/core/ui/settings.py</Source>
|
||||
<Source>openlp/core/ui/alertform.py</Source>
|
||||
<Source>openlp/core/ui/about.py</Source>
|
||||
<Source>openlp/plugins/songs/songsplugin.py</Source>
|
||||
@ -48,7 +47,6 @@
|
||||
<Source>openlp/core/resources.py</Source>
|
||||
<Source>openlp/core/lib/__init__.py</Source>
|
||||
<Source>openlp/core/lib/xmlrootclass.py</Source>
|
||||
<Source>openlp/core/lib/settingstab.py</Source>
|
||||
<Source>openlp/core/lib/plugin.py</Source>
|
||||
<Source>openlp/core/lib/mediamanageritem.py</Source>
|
||||
<Source>openlp/core/lib/event.py</Source>
|
||||
@ -122,6 +120,17 @@
|
||||
<Source>openlp/core/lib/imageserviceitem.py</Source>
|
||||
<Source>openlp/plugins/bibles/forms/bibleeditdialog.py</Source>
|
||||
<Source>resources/forms/Ui_editsongdialog.py</Source>
|
||||
<Source>openlp/core/ui/servicemanager.py</Source>
|
||||
<Source>openlp/core/lib/toolbar.py</Source>
|
||||
<Source>resources/forms/bibleimportdialog.py</Source>
|
||||
<Source>openlp/core/ui/settingsform.py</Source>
|
||||
<Source>openlp/core/ui/generalform.py</Source>
|
||||
<Source>openlp/core/lib/settingstabitem.py</Source>
|
||||
<Source>openlp/core/ui/generaltab.py</Source>
|
||||
<Source>openlp/core/ui/themestab.py</Source>
|
||||
<Source>openlp/core/ui/alertstab.py</Source>
|
||||
<Source>resources/forms/Ui_settings.py</Source>
|
||||
<Source>openlp/core/ui/settingsdialog.py</Source>
|
||||
</Sources>
|
||||
<Forms>
|
||||
<Form>resources/forms/openlpexportform.ui</Form>
|
||||
@ -140,7 +149,8 @@
|
||||
<Form>resources/forms/songbookdialog.ui</Form>
|
||||
<Form>resources/forms/topicsdialog.ui</Form>
|
||||
<Form>resources/forms/editsongdialog.ui</Form>
|
||||
<Form>resources/forms/bibleeditdialog.ui</Form>
|
||||
<Form>openlp/plugins/bibles/forms/bibleeditdialog.ui</Form>
|
||||
<Form>resources/forms/settings2.ui</Form>
|
||||
</Forms>
|
||||
<Translations>
|
||||
</Translations>
|
||||
|
@ -17,9 +17,13 @@ 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 render import Renderer
|
||||
from settingsmanager import SettingsManager
|
||||
from pluginmanager import PluginManager
|
||||
|
||||
__all__ = ['Renderer', 'SettingsManager', 'PluginManager']
|
||||
__all__ = ['Renderer', 'SettingsManager', 'PluginManager', 'translate']
|
||||
|
||||
def translate(context, text):
|
||||
return QtGui.QApplication.translate(context, text, None, QtGui.QApplication.UnicodeUTF8)
|
||||
|
@ -20,7 +20,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
from pluginutils import PluginUtils
|
||||
from pluginconfig import PluginConfig
|
||||
from plugin import Plugin
|
||||
from settingstabitem import SettingsTabItem
|
||||
from settingstab import SettingsTab
|
||||
from mediamanageritem import MediaManagerItem
|
||||
from event import Event
|
||||
from xmlrootclass import XmlRootClass
|
||||
|
@ -21,26 +21,27 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
from PyQt4 import QtCore, QtGui
|
||||
from openlp.core.resources import *
|
||||
|
||||
class SettingsTabItem(QtGui.QWidget):
|
||||
class SettingsTab(QtGui.QWidget):
|
||||
"""
|
||||
SettingsTabItem is a helper widget for plugins to define Tabs for the settings dialog.
|
||||
SettingsTab is a helper widget for plugins to define Tabs for the settings dialog.
|
||||
"""
|
||||
def __init__(self):
|
||||
def __init__(self, title=None):
|
||||
"""
|
||||
Constructor to create the Steetings tab item.
|
||||
"""
|
||||
QtGui.QWidget.__init__(self)
|
||||
self.TabLayout = QtGui.QVBoxLayout(self)
|
||||
self.TabLayout.setSpacing(0)
|
||||
self.TabLayout.setMargin(0)
|
||||
self.tabText = None
|
||||
self.tabTitle = title
|
||||
self.setupUi()
|
||||
self.retranslateUi()
|
||||
|
||||
def setTabText(self, text):
|
||||
self.tabText = text
|
||||
|
||||
def add_items(self, items):
|
||||
if type(items).__name__ == "QWidget":
|
||||
self.TabLayout.addWidget(items)
|
||||
else:
|
||||
for item in items:
|
||||
self.TabLayout.addWidget(item)
|
||||
def setTitle(self, title):
|
||||
self.tabTitle = title
|
||||
|
||||
def title(self):
|
||||
return self.tabTitle
|
||||
|
||||
def setupUi(self):
|
||||
pass
|
||||
|
||||
def retranslateUi(self):
|
||||
pass
|
@ -47,7 +47,7 @@ class PluginManager(object):
|
||||
self.plugins = []
|
||||
# this has to happen after the UI is sroted self.find_plugins(dir)
|
||||
log.info("Plugin manager done init")
|
||||
|
||||
|
||||
def find_plugins(self, dir, preview_controller, live_controller): # xxx shouldn't dir come from self.basepath
|
||||
"""
|
||||
Scan the directory dir for objects inheriting from openlp.plugin
|
||||
@ -56,7 +56,7 @@ class PluginManager(object):
|
||||
self.live_controller=live_controller
|
||||
startdepth=len(os.path.abspath(dir).split(os.sep))
|
||||
log.debug("find plugins %s at depth %d" %( str(dir), startdepth))
|
||||
|
||||
|
||||
for root, dirs, files in os.walk(dir):
|
||||
for name in files:
|
||||
if name.endswith(".py") and not name.startswith("__"):
|
||||
@ -82,7 +82,8 @@ class PluginManager(object):
|
||||
try:
|
||||
plugin = p(self.preview_controller, self.live_controller)
|
||||
log.debug('loaded plugin' + str(p) + ' with controllers'+str(self.preview_controller)+str(self.live_controller))
|
||||
except TypeError: # TODO: need to get rid of this once all plugins are up to date
|
||||
except TypeError:
|
||||
# TODO: need to get rid of this once all plugins are up to date
|
||||
plugin = p()
|
||||
log.debug('loaded plugin' + str(p) + ' with no controllers')
|
||||
log.debug("Plugin="+str(p))
|
||||
@ -104,23 +105,22 @@ class PluginManager(object):
|
||||
if media_manager_item is not None:
|
||||
log.debug('Inserting media manager item from %s' % plugin.name)
|
||||
mediatoolbox.addItem(media_manager_item, plugin.icon, media_manager_item.title)
|
||||
# TODO: These shouldn't be called here...
|
||||
plugin.initialise()
|
||||
plugin.load_settings()
|
||||
|
||||
def hook_settings_tabs(self, mediatoolbox=None):
|
||||
|
||||
def hook_settings_tabs(self, settingsform=None):
|
||||
"""
|
||||
Loop through all the plugins. If a plugin has a valid settings tab item,
|
||||
add it to the settings tab.
|
||||
"""
|
||||
want_settings = []
|
||||
for plugin in self.plugins:
|
||||
settings_tab_item = plugin.has_settings_tab_item()
|
||||
#print plugin , settings_tab_item
|
||||
if settings_tab_item:
|
||||
settings_tab = plugin.get_settings_tab()
|
||||
if settings_tab is not None:
|
||||
log.debug('Inserting settings tab item from %s' % plugin.name)
|
||||
want_settings.append(plugin)
|
||||
#mediatoolbox.addItem(media_manager_item, plugin.icon, media_manager_item.title)
|
||||
return want_settings
|
||||
settingsform.addTab(settings_tab)
|
||||
else:
|
||||
log.debug('No settings in %s' % plugin.name)
|
||||
|
||||
def hook_import_menu(self, import_menu):
|
||||
"""
|
||||
@ -138,5 +138,5 @@ class PluginManager(object):
|
||||
for plugin in self.plugins:
|
||||
plugin.add_export_menu_item(export_menu)
|
||||
|
||||
def hook_handle_event(self, event):
|
||||
def hook_handle_event(self, event):
|
||||
pass
|
||||
|
@ -20,12 +20,15 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
from slidecontroller import SlideController
|
||||
from splashscreen import SplashScreen
|
||||
from alertstab import AlertsTab
|
||||
from generaltab import GeneralTab
|
||||
from themestab import ThemesTab
|
||||
from about import AboutForm
|
||||
from alertform import AlertForm
|
||||
#from alertform import AlertForm
|
||||
from generalform import GeneralForm
|
||||
from settingsform import SettingsForm
|
||||
from servicemanager import ServiceManager
|
||||
from mainwindow import MainWindow
|
||||
|
||||
__all__ = ['SplashScreen', 'AboutForm', 'AlertForm', 'SettingsForm',
|
||||
__all__ = ['SplashScreen', 'AboutForm', 'SettingsForm',
|
||||
'MainWindow', 'SlideController', 'ServiceManager,GeneralForm']
|
||||
|
140
openlp/core/ui/alertstab.py
Normal file
140
openlp/core/ui/alertstab.py
Normal file
@ -0,0 +1,140 @@
|
||||
# -*- 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 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 import translate
|
||||
from openlp.core.lib import SettingsTab
|
||||
from openlp.core.resources import *
|
||||
|
||||
class AlertsTab(SettingsTab):
|
||||
"""
|
||||
AlertsTab is the alerts settings tab in the settings dialog.
|
||||
"""
|
||||
def __init__(self):
|
||||
SettingsTab.__init__(self, u'Alerts')
|
||||
|
||||
def setupUi(self):
|
||||
self.setObjectName(u'AlertsTab')
|
||||
self.AlertsLayout = QtGui.QHBoxLayout(self)
|
||||
self.AlertsLayout.setSpacing(8)
|
||||
self.AlertsLayout.setMargin(8)
|
||||
self.AlertsLayout.setObjectName(u'AlertsLayout')
|
||||
self.AlertLeftColumn = QtGui.QWidget(self)
|
||||
self.AlertLeftColumn.setObjectName(u'AlertLeftColumn')
|
||||
self.SlideLeftLayout = QtGui.QVBoxLayout(self.AlertLeftColumn)
|
||||
self.SlideLeftLayout.setSpacing(8)
|
||||
self.SlideLeftLayout.setMargin(0)
|
||||
self.SlideLeftLayout.setObjectName(u'SlideLeftLayout')
|
||||
self.FontGroupBox = QtGui.QGroupBox(self.AlertLeftColumn)
|
||||
self.FontGroupBox.setObjectName(u'FontGroupBox')
|
||||
self.FontLayout = QtGui.QVBoxLayout(self.FontGroupBox)
|
||||
self.FontLayout.setSpacing(8)
|
||||
self.FontLayout.setMargin(8)
|
||||
self.FontLayout.setObjectName(u'FontLayout')
|
||||
self.FontLabel = QtGui.QLabel(self.FontGroupBox)
|
||||
self.FontLabel.setObjectName(u'FontLabel')
|
||||
self.FontLayout.addWidget(self.FontLabel)
|
||||
self.FontComboBox = QtGui.QFontComboBox(self.FontGroupBox)
|
||||
self.FontComboBox.setObjectName(u'FontComboBox')
|
||||
self.FontLayout.addWidget(self.FontComboBox)
|
||||
self.ColorWidget = QtGui.QWidget(self.FontGroupBox)
|
||||
self.ColorWidget.setObjectName(u'ColorWidget')
|
||||
self.ColorLayout = QtGui.QHBoxLayout(self.ColorWidget)
|
||||
self.ColorLayout.setSpacing(8)
|
||||
self.ColorLayout.setMargin(0)
|
||||
self.ColorLayout.setObjectName(u'ColorLayout')
|
||||
self.FontColorLabel = QtGui.QLabel(self.ColorWidget)
|
||||
self.FontColorLabel.setObjectName(u'FontColorLabel')
|
||||
self.ColorLayout.addWidget(self.FontColorLabel)
|
||||
self.FontColorPanel = QtGui.QGraphicsView(self.ColorWidget)
|
||||
self.FontColorPanel.setMinimumSize(QtCore.QSize(24, 24))
|
||||
self.FontColorPanel.setMaximumSize(QtCore.QSize(24, 24))
|
||||
self.FontColorPanel.setObjectName(u'FontColorPanel')
|
||||
self.ColorLayout.addWidget(self.FontColorPanel)
|
||||
self.ColorSpacerItem = QtGui.QSpacerItem(40, 20,
|
||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.ColorLayout.addItem(self.ColorSpacerItem)
|
||||
self.BackgroundColorLabel = QtGui.QLabel(self.ColorWidget)
|
||||
self.BackgroundColorLabel.setObjectName(u'BackgroundColorLabel')
|
||||
self.ColorLayout.addWidget(self.BackgroundColorLabel)
|
||||
self.BackgroundColorPanel = QtGui.QGraphicsView(self.ColorWidget)
|
||||
self.BackgroundColorPanel.setMinimumSize(QtCore.QSize(24, 24))
|
||||
self.BackgroundColorPanel.setMaximumSize(QtCore.QSize(24, 24))
|
||||
self.BackgroundColorPanel.setObjectName(u'BackgroundColorPanel')
|
||||
self.ColorLayout.addWidget(self.BackgroundColorPanel)
|
||||
self.FontLayout.addWidget(self.ColorWidget)
|
||||
self.LengthWidget = QtGui.QWidget(self.FontGroupBox)
|
||||
self.LengthWidget.setObjectName(u'LengthWidget')
|
||||
self.LengthLayout = QtGui.QHBoxLayout(self.LengthWidget)
|
||||
self.LengthLayout.setSpacing(8)
|
||||
self.LengthLayout.setMargin(0)
|
||||
self.LengthLayout.setObjectName(u'LengthLayout')
|
||||
self.LengthLabel = QtGui.QLabel(self.LengthWidget)
|
||||
self.LengthLabel.setObjectName(u'LengthLabel')
|
||||
self.LengthLayout.addWidget(self.LengthLabel)
|
||||
self.LengthSpinBox = QtGui.QSpinBox(self.LengthWidget)
|
||||
self.LengthSpinBox.setMaximum(180)
|
||||
self.LengthSpinBox.setProperty(u'value', QtCore.QVariant(5))
|
||||
self.LengthSpinBox.setObjectName(u'LengthSpinBox')
|
||||
self.LengthLayout.addWidget(self.LengthSpinBox)
|
||||
self.LengthSpacer = QtGui.QSpacerItem(147, 20,
|
||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.LengthLayout.addItem(self.LengthSpacer)
|
||||
self.FontLayout.addWidget(self.LengthWidget)
|
||||
self.SlideLeftLayout.addWidget(self.FontGroupBox)
|
||||
self.SlideLeftSpacer = QtGui.QSpacerItem(20, 94,
|
||||
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
||||
self.SlideLeftLayout.addItem(self.SlideLeftSpacer)
|
||||
self.AlertsLayout.addWidget(self.AlertLeftColumn)
|
||||
self.SlideRightColumn = QtGui.QWidget(self)
|
||||
self.SlideRightColumn.setObjectName(u'SlideRightColumn')
|
||||
self.SlideRightLayout = QtGui.QVBoxLayout(self.SlideRightColumn)
|
||||
self.SlideRightLayout.setSpacing(8)
|
||||
self.SlideRightLayout.setMargin(0)
|
||||
self.SlideRightLayout.setObjectName(u'SlideRightLayout')
|
||||
self.PreviewGroupBox = QtGui.QGroupBox(self.SlideRightColumn)
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.PreviewGroupBox.sizePolicy().hasHeightForWidth())
|
||||
self.PreviewGroupBox.setSizePolicy(sizePolicy)
|
||||
self.PreviewGroupBox.setObjectName(u'PreviewGroupBox')
|
||||
self.PreviewLayout = QtGui.QVBoxLayout(self.PreviewGroupBox)
|
||||
self.PreviewLayout.setSpacing(8)
|
||||
self.PreviewLayout.setMargin(8)
|
||||
self.PreviewLayout.setObjectName(u'PreviewLayout')
|
||||
self.FontPreview = QtGui.QGraphicsView(self.PreviewGroupBox)
|
||||
self.FontPreview.setMaximumSize(QtCore.QSize(16777215, 64))
|
||||
self.FontPreview.setObjectName(u'FontPreview')
|
||||
self.PreviewLayout.addWidget(self.FontPreview)
|
||||
self.SlideRightLayout.addWidget(self.PreviewGroupBox)
|
||||
self.SlideRightSpacer = QtGui.QSpacerItem(20, 40,
|
||||
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
||||
self.SlideRightLayout.addItem(self.SlideRightSpacer)
|
||||
|
||||
def retranslateUi(self):
|
||||
self.FontGroupBox.setTitle(translate(u'AlertsTab', u'Font'))
|
||||
self.FontLabel.setText(translate(u'AlertsTab', u'Font Name:'))
|
||||
self.FontColorLabel.setText(translate(u'AlertsTab', u'Font Color:'))
|
||||
self.BackgroundColorLabel.setText(translate(u'AlertsTab', u'Background Color:'))
|
||||
self.LengthLabel.setText(translate(u'AlertsTab', u'Display length:'))
|
||||
self.LengthSpinBox.setSuffix(translate(u'AlertsTab', u's'))
|
||||
self.PreviewGroupBox.setTitle(translate(u'AlertsTab', u'Preview'))
|
@ -21,7 +21,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.resources import *
|
||||
from openlp.core.lib import SettingsTabItem
|
||||
from openlp.core.lib import SettingsTab
|
||||
|
||||
class GeneralForm(object):
|
||||
"""
|
||||
@ -32,9 +32,9 @@ class GeneralForm(object):
|
||||
def __init__(self):
|
||||
pass
|
||||
def get_settings_tab_item(self):
|
||||
|
||||
|
||||
self.SettingsTabItem= SettingsTabItem()
|
||||
|
||||
|
||||
self.DisplayTab = QtGui.QWidget()
|
||||
self.DisplayTab.setObjectName("DisplayTab")
|
||||
self.DisplayTabLayout = QtGui.QHBoxLayout(self.DisplayTab)
|
||||
@ -122,22 +122,22 @@ class GeneralForm(object):
|
||||
self.MonitorComboBox.setItemText(1, QtGui.QApplication.translate("SettingsForm", "Monitor 2 on X11 Windowing System", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.FontSizeGroupBox.setTitle(QtGui.QApplication.translate("SettingsForm", "Font Size", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.AutoResizeRadioButton.setText(QtGui.QApplication.translate("SettingsForm", "Automatically resize font to fit text to slide", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.WrapLinesRadioButton.setText(QtGui.QApplication.translate("SettingsForm", "Wrap long lines to keep desired font", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.WrapLinesRadioButton.setText(QtGui.QApplication.translate("SettingsForm", "Wrap long lines to keep desired font", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.SongDisplayGroupBox.setTitle(QtGui.QApplication.translate("SettingsForm", "Song Display", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.EnableCreditsCheckBox.setText(QtGui.QApplication.translate("SettingsForm", "Enable displaying of song credits", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.BlankScreenGroupBox.setTitle(QtGui.QApplication.translate("SettingsForm", "Blank Screen", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.WarningCheckBox.setText(QtGui.QApplication.translate("SettingsForm", "Show warning on startup", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.AutoOpenGroupBox.setTitle(QtGui.QApplication.translate("SettingsForm", "Auto Open Last Service", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.AutoOpenCheckBox.setText(QtGui.QApplication.translate("SettingsForm", "Automatically open the last service at startup", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
|
||||
self.SettingsTabItem.setTabText(QtGui.QApplication.translate("SettingsForm", "General", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
self.SettingsTabItem.add_items(self.DisplayTab)
|
||||
return self.SettingsTabItem
|
||||
|
||||
|
||||
|
||||
def load_settings(self):
|
||||
pass
|
||||
|
||||
|
||||
def save_settings(self):
|
||||
pass
|
||||
|
131
openlp/core/ui/generaltab.py
Normal file
131
openlp/core/ui/generaltab.py
Normal file
@ -0,0 +1,131 @@
|
||||
# -*- 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 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 import translate
|
||||
from openlp.core.lib import SettingsTab
|
||||
from openlp.core.resources import *
|
||||
|
||||
class GeneralTab(SettingsTab):
|
||||
"""
|
||||
GeneralTab is the general settings tab in the settings dialog.
|
||||
"""
|
||||
def __init__(self):
|
||||
SettingsTab.__init__(self, translate(u'GeneralTab', 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.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.MonitorComboBox.addItem(QtCore.QString())
|
||||
self.MonitorComboBox.addItem(QtCore.QString())
|
||||
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)
|
||||
|
||||
def retranslateUi(self):
|
||||
self.MonitorGroupBox.setTitle(translate(u'GeneralTab', u'Monitors'))
|
||||
self.MonitorLabel.setText(translate(u'GeneralTab', u'Select monitor for output display:'))
|
||||
self.MonitorComboBox.setItemText(0, translate(u'GeneralTab', u'Monitor 1 on X11 Windowing System'))
|
||||
self.MonitorComboBox.setItemText(1, translate(u'GeneralTab', u'Monitor 2 on X11 Windowing System'))
|
||||
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:'))
|
||||
|
@ -25,9 +25,9 @@ from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.resources import *
|
||||
|
||||
from openlp.core.ui import SlideController, ServiceManager
|
||||
from openlp.core.ui import AboutForm, AlertForm, SettingsForm, SlideController, GeneralForm
|
||||
from openlp.core.lib import Plugin, MediaManagerItem, SettingsTabItem
|
||||
from openlp.core.ui import AboutForm, SettingsForm, \
|
||||
SlideController, ServiceManager, GeneralForm
|
||||
from openlp.core.lib import Plugin, MediaManagerItem, SettingsTab
|
||||
|
||||
from openlp.core import PluginManager
|
||||
import logging
|
||||
@ -39,35 +39,33 @@ class MainWindow(object):
|
||||
def __init__(self):
|
||||
self.main_window = QtGui.QMainWindow()
|
||||
self.about_form = AboutForm()
|
||||
self.alert_form = AlertForm()
|
||||
#self.alert_form = AlertForm()
|
||||
self.settings_form = SettingsForm()
|
||||
self.general_form = GeneralForm()
|
||||
#self.general_form = GeneralForm()
|
||||
pluginpath = os.path.split(os.path.abspath(__file__))[0]
|
||||
pluginpath = os.path.abspath(os.path.join(pluginpath, '..', '..','plugins'))
|
||||
self.plugin_manager = PluginManager(pluginpath)
|
||||
self.setupUi()
|
||||
|
||||
|
||||
log.info('')
|
||||
self.plugin_manager.find_plugins(pluginpath, self.PreviewController, self.LiveController)
|
||||
log.info("hook Settings")
|
||||
#Add Core Componets who provide Settings tabs
|
||||
self.settings_form.add_virtual_plugin(self.general_form)
|
||||
self.settings_form.add_virtual_plugin(self.alert_form)
|
||||
#Call hook method to see which plugins have setting tabs.
|
||||
self.settings_form.receive_plugins(self.plugin_manager.hook_settings_tabs())
|
||||
self.settings_form.generateUi()
|
||||
|
||||
# hook methods have to happen after find_plugins. Find plugins needs the controllers
|
||||
# hence the hooks have moved front setupUI() to here
|
||||
# Call the hook method to pull in import menus.
|
||||
log.info("hook menus")
|
||||
self.plugin_manager.hook_import_menu(self.FileImportMenu)
|
||||
#
|
||||
# Call the hook method to pull in export menus.
|
||||
self.plugin_manager.hook_import_menu(self.FileExportMenu)
|
||||
#
|
||||
# hence the hooks have moved from setupUI() to here
|
||||
|
||||
# Find and insert media manager items
|
||||
log.info("hook media")
|
||||
self.plugin_manager.hook_media_manager(self.MediaToolBox)
|
||||
# End adding media manager items.
|
||||
|
||||
# Find and insert settings tabs
|
||||
log.info("hook settings")
|
||||
self.plugin_manager.hook_settings_tabs(self.settings_form)
|
||||
|
||||
# Call the hook method to pull in import menus.
|
||||
log.info("hook menus")
|
||||
self.plugin_manager.hook_import_menu(self.FileImportMenu)
|
||||
|
||||
# Call the hook method to pull in export menus.
|
||||
self.plugin_manager.hook_import_menu(self.FileExportMenu)
|
||||
|
||||
def setupUi(self):
|
||||
self.main_window.setObjectName("main_window")
|
||||
@ -133,7 +131,7 @@ class MainWindow(object):
|
||||
self.MediaManagerDock.setSizePolicy(sizePolicy)
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(":/system/system_mediamanager.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
|
||||
|
||||
self.MediaManagerDock.setWindowIcon(icon)
|
||||
self.MediaManagerDock.setFloating(False)
|
||||
self.MediaManagerDock.setObjectName("MediaManagerDock")
|
||||
@ -155,7 +153,7 @@ class MainWindow(object):
|
||||
self.MediaManagerLayout.addWidget(self.MediaToolBox)
|
||||
self.MediaManagerDock.setWidget(self.MediaManagerContents)
|
||||
self.main_window.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
|
||||
|
||||
|
||||
self.ServiceManagerDock = QtGui.QDockWidget(self.main_window)
|
||||
ServiceManagerIcon = QtGui.QIcon()
|
||||
ServiceManagerIcon.addPixmap(QtGui.QPixmap(":/system/system_servicemanager.png"),
|
||||
@ -428,10 +426,10 @@ class MainWindow(object):
|
||||
self.main_window.showMaximized()
|
||||
|
||||
def onHelpAboutItemClicked(self):
|
||||
self.about_form.show()
|
||||
self.about_form.exec_()
|
||||
|
||||
def onToolsAlertItemClicked(self):
|
||||
self.alert_form.show()
|
||||
self.alert_form.exec_()
|
||||
|
||||
def onOptionsSettingsItemClicked(self):
|
||||
self.settings_form.exec_()
|
||||
|
45
openlp/core/ui/settingsdialog.py
Normal file
45
openlp/core/ui/settingsdialog.py
Normal file
@ -0,0 +1,45 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file '/home/raoul/Projects/openlp-2/resources/forms/settings.ui'
|
||||
#
|
||||
# Created: Sat Feb 28 23:59:58 2009
|
||||
# by: PyQt4 UI code generator 4.4.4
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
class Ui_SettingsDialog(object):
|
||||
def setupUi(self, SettingsDialog):
|
||||
SettingsDialog.setObjectName(u'SettingsDialog')
|
||||
SettingsDialog.resize(724, 502)
|
||||
#icon = QtGui.QIcon()
|
||||
#icon.addPixmap(QtGui.QPixmap(":/icon/openlp.org-icon-32.bmp"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
#SettingsDialog.setWindowIcon(icon)
|
||||
self.SettingsLayout = QtGui.QVBoxLayout(SettingsDialog)
|
||||
self.SettingsLayout.setSpacing(8)
|
||||
self.SettingsLayout.setMargin(8)
|
||||
self.SettingsLayout.setObjectName(u'SettingsLayout')
|
||||
self.SettingsTabWidget = QtGui.QTabWidget(SettingsDialog)
|
||||
self.SettingsTabWidget.setObjectName(u'SettingsTabWidget')
|
||||
self.SettingsLayout.addWidget(self.SettingsTabWidget)
|
||||
self.ButtonsBox = QtGui.QDialogButtonBox(SettingsDialog)
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.ButtonsBox.sizePolicy().hasHeightForWidth())
|
||||
self.ButtonsBox.setSizePolicy(sizePolicy)
|
||||
self.ButtonsBox.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
self.ButtonsBox.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.ButtonsBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
|
||||
self.ButtonsBox.setObjectName("ButtonsBox")
|
||||
self.SettingsLayout.addWidget(self.ButtonsBox)
|
||||
|
||||
self.retranslateUi(SettingsDialog)
|
||||
self.SettingsTabWidget.setCurrentIndex(0)
|
||||
QtCore.QObject.connect(self.ButtonsBox, QtCore.SIGNAL("accepted()"), SettingsDialog.accept)
|
||||
QtCore.QObject.connect(self.ButtonsBox, QtCore.SIGNAL("rejected()"), SettingsDialog.reject)
|
||||
QtCore.QMetaObject.connectSlotsByName(SettingsDialog)
|
||||
|
||||
def retranslateUi(self, SettingsDialog):
|
||||
SettingsDialog.setWindowTitle(QtGui.QApplication.translate("SettingsDialog", "Settings", None, QtGui.QApplication.UnicodeUTF8))
|
@ -17,62 +17,53 @@ 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
|
||||
"""
|
||||
import logging
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
from PyQt4.QtGui import QDialog
|
||||
|
||||
from openlp.core.lib import SettingsTabItem
|
||||
from openlp.core.lib import SettingsTab
|
||||
from openlp.core.resources import *
|
||||
from openlp.core.ui import AlertForm
|
||||
from openlp.core.ui import GeneralTab, ThemesTab, AlertsTab
|
||||
|
||||
class SettingsForm(QDialog):
|
||||
from settingsdialog import Ui_SettingsDialog
|
||||
|
||||
log = logging.getLogger('SettingsForm')
|
||||
|
||||
class SettingsForm(QtGui.QDialog, Ui_SettingsDialog):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
QDialog.__init__(self, parent)
|
||||
self.first_time = True
|
||||
self.plugin_list = []
|
||||
|
||||
def add_virtual_plugin(self, plugin):
|
||||
"""
|
||||
Method to allow Core to register screens to behave like plugins
|
||||
"""
|
||||
self.plugin_list.append(plugin)
|
||||
|
||||
def receive_plugins(self, plugins):
|
||||
"""
|
||||
Method to allow Plugin Manager to add plugins which want settings
|
||||
"""
|
||||
print "got plugins ", plugins
|
||||
for plugin in plugins:
|
||||
self.plugin_list.append(plugin)
|
||||
print plugins
|
||||
|
||||
def generateUi(self):
|
||||
"""
|
||||
Method build UI.
|
||||
Called by mainmenu AFTER all plugins have been installed.
|
||||
"""
|
||||
if self.first_time:
|
||||
self.setupUi(self)
|
||||
self.first_time = False
|
||||
QtGui.QDialog.__init__(self, parent)
|
||||
self.setupUi(self)
|
||||
# General tab
|
||||
self.GeneralTab = GeneralTab()
|
||||
self.addTab(self.GeneralTab)
|
||||
# Themes tab
|
||||
self.ThemesTab = ThemesTab()
|
||||
self.addTab(self.ThemesTab)
|
||||
# Alerts tab
|
||||
self.AlertsTab = AlertsTab()
|
||||
self.addTab(self.AlertsTab)
|
||||
|
||||
def onSaveButton(self):
|
||||
pass
|
||||
def onResetButton(self):
|
||||
def addTab(self, tab):
|
||||
log.info(u'Inserting %s' % tab.title())
|
||||
self.SettingsTabWidget.addTab(tab, tab.title())
|
||||
|
||||
def onSaveButtonClick(self):
|
||||
pass
|
||||
|
||||
def onResetButtonClick(self):
|
||||
pass
|
||||
|
||||
"""
|
||||
def setupUi(self, SettingsDialog):
|
||||
SettingsDialog.setObjectName("SettingsDialog")
|
||||
SettingsDialog.resize(602, 502)
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(":/icon/openlp.org-icon-32.bmp"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
SettingsDialog.setWindowIcon(icon)
|
||||
|
||||
self.SettingsTabWidget = QtGui.QTabWidget(SettingsDialog)
|
||||
self.SettingsTabWidget.setGeometry(QtCore.QRect(0, 0, 669, 500))
|
||||
self.SettingsTabWidget.setObjectName("SettingsTabWidget")
|
||||
|
||||
|
||||
self.ThemesTab = QtGui.QWidget()
|
||||
self.ThemesTab.setObjectName("ThemesTab")
|
||||
self.ThemesTabLayout = QtGui.QHBoxLayout(self.ThemesTab)
|
||||
@ -127,7 +118,7 @@ class SettingsForm(QDialog):
|
||||
self.formLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.GlobalLevelLabel)
|
||||
self.ThemesTabLayout.addWidget(self.LevelGroupBox)
|
||||
self.SettingsTabWidget.addTab(self.ThemesTab, "")
|
||||
|
||||
|
||||
self.SlideTab = QtGui.QWidget()
|
||||
self.SlideTab.setObjectName("SlideTab")
|
||||
self.SlideLayout = QtGui.QHBoxLayout(self.SlideTab)
|
||||
@ -236,14 +227,14 @@ class SettingsForm(QDialog):
|
||||
self.SlideRightLayout.addItem(spacerItem5)
|
||||
self.SlideLayout.addWidget(self.widget)
|
||||
self.SettingsTabWidget.addTab(self.SlideTab, "")
|
||||
|
||||
|
||||
#### Core Code below here
|
||||
|
||||
|
||||
for plugin in self.plugin_list:
|
||||
settings_tab_item = plugin.get_settings_tab_item()
|
||||
if settings_tab_item is not None:
|
||||
self.SettingsTabWidget.addTab(settings_tab_item, settings_tab_item.tabText)
|
||||
|
||||
|
||||
self.SaveButton = QtGui.QPushButton(SettingsDialog)
|
||||
self.SaveButton.setGeometry(QtCore.QRect(490, 470, 81, 26))
|
||||
self.SaveButton.setObjectName("SaveButton")
|
||||
@ -253,15 +244,15 @@ class SettingsForm(QDialog):
|
||||
self.ResetButton = QtGui.QPushButton(SettingsDialog)
|
||||
self.ResetButton.setGeometry(QtCore.QRect(310, 470, 81, 26))
|
||||
self.ResetButton.setObjectName("ResetButton")
|
||||
|
||||
QtCore.QObject.connect(self.CancelButton, QtCore.SIGNAL("clicked()"), self.close)
|
||||
|
||||
QtCore.QObject.connect(self.CancelButton, QtCore.SIGNAL("clicked()"), self.close)
|
||||
|
||||
self.retranslateUi(SettingsDialog)
|
||||
self.SettingsTabWidget.setCurrentIndex(5)
|
||||
QtCore.QMetaObject.connectSlotsByName(SettingsDialog)
|
||||
|
||||
def retranslateUi(self, SettingsDialog):
|
||||
SettingsDialog.setWindowTitle(QtGui.QApplication.translate("SettingsDialog", "Settings", None, QtGui.QApplication.UnicodeUTF8))
|
||||
SettingsDialog.setWindowTitle(QtGui.QApplication.translate("SettingsDialog", "Settings", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
self.GlobalGroupBox.setTitle(QtGui.QApplication.translate("SettingsDialog", "Global theme", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.DefaultComboBox.setItemText(0, QtGui.QApplication.translate("SettingsDialog", "African Sunset", None, QtGui.QApplication.UnicodeUTF8))
|
||||
@ -290,8 +281,8 @@ class SettingsForm(QDialog):
|
||||
self.SearchGroupBox_3.setTitle(QtGui.QApplication.translate("SettingsDialog", "Search", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.SearchCheckBox_3.setText(QtGui.QApplication.translate("SettingsDialog", "Enabled search-as-you-type", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.SettingsTabWidget.setTabText(self.SettingsTabWidget.indexOf(self.SlideTab), QtGui.QApplication.translate("SettingsDialog", "Songs", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
|
||||
self.SaveButton.setText(QtGui.QApplication.translate("SettingsDialog", "Save", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.CancelButton.setText(QtGui.QApplication.translate("SettingsDialog", "Cancel", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.ResetButton.setText(QtGui.QApplication.translate("SettingsDialog", "Reset", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
"""
|
||||
|
107
openlp/core/ui/themestab.py
Normal file
107
openlp/core/ui/themestab.py
Normal file
@ -0,0 +1,107 @@
|
||||
# -*- 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 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 import translate
|
||||
from openlp.core.lib import SettingsTab
|
||||
from openlp.core.resources import *
|
||||
|
||||
class ThemesTab(SettingsTab):
|
||||
"""
|
||||
ThemesTab is the theme settings tab in the settings dialog.
|
||||
"""
|
||||
def __init__(self):
|
||||
SettingsTab.__init__(self, u'Themes')
|
||||
|
||||
def setupUi(self):
|
||||
self.setObjectName(u'ThemesTab')
|
||||
self.ThemesTabLayout = QtGui.QHBoxLayout(self)
|
||||
self.ThemesTabLayout.setSpacing(8)
|
||||
self.ThemesTabLayout.setMargin(8)
|
||||
self.ThemesTabLayout.setObjectName(u'ThemesTabLayout')
|
||||
self.GlobalGroupBox = QtGui.QGroupBox(self)
|
||||
self.GlobalGroupBox.setObjectName(u'GlobalGroupBox')
|
||||
self.GlobalGroupBoxLayout = QtGui.QVBoxLayout(self.GlobalGroupBox)
|
||||
self.GlobalGroupBoxLayout.setSpacing(8)
|
||||
self.GlobalGroupBoxLayout.setMargin(8)
|
||||
self.GlobalGroupBoxLayout.setObjectName(u'GlobalGroupBoxLayout')
|
||||
self.DefaultComboBox = QtGui.QComboBox(self.GlobalGroupBox)
|
||||
self.DefaultComboBox.setObjectName(u'DefaultComboBox')
|
||||
self.DefaultComboBox.addItem(QtCore.QString())
|
||||
self.DefaultComboBox.addItem(QtCore.QString())
|
||||
self.DefaultComboBox.addItem(QtCore.QString())
|
||||
self.GlobalGroupBoxLayout.addWidget(self.DefaultComboBox)
|
||||
self.DefaultListView = QtGui.QListView(self.GlobalGroupBox)
|
||||
self.DefaultListView.setObjectName(u'DefaultListView')
|
||||
self.GlobalGroupBoxLayout.addWidget(self.DefaultListView)
|
||||
self.ThemesTabLayout.addWidget(self.GlobalGroupBox)
|
||||
self.LevelGroupBox = QtGui.QGroupBox(self)
|
||||
self.LevelGroupBox.setObjectName(u'LevelGroupBox')
|
||||
self.LevelLayout = QtGui.QFormLayout(self.LevelGroupBox)
|
||||
self.LevelLayout.setLabelAlignment(
|
||||
QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
||||
self.LevelLayout.setFormAlignment(
|
||||
QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
||||
self.LevelLayout.setMargin(8)
|
||||
self.LevelLayout.setSpacing(8)
|
||||
self.LevelLayout.setObjectName(u'LevelLayout')
|
||||
self.SongLevelRadioButton = QtGui.QRadioButton(self.LevelGroupBox)
|
||||
self.SongLevelRadioButton.setObjectName(u'SongLevelRadioButton')
|
||||
self.LevelLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
|
||||
self.SongLevelRadioButton)
|
||||
self.SongLevelLabel = QtGui.QLabel(self.LevelGroupBox)
|
||||
self.SongLevelLabel.setWordWrap(True)
|
||||
self.SongLevelLabel.setObjectName(u'SongLevelLabel')
|
||||
self.LevelLayout.setWidget(0, QtGui.QFormLayout.FieldRole,
|
||||
self.SongLevelLabel)
|
||||
self.ServiceLevelRadioButton = QtGui.QRadioButton(self.LevelGroupBox)
|
||||
self.ServiceLevelRadioButton.setObjectName(u'ServiceLevelRadioButton')
|
||||
self.LevelLayout.setWidget(1, QtGui.QFormLayout.LabelRole,
|
||||
self.ServiceLevelRadioButton)
|
||||
self.ServiceLevelLabel = QtGui.QLabel(self.LevelGroupBox)
|
||||
self.ServiceLevelLabel.setWordWrap(True)
|
||||
self.ServiceLevelLabel.setObjectName(u'ServiceLevelLabel')
|
||||
self.LevelLayout.setWidget(1, QtGui.QFormLayout.FieldRole,
|
||||
self.ServiceLevelLabel)
|
||||
self.GlobalLevelRadioButton = QtGui.QRadioButton(self.LevelGroupBox)
|
||||
self.GlobalLevelRadioButton.setChecked(True)
|
||||
self.GlobalLevelRadioButton.setObjectName(u'GlobalLevelRadioButton')
|
||||
self.LevelLayout.setWidget(2, QtGui.QFormLayout.LabelRole,
|
||||
self.GlobalLevelRadioButton)
|
||||
self.GlobalLevelLabel = QtGui.QLabel(self.LevelGroupBox)
|
||||
self.GlobalLevelLabel.setWordWrap(True)
|
||||
self.GlobalLevelLabel.setObjectName(u'GlobalLevelLabel')
|
||||
self.LevelLayout.setWidget(2, QtGui.QFormLayout.FieldRole,
|
||||
self.GlobalLevelLabel)
|
||||
self.ThemesTabLayout.addWidget(self.LevelGroupBox)
|
||||
|
||||
def retranslateUi(self):
|
||||
self.GlobalGroupBox.setTitle(translate(u'ThemesTab', u'Global theme'))
|
||||
self.DefaultComboBox.setItemText(0, translate(u'ThemesTab', u'African Sunset'))
|
||||
self.DefaultComboBox.setItemText(1, translate(u'ThemesTab', u'Snowy Mountains'))
|
||||
self.DefaultComboBox.setItemText(2, translate(u'ThemesTab', u'Wilderness'))
|
||||
self.LevelGroupBox.setTitle(translate(u'ThemesTab', u'Theme level'))
|
||||
self.SongLevelRadioButton.setText(translate(u'ThemesTab', u'Song level'))
|
||||
self.SongLevelLabel.setText(translate(u'ThemesTab', u'Use the theme from each song in the database. If a song doesn\'t have a theme associated with it, then use the service\'s theme. If the service doesn\'t have a theme, then use the global theme.'))
|
||||
self.ServiceLevelRadioButton.setText(translate(u'ThemesTab', u'Service level'))
|
||||
self.ServiceLevelLabel.setText(translate(u'ThemesTab', u'Use the theme from the service , overriding any of the individual songs\' themes. If the service doesn\'t have a theme, then use the global theme.'))
|
||||
self.GlobalLevelRadioButton.setText(translate(u'ThemesTab', u'Global level'))
|
||||
self.GlobalLevelLabel.setText(translate(u'ThemesTab', u'Use the global theme, overriding any themes associated wither either the service or the songs.'))
|
@ -24,9 +24,9 @@ from PyQt4.QtCore import *
|
||||
from PyQt4.QtGui import *
|
||||
|
||||
from openlp.core.resources import *
|
||||
from openlp.core.lib import Plugin,PluginUtils, MediaManagerItem, Receiver, SettingsTabItem
|
||||
from openlp.core.lib import Plugin,PluginUtils, MediaManagerItem, Receiver
|
||||
|
||||
from openlp.plugins.bibles.lib import BibleManager
|
||||
from openlp.plugins.bibles.lib import BibleManager, BiblesTab
|
||||
from openlp.plugins.bibles.forms import BibleImportForm
|
||||
|
||||
from openlp.plugins.bibles.lib.tables import *
|
||||
@ -47,15 +47,12 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
#Register the bible Manager
|
||||
self.biblemanager = BibleManager(self.config)
|
||||
self.search_results = {} # place to store the search results
|
||||
QtCore.QObject.connect(Receiver().get_receiver(),QtCore.SIGNAL("openlpreloadbibles"),self.reload_bibles)
|
||||
QtCore.QObject.connect(Receiver().get_receiver(),
|
||||
QtCore.SIGNAL("openlpreloadbibles"), self.reload_bibles)
|
||||
|
||||
def has_settings_tab_item(self):
|
||||
return True
|
||||
|
||||
def get_settings_tab_item(self):
|
||||
|
||||
self.SettingsTabItem= SettingsTabItem()
|
||||
|
||||
def get_settings_tab(self):
|
||||
self.BiblesTab = BiblesTab()
|
||||
"""
|
||||
self.Bibles = QtGui.QWidget()
|
||||
self.Bibles.setObjectName("Bibles")
|
||||
self.formLayout_3 = QtGui.QFormLayout(self.Bibles)
|
||||
@ -131,11 +128,11 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Changes don\'t affect verses already in the service</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.SearchGroupBox_2.setTitle(QtGui.QApplication.translate("SettingsForm", "Search", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.SearchCheckBox_2.setText(QtGui.QApplication.translate("SettingsForm", "Enabled search-as-you-type", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
|
||||
self.SettingsTabItem.add_items(self.Bibles)
|
||||
self.SettingsTabItem.setTabText(QtGui.QApplication.translate("SettingsForm", "Bibles", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
return self.SettingsTabItem
|
||||
"""
|
||||
return self.BiblesTab
|
||||
|
||||
def get_media_manager_item(self):
|
||||
# Create the MediaManagerItem object
|
||||
@ -213,7 +210,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
self.SearchTabWidget.addTab(self.QuickTab, 'Quick')
|
||||
QuickSpacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
||||
self.QuickLayout.addItem(QuickSpacerItem, 4, 2, 1, 1)
|
||||
|
||||
|
||||
# Add the Advanced Search tab
|
||||
self.AdvancedTab = QtGui.QWidget()
|
||||
self.AdvancedTab.setObjectName('AdvancedTab')
|
||||
@ -271,13 +268,13 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
self.ClearAdvancedSearchComboBox = QtGui.QComboBox(self.QuickTab)
|
||||
self.ClearAdvancedSearchComboBox.setObjectName('ClearAdvancedSearchComboBox')
|
||||
self.AdvancedLayout.addWidget(self.ClearAdvancedSearchComboBox, 5, 2, 1, 1)
|
||||
|
||||
|
||||
self.AdvancedSearchButton = QtGui.QPushButton(self.AdvancedTab)
|
||||
self.AdvancedSearchButton.setObjectName('AdvancedSearchButton')
|
||||
self.AdvancedSearchButton.setText('Search')
|
||||
self.AdvancedLayout.addWidget(self.AdvancedSearchButton, 5, 3, 1, 1)
|
||||
self.SearchTabWidget.addTab(self.AdvancedTab, 'Advanced')
|
||||
|
||||
|
||||
# Add the search tab widget to the page layout
|
||||
self.MediaManagerItem.PageLayout.addWidget(self.SearchTabWidget)
|
||||
|
||||
@ -306,7 +303,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
##############Buttons
|
||||
QtCore.QObject.connect(self.AdvancedSearchButton, QtCore.SIGNAL("pressed()"), self.onAdvancedSearchButton)
|
||||
QtCore.QObject.connect(self.QuickSearchButton, QtCore.SIGNAL("pressed()"), self.onQuickSearchButton)
|
||||
|
||||
|
||||
##############Context Menus
|
||||
self.BibleListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
|
||||
|
||||
@ -322,7 +319,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
self.ImportBibleItem.setText(QtGui.QApplication.translate("main_window", "&Bible", None, QtGui.QApplication.UnicodeUTF8))
|
||||
# Signals and slots
|
||||
QtCore.QObject.connect(self.ImportBibleItem, QtCore.SIGNAL("triggered()"), self.onBibleNewClick)
|
||||
|
||||
|
||||
def add_export_menu_item(self, export_menu):
|
||||
self.ExportBibleItem = QtGui.QAction(export_menu)
|
||||
self.ExportBibleItem.setObjectName("ExportBibleItem")
|
||||
@ -331,35 +328,35 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
|
||||
def initialise(self):
|
||||
self._initialise_form() # build the form
|
||||
|
||||
|
||||
def _initialise_form(self):
|
||||
log.debug("_initialise_form")
|
||||
self.QuickSearchComboBox.clear()
|
||||
self.QuickVersionComboBox.clear()
|
||||
self.AdvancedVersionComboBox.clear()
|
||||
self.ClearQuickSearchComboBox.clear()
|
||||
self.ClearAdvancedSearchComboBox.clear()
|
||||
|
||||
self.QuickSearchComboBox.addItem(u"Verse Search")
|
||||
self.ClearAdvancedSearchComboBox.clear()
|
||||
|
||||
self.QuickSearchComboBox.addItem(u"Verse Search")
|
||||
self.QuickSearchComboBox.addItem(u"Text Search")
|
||||
self.ClearQuickSearchComboBox.addItem(u"Clear")
|
||||
self.ClearQuickSearchComboBox.addItem(u"Keep")
|
||||
self.ClearAdvancedSearchComboBox.addItem(u"Clear")
|
||||
self.ClearQuickSearchComboBox.addItem(u"Clear")
|
||||
self.ClearQuickSearchComboBox.addItem(u"Keep")
|
||||
self.ClearAdvancedSearchComboBox.addItem(u"Clear")
|
||||
self.ClearAdvancedSearchComboBox.addItem(u"Keep")
|
||||
|
||||
|
||||
bibles = self.biblemanager.get_bibles("full")
|
||||
for b in bibles: # load bibles into the combo boxes
|
||||
self.QuickVersionComboBox.addItem(b)
|
||||
|
||||
|
||||
bibles = self.biblemanager.get_bibles("partial") # Without HTTP
|
||||
first = True
|
||||
for b in bibles: # load bibles into the combo boxes
|
||||
self.AdvancedVersionComboBox.addItem(b)
|
||||
self.AdvancedVersionComboBox.addItem(b)
|
||||
if first:
|
||||
first = False
|
||||
self._initialise_bible_advanced(b) # use the first bible as the trigger
|
||||
|
||||
self._initialise_bible_advanced(b) # use the first bible as the trigger
|
||||
|
||||
def onAdvancedVersionComboBox(self):
|
||||
self._initialise_bible_advanced(str(self.AdvancedVersionComboBox.currentText())) # restet the bible info
|
||||
pass
|
||||
@ -374,7 +371,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
|
||||
def onBibleLiveClick(self):
|
||||
pass
|
||||
|
||||
|
||||
def onBibleAddClick(self):
|
||||
pass
|
||||
|
||||
@ -382,7 +379,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
self._save_settings()
|
||||
|
||||
def onSettingsResetButton(self):
|
||||
self._load_reset_settings()
|
||||
self._load_reset_settings()
|
||||
|
||||
def onAdvancedFromVerse(self):
|
||||
frm = self.AdvancedFromVerse.currentText()
|
||||
@ -407,7 +404,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
self.search_results = self.biblemanager.get_verse_text(bible, book, chapter_from, chapter_to, verse_from, verse_to)
|
||||
if self.ClearAdvancedSearchComboBox.currentText() == u"Clear":
|
||||
self.BibleListView.clear() # clear the results
|
||||
self.BibleListView.setRowCount(0)
|
||||
self.BibleListView.setRowCount(0)
|
||||
self._display_results(bible)
|
||||
|
||||
def onAdvancedFromChapter(self):
|
||||
@ -423,11 +420,11 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
self.log.debug("onQuickSearchButton")
|
||||
bible = str(self.QuickVersionComboBox.currentText())
|
||||
text = str(self.QuickSearchEdit.displayText())
|
||||
|
||||
|
||||
if self.ClearQuickSearchComboBox.currentText() == u"Clear":
|
||||
self.BibleListView.clear() # clear the results
|
||||
self.BibleListView.setRowCount(0)
|
||||
|
||||
self.BibleListView.setRowCount(0)
|
||||
|
||||
if self.QuickSearchComboBox.currentText() == u"Text Search":
|
||||
self.search_results = self.biblemanager.get_verse_from_text(bible,text)
|
||||
else:
|
||||
@ -469,11 +466,11 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
loc += verse
|
||||
loc += closing
|
||||
return loc
|
||||
|
||||
|
||||
def reload_bibles(self):
|
||||
self.biblemanager.reload_bibles()
|
||||
self._initialise_form()
|
||||
|
||||
|
||||
def _initialise_bible_advanced(self, bible):
|
||||
log.debug("_initialise_bible_advanced %s ", bible)
|
||||
currentBook = str(self.AdvancedBookComboBox.currentText())
|
||||
@ -512,7 +509,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
self.BibleListView.setItem(row_count , 0, table_data)
|
||||
table_data = QtGui.QTableWidgetItem(str(book + " " +str(chap) + ":"+ str(vse)) + " ("+str(bible)+")")
|
||||
self.BibleListView.setItem(row_count , 1, table_data)
|
||||
self.BibleListView.setRowHeight(row_count, 20)
|
||||
self.BibleListView.setRowHeight(row_count, 20)
|
||||
|
||||
def _search_using_bible_reference(self, bible, search):
|
||||
book = ""
|
||||
@ -528,7 +525,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
for i in range (len(search)-1, 0, -1): # 0 index arrays
|
||||
if search[i] == " ":
|
||||
book = search[:i]
|
||||
search = search[i:] # remove book from string
|
||||
search = search[i:] # remove book from string
|
||||
break
|
||||
search = search.replace("v", ":") # allow V or v for verse instead of :
|
||||
search = search.replace("V", ":") # allow V or v for verse instead of :
|
||||
@ -551,7 +548,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
sp = search.split("-") #find first
|
||||
#print sp, len(sp)
|
||||
sp1 = sp[0].split(":")
|
||||
#print sp1, len(sp1)
|
||||
#print sp1, len(sp1)
|
||||
if len(sp1) == 1:
|
||||
start_chapter = sp1[0]
|
||||
start_verse = 1
|
||||
@ -563,7 +560,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
end_verse = start_verse
|
||||
else:
|
||||
sp1 = sp[1].split(":")
|
||||
#print sp1, len(sp1)
|
||||
#print sp1, len(sp1)
|
||||
if len(sp1) == 1:
|
||||
end_chapter = sp1[0]
|
||||
end_verse = 1
|
||||
@ -584,13 +581,13 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
#print "message = " + str(message)
|
||||
#print "search = " + str(original)
|
||||
#print "results = " + str(book) + " @ "+ str(start_chapter)+" @ "+ str(end_chapter)+" @ "+ str(start_verse)+ " @ "+ str(end_verse)
|
||||
|
||||
|
||||
if message == None:
|
||||
self.search_results = None
|
||||
self.search_results = self.biblemanager.get_verse_text(bible, book,int(start_chapter), int(end_chapter), int(start_verse), int(end_verse))
|
||||
else:
|
||||
reply = QtGui.QMessageBox.information(self.MediaManagerItem,"Information",message)
|
||||
|
||||
|
||||
def load_settings(self):
|
||||
pass
|
||||
# self.SettingsOutputStyleComboBox.setCurrentIndex(int(self.config.get_config("bible_output_style", 0)))
|
||||
@ -599,7 +596,7 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
# self.SettingsNewChapterCheck.setCheckState(int(self.config.get_config("bible_new_chapter", 0)))
|
||||
# except:
|
||||
# pass
|
||||
|
||||
|
||||
def save_settings(self):
|
||||
pass
|
||||
# self.config.set_config("bible_output_style", str(self.SettingsOutputStyleComboBox.currentIndex()))
|
||||
@ -607,10 +604,10 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
# self.config.set_config("bible_new_chapter", str(self.SettingsNewChapterCheck.checkState()))
|
||||
|
||||
# self.SettingsOutputStyleComboBox.clear()
|
||||
# self.SettingsVerseStyleComboBox.clear()
|
||||
# self.SettingsVerseStyleComboBox.clear()
|
||||
|
||||
# self.SettingsOutputStyleComboBox.addItem(u"Continuous")
|
||||
# self.SettingsOutputStyleComboBox.addItem(u"Paragraph")
|
||||
# self.SettingsOutputStyleComboBox.addItem(u"Paragraph")
|
||||
# self.SettingsVerseStyleComboBox.addItem(u"No Brackets")
|
||||
# self.SettingsVerseStyleComboBox.addItem(u"( and )")
|
||||
# self.SettingsVerseStyleComboBox.addItem(u"{ and }")
|
||||
@ -620,4 +617,4 @@ class BiblePlugin(Plugin, PluginUtils):
|
||||
def define_tab(self):
|
||||
pass
|
||||
# QtCore.QObject.connect(self.SettingsResetButton, QtCore.SIGNAL("pressed()"), self.onSettingsResetButton)
|
||||
# QtCore.QObject.connect(self.SettingsSaveButton, QtCore.SIGNAL("pressed()"), self.onSettingsSaveButton)
|
||||
# QtCore.QObject.connect(self.SettingsSaveButton, QtCore.SIGNAL("pressed()"), self.onSettingsSaveButton)
|
||||
|
@ -20,5 +20,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
from common import BibleCommon
|
||||
from manager import BibleManager
|
||||
from biblestab import BiblesTab
|
||||
|
||||
__all__ = ['BibleCommon', 'BibleManager']
|
||||
__all__ = ['BibleCommon', 'BibleManager', 'BiblesTab']
|
||||
|
35
openlp/plugins/bibles/lib/biblestab.py
Normal file
35
openlp/plugins/bibles/lib/biblestab.py
Normal file
@ -0,0 +1,35 @@
|
||||
# -*- 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 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 import translate
|
||||
from openlp.core.lib import SettingsTab
|
||||
from openlp.core.resources import *
|
||||
|
||||
class BiblesTab(SettingsTab):
|
||||
"""
|
||||
BiblesTab is the Bibles settings tab in the settings dialog.
|
||||
"""
|
||||
def __init__(self):
|
||||
SettingsTab.__init__(self, u'Bibles')
|
||||
|
||||
def setupUi(self):
|
||||
self.setObjectName(u'BiblesTab')
|
@ -18,8 +18,6 @@ this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
"""
|
||||
from PyQt4 import Qt, QtCore, QtGui
|
||||
from PyQt4.QtGui import QDialog
|
||||
from PyQt4.QtCore import pyqtSignature
|
||||
|
||||
from authorsform import AuthorsForm
|
||||
from topicsform import TopicsForm
|
||||
@ -27,7 +25,7 @@ from songbookform import SongBookForm
|
||||
|
||||
from editsongdialog import Ui_EditSongDialog
|
||||
|
||||
class EditSongForm(QDialog, Ui_EditSongDialog):
|
||||
class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||
"""
|
||||
Class documentation goes here.
|
||||
"""
|
||||
@ -35,11 +33,12 @@ class EditSongForm(QDialog, Ui_EditSongDialog):
|
||||
"""
|
||||
Constructor
|
||||
"""
|
||||
QDialog.__init__(self, parent)
|
||||
QtGui.QDialog.__init__(self, parent)
|
||||
self.setupUi(self)
|
||||
# Connecting signals and slots
|
||||
QtCore.QObject.connect(self.AddAuthorsButton, QtCore.SIGNAL('clicked()'), self.onAddAuthorsButtonClicked)
|
||||
QtCore.QObject.connect(self.AddTopicButton, QtCore.SIGNAL('clicked()'), self.onAddTopicButtonClicked)
|
||||
QtCore.QObject.connect(self.AddSongBookButton, QtCore.SIGNAL('clicked()'), self.onAddSongBookButtonClicked)
|
||||
QtCore.QObject.connect(self.CopyrightInsertItem, QtCore.SIGNAL('clicked()'), self.onCopyrightInsertItemTriggered)
|
||||
# Create other objects and forms
|
||||
self.songmanager = songmanager
|
||||
@ -98,8 +97,7 @@ class EditSongForm(QDialog, Ui_EditSongDialog):
|
||||
self.topics_form.load_form()
|
||||
self.topics_form.exec_()
|
||||
|
||||
@pyqtSignature("")
|
||||
def on_AddSongBookButton_clicked(self):
|
||||
def onAddSongBookButtonClicked(self):
|
||||
"""
|
||||
Slot documentation goes here.
|
||||
"""
|
||||
|
@ -21,7 +21,7 @@ import os
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.resources import *
|
||||
from openlp.core.lib import Plugin,PluginUtils, MediaManagerItem, SettingsTabItem
|
||||
from openlp.core.lib import Plugin, PluginUtils, MediaManagerItem, SettingsTab
|
||||
|
||||
class VideoPlugin(Plugin, PluginUtils):
|
||||
def __init__(self):
|
||||
@ -32,14 +32,10 @@ class VideoPlugin(Plugin, PluginUtils):
|
||||
self.icon = QtGui.QIcon()
|
||||
self.icon.addPixmap(QtGui.QPixmap(':/media/media_video.png'),
|
||||
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
|
||||
def has_settings_tab_item(self):
|
||||
return True
|
||||
|
||||
def get_settings_tab_item(self):
|
||||
|
||||
self.SettingsTabItem= SettingsTabItem()
|
||||
|
||||
def get_settings_tab(self):
|
||||
self.VideosTab = SettingsTab(u'Videos')
|
||||
"""
|
||||
self.Videos = QtGui.QWidget()
|
||||
self.Videos.setObjectName("Videos")
|
||||
|
||||
@ -58,13 +54,13 @@ class VideoPlugin(Plugin, PluginUtils):
|
||||
self.UseVMRLabel = QtGui.QLabel(self.VideoModeGroupBox)
|
||||
self.UseVMRLabel.setObjectName("UseVMRLabel")
|
||||
self.VideoModeLayout.addWidget(self.UseVMRLabel)
|
||||
|
||||
|
||||
self.VideoLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.VideoModeGroupBox)
|
||||
|
||||
|
||||
self.SettingsTabItem.add_items(self.Videos)
|
||||
|
||||
|
||||
self.SettingsTabItem.setTabText(QtGui.QApplication.translate("SettingsForm", "Videos", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
|
||||
self.VideoModeGroupBox.setTitle(QtGui.QApplication.translate("SettingsForm", "Video Mode", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.UseVMRCheckBox.setText(QtGui.QApplication.translate("SettingsForm", "Use Video Mode Rendering", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.UseVMRLabel.setText(QtGui.QApplication.translate("SettingsForm", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
@ -72,9 +68,9 @@ class VideoPlugin(Plugin, PluginUtils):
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'DejaVu Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">No video preview available with VMR enabled</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
return self.SettingsTabItem
|
||||
|
||||
"""
|
||||
return self.VideosTab
|
||||
|
||||
def get_media_manager_item(self):
|
||||
# Create the MediaManagerItem object
|
||||
self.MediaManagerItem = MediaManagerItem(self.icon, 'Videos')
|
||||
@ -105,49 +101,49 @@ class VideoPlugin(Plugin, PluginUtils):
|
||||
self.VideoListView.setColumnHidden(0, True)
|
||||
self.VideoListView.setColumnWidth(1, 275)
|
||||
self.VideoListView.setShowGrid(False)
|
||||
self.VideoListView.setSortingEnabled(False)
|
||||
self.VideoListView.setSortingEnabled(False)
|
||||
self.VideoListView.setAlternatingRowColors(True)
|
||||
self.VideoListView.verticalHeader().setVisible(False)
|
||||
self.VideoListView.horizontalHeader().setVisible(False)
|
||||
self.VideoListView.horizontalHeader().setVisible(False)
|
||||
self.VideoListView.setAlternatingRowColors(True)
|
||||
self.VideoListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
|
||||
self.VideoListView.setObjectName("VideoListView")
|
||||
self.MediaManagerItem.PageLayout.addWidget(self.VideoListView)
|
||||
|
||||
|
||||
#define and add the context menu
|
||||
self.VideoListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
|
||||
|
||||
self.VideoListView.addAction(self.add_to_context_menu(self.VideoListView, ':/system/system_preview.png', "&Preview Video", self.onVideoPreviewClick))
|
||||
self.VideoListView.addAction(self.add_to_context_menu(self.VideoListView, ':/system/system_live.png', "&Show Live", self.onVideoLiveClick))
|
||||
self.VideoListView.addAction(self.add_to_context_menu(self.VideoListView, ':/system/system_add.png', "&Add to Service", self.onVideoAddClick))
|
||||
self.VideoListView.addAction(self.add_to_context_menu(self.VideoListView, ':/system/system_preview.png', "&Preview Video", self.onVideoPreviewClick))
|
||||
self.VideoListView.addAction(self.add_to_context_menu(self.VideoListView, ':/system/system_live.png', "&Show Live", self.onVideoLiveClick))
|
||||
self.VideoListView.addAction(self.add_to_context_menu(self.VideoListView, ':/system/system_add.png', "&Add to Service", self.onVideoAddClick))
|
||||
return self.MediaManagerItem
|
||||
|
||||
def initialise(self):
|
||||
list = self._load_display_list()
|
||||
self._load_video_list(list)
|
||||
self._load_video_list(list)
|
||||
|
||||
def onVideoNewClick(self):
|
||||
files = QtGui.QFileDialog.getOpenFileNames(None, "Select Image(s)", self._get_last_dir(), "Images (*.avi *.mpeg)")
|
||||
if len(files) > 0:
|
||||
self._load_video_list(files)
|
||||
self._save_last_directory(files[0])
|
||||
self._save_display_list(self.VideoListView)
|
||||
self._save_display_list(self.VideoListView)
|
||||
|
||||
def _load_video_list(self, list):
|
||||
for f in list:
|
||||
file_path , file_name = os.path.split(str(f))
|
||||
file_path , file_name = os.path.split(str(f))
|
||||
count = self.VideoListView.rowCount()
|
||||
self.VideoListView.setRowCount(count+1)
|
||||
row_item = QtGui.QTableWidgetItem(str(f))
|
||||
self.VideoListView.setItem(count , 0, row_item)
|
||||
row_item = QtGui.QTableWidgetItem(str(file_name))
|
||||
self.VideoListView.setItem(count , 1, row_item)
|
||||
self.VideoListView.setRowHeight(count, 20)
|
||||
|
||||
self.VideoListView.setRowHeight(count, 20)
|
||||
|
||||
def onVideoDeleteClick(self):
|
||||
cr = self.VideoListView.currentRow()
|
||||
self.VideoListView.removeRow(int(cr))
|
||||
self._save_display_list(self.VideoListView)
|
||||
self._save_display_list(self.VideoListView)
|
||||
|
||||
def onVideoPreviewClick(self):
|
||||
pass
|
||||
|
@ -28,6 +28,186 @@
|
||||
<property name="currentIndex" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="GeneralTab" >
|
||||
<attribute name="title" >
|
||||
<string>General</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="GeneralLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="GeneralLeftWidget" >
|
||||
<layout class="QVBoxLayout" name="verticalLayout" >
|
||||
<item>
|
||||
<widget class="QGroupBox" name="MonitorGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Monitors</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="MonitorLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="MonitorLabel" >
|
||||
<property name="text" >
|
||||
<string>Select monitor for output display:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="MonitorComboBox" >
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Monitor 1 on X11 Windowing System</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Monitor 2 on X11 Windowing System</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="BlankScreenGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Blank Screen</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="BlankScreenLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="WarningCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Show warning on startup</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="AutoOpenGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Auto Open Last Service</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="AutoOpenLayout" >
|
||||
<item>
|
||||
<widget class="QCheckBox" name="AutoOpenCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Automatically open the last service at startup</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="GeneralLeftSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="GeneralRightWidget" >
|
||||
<layout class="QVBoxLayout" name="GeneralRightLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="CCLIGroupBox" >
|
||||
<property name="title" >
|
||||
<string>CCLI Details</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="CCLILayout" >
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="NumberLabel" >
|
||||
<property name="text" >
|
||||
<string>CCLI Number:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QLineEdit" name="NumberEdit" />
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="UsernameLabel" >
|
||||
<property name="text" >
|
||||
<string>SongSelect Username:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QLineEdit" name="UsernameEdit" />
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QLabel" name="PasswordLabel" >
|
||||
<property name="text" >
|
||||
<string>SongSelect Password:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" >
|
||||
<widget class="QLineEdit" name="PasswordEdit" >
|
||||
<property name="echoMode" >
|
||||
<enum>QLineEdit::Password</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="GeneralRightSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="ThemesTab" >
|
||||
<attribute name="title" >
|
||||
<string>Themes</string>
|
||||
@ -156,11 +336,11 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="DisplayTab" >
|
||||
<widget class="QWidget" name="AlertsTab" >
|
||||
<attribute name="title" >
|
||||
<string>Display</string>
|
||||
<string>Alerts</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="DisplayTabLayout" >
|
||||
<layout class="QHBoxLayout" name="AlertsLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
@ -168,336 +348,7 @@
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="LeftColumn" >
|
||||
<layout class="QVBoxLayout" name="LeftColumnLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="MonitorGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Monitors</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="MonitorLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="MonitorLabel" >
|
||||
<property name="text" >
|
||||
<string>Select monitor for output display:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="MonitorComboBox" >
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Monitor 1 on X11 Windowing System</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Monitor 2 on X11 Windowing System</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="FontSizeGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Font Size</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="FontSizeLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="AutoResizeRadioButton" >
|
||||
<property name="text" >
|
||||
<string>Automatically resize font to fit text to slide</string>
|
||||
</property>
|
||||
<property name="checked" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="WrapLinesRadioButton" >
|
||||
<property name="text" >
|
||||
<string>Wrap long lines to keep desired font</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="SongDisplayGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Song Display</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="SongDisplayLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="EnableCreditsCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Enable displaying of song credits</string>
|
||||
</property>
|
||||
<property name="checked" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="DisplayLeftSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="RightColumn" >
|
||||
<layout class="QVBoxLayout" name="RightColumnLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="VerseDisplayGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Verse Display</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="VerseDisplayLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="VerseTypeWidget" >
|
||||
<layout class="QHBoxLayout" name="VerseTypeLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="VerseRadioButton" >
|
||||
<property name="text" >
|
||||
<string>Verse style</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="ParagraphRadioButton" >
|
||||
<property name="text" >
|
||||
<string>Paragraph style</string>
|
||||
</property>
|
||||
<property name="checked" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="NewChaptersCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Only show new chapter numbers</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="DisplayStyleWidget" >
|
||||
<layout class="QHBoxLayout" name="DisplayStyleLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="DisplayStyleLabel" >
|
||||
<property name="text" >
|
||||
<string>Display Style:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="DisplayStyleComboBox" >
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>No brackets</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>( and )</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>{ and }</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>[ and ]</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="DisplayStyleSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="ChangeNoteLabel" >
|
||||
<property name="text" >
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Changes don't affect verses already in the service</span></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="BlankScreenGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Blank Screen</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="BlankScreenLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="WarningCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Show warning on startup</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="VideoModeGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Video Mode</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="VideoModeLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="UseVMRCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Use Video Mode Rendering</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="UseVMRLabel" >
|
||||
<property name="text" >
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">No video preview available with VMR enabled</span></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="DisplayRightSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="SlideTab" >
|
||||
<attribute name="title" >
|
||||
<string>Slide</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="SlideLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="SlideLeftColumn" >
|
||||
<widget class="QWidget" native="1" name="AlertLeftColumn" >
|
||||
<layout class="QVBoxLayout" name="SlideLeftLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
@ -506,11 +357,11 @@ p, li { white-space: pre-wrap; }
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="AlertGroupBox" >
|
||||
<widget class="QGroupBox" name="FontGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Alerts</string>
|
||||
<string>Font</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="AlertLayout" >
|
||||
<layout class="QVBoxLayout" name="FontLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
@ -598,16 +449,6 @@ p, li { white-space: pre-wrap; }
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGraphicsView" name="FontPreview" >
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>64</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="LengthWidget" >
|
||||
<layout class="QHBoxLayout" name="LengthLayout" >
|
||||
@ -673,7 +514,7 @@ p, li { white-space: pre-wrap; }
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="widget" >
|
||||
<widget class="QWidget" native="1" name="SlideRightColumn" >
|
||||
<layout class="QVBoxLayout" name="SlideRightLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
@ -682,11 +523,17 @@ p, li { white-space: pre-wrap; }
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="SongWizardGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Song Wizard</string>
|
||||
<widget class="QGroupBox" name="PreviewGroupBox" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="SongWizardLayout" >
|
||||
<property name="title" >
|
||||
<string>Preview</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="PreviewLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
@ -694,101 +541,12 @@ p, li { white-space: pre-wrap; }
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="SongWizardCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Use the Song Wizard to add songs</string>
|
||||
</property>
|
||||
<property name="checked" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="SlideWrapAroundGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Slide Wrap Around</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="SlideWrapAroundLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="SlideWrapAroundCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Enable slide wrap around</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="TimedCyclingGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Timed Cycling</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="TimedCyclingLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="IntervalWidget" >
|
||||
<layout class="QHBoxLayout" name="IntervalLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="UpdateIntervalLabel" >
|
||||
<property name="text" >
|
||||
<string>Update interval:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="IntervalSpinBox" >
|
||||
<property name="suffix" >
|
||||
<string>s</string>
|
||||
</property>
|
||||
<property name="maximum" >
|
||||
<number>600</number>
|
||||
</property>
|
||||
<property name="value" >
|
||||
<number>30</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="IntervalSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>139</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="EnabledCyclingCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Enable timed cycling</string>
|
||||
<widget class="QGraphicsView" name="FontPreview" >
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>64</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -813,153 +571,6 @@ p, li { white-space: pre-wrap; }
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="GeneralTab" >
|
||||
<attribute name="title" >
|
||||
<string>General</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="GeneralLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="GeneralLeftWidget" >
|
||||
<layout class="QVBoxLayout" name="GeneralLeftLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="CCLIGroupBox" >
|
||||
<property name="title" >
|
||||
<string>CCLI Details</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="CCLILayout" >
|
||||
<property name="margin" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="NumberLabel" >
|
||||
<property name="text" >
|
||||
<string>CCLI Number:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QLineEdit" name="NumberEdit" />
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="UsernameLabel" >
|
||||
<property name="text" >
|
||||
<string>SongSelect Username:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QLineEdit" name="UsernameEdit" />
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QLabel" name="PasswordLabel" >
|
||||
<property name="text" >
|
||||
<string>SongSelect Password:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" >
|
||||
<widget class="QLineEdit" name="PasswordEdit" >
|
||||
<property name="echoMode" >
|
||||
<enum>QLineEdit::Password</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="GeneralLeftSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="GeneralRightWidget" >
|
||||
<layout class="QVBoxLayout" name="GeneralRightLayout" >
|
||||
<property name="spacing" >
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="AutoOpenGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Auto Open Last Service</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="AutoOpenLayout" >
|
||||
<item>
|
||||
<widget class="QCheckBox" name="AutoOpenCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Automatically open the last service at startup</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="SearchGroupBox" >
|
||||
<property name="title" >
|
||||
<string>Search</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" >
|
||||
<item>
|
||||
<widget class="QCheckBox" name="SearchCheckBox" >
|
||||
<property name="text" >
|
||||
<string>Enabled search-as-you-type</string>
|
||||
</property>
|
||||
<property name="checked" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="GeneralRightSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
Loading…
Reference in New Issue
Block a user