r1324
21
README.txt
Normal file
@ -0,0 +1,21 @@
|
||||
OpenLP 2.0
|
||||
==========
|
||||
|
||||
You're probably reading this because you've just downloaded the source code for
|
||||
OpenLP 2.0. If you are looking for the installer file, please go to the download
|
||||
page on the web site::
|
||||
|
||||
http://openlp.org/en/download.html
|
||||
|
||||
If you're looking for how to contribute to OpenLP, then please look at the
|
||||
contribution page on the web site::
|
||||
|
||||
http://openlp.org/en/documentation/introduction/contributing.html
|
||||
|
||||
If you've looked at that page, and are wanting to help develop, test or
|
||||
translate OpenLP, have a look at the OpenLP wiki::
|
||||
|
||||
http://wiki.openlp.org/
|
||||
|
||||
Thanks for downloading OpenLP 2.0!
|
||||
|
@ -188,7 +188,8 @@ class OpenLP(QtGui.QApplication):
|
||||
u'primary': (self.desktop().primaryScreen() == screen)})
|
||||
log.info(u'Screen %d found with resolution %s', screen, size)
|
||||
# start the main app window
|
||||
self.mainWindow = MainWindow(screens, app_version)
|
||||
self.appClipboard = self.clipboard()
|
||||
self.mainWindow = MainWindow(screens, app_version, self.appClipboard)
|
||||
self.mainWindow.show()
|
||||
if show_splash:
|
||||
# now kill the splashscreen
|
||||
|
@ -69,6 +69,7 @@ class ImageManager(QtCore.QObject):
|
||||
log.info(u'Image Manager loaded')
|
||||
|
||||
def __init__(self):
|
||||
QtCore.QObject.__init__(self)
|
||||
self._cache = {}
|
||||
self._thread_running = False
|
||||
self._cache_dirty = False
|
||||
|
@ -63,10 +63,10 @@ from splashscreen import SplashScreen
|
||||
from generaltab import GeneralTab
|
||||
from themestab import ThemesTab
|
||||
from advancedtab import AdvancedTab
|
||||
from displaytagtab import DisplayTagTab
|
||||
from aboutform import AboutForm
|
||||
from pluginform import PluginForm
|
||||
from settingsform import SettingsForm
|
||||
from displaytagform import DisplayTagForm
|
||||
from shortcutlistform import ShortcutListForm
|
||||
from mediadockmanager import MediaDockManager
|
||||
from servicemanager import ServiceManager
|
||||
|
153
openlp/core/ui/displaytagdialog.py
Normal file
@ -0,0 +1,153 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
||||
|
||||
###############################################################################
|
||||
# OpenLP - Open Source Lyrics Projection #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Copyright (c) 2008-2011 Raoul Snyman #
|
||||
# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael #
|
||||
# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian #
|
||||
# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
|
||||
# Carsten Tinggaard, Frode Woldsund #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# This program is free software; you can redistribute it and/or modify it #
|
||||
# under the terms of the GNU General Public License as published by the Free #
|
||||
# Software Foundation; version 2 of the License. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
||||
# more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU General Public License along #
|
||||
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.lib import translate, build_icon
|
||||
from openlp.core.lib.ui import UiStrings, create_accept_reject_button_box
|
||||
|
||||
class Ui_DisplayTagDialog(object):
|
||||
|
||||
def setupUi(self, displayTagDialog):
|
||||
displayTagDialog.setObjectName(u'displayTagDialog')
|
||||
displayTagDialog.resize(725, 548)
|
||||
self.widget = QtGui.QWidget(displayTagDialog)
|
||||
self.widget.setGeometry(QtCore.QRect(10, 10, 701, 521))
|
||||
self.widget.setObjectName(u'widget')
|
||||
self.listdataGridLayout = QtGui.QGridLayout(self.widget)
|
||||
self.listdataGridLayout.setMargin(0)
|
||||
self.listdataGridLayout.setObjectName(u'listdataGridLayout')
|
||||
self.tagTableWidget = QtGui.QTableWidget(self.widget)
|
||||
self.tagTableWidget.setHorizontalScrollBarPolicy(
|
||||
QtCore.Qt.ScrollBarAlwaysOff)
|
||||
self.tagTableWidget.setEditTriggers(
|
||||
QtGui.QAbstractItemView.NoEditTriggers)
|
||||
self.tagTableWidget.setAlternatingRowColors(True)
|
||||
self.tagTableWidget.setSelectionMode(
|
||||
QtGui.QAbstractItemView.SingleSelection)
|
||||
self.tagTableWidget.setSelectionBehavior(
|
||||
QtGui.QAbstractItemView.SelectRows)
|
||||
self.tagTableWidget.setCornerButtonEnabled(False)
|
||||
self.tagTableWidget.setObjectName(u'tagTableWidget')
|
||||
self.tagTableWidget.setColumnCount(4)
|
||||
self.tagTableWidget.setRowCount(0)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tagTableWidget.setHorizontalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tagTableWidget.setHorizontalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tagTableWidget.setHorizontalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tagTableWidget.setHorizontalHeaderItem(3, item)
|
||||
self.listdataGridLayout.addWidget(self.tagTableWidget, 0, 0, 1, 1)
|
||||
self.horizontalLayout = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(u'horizontalLayout')
|
||||
spacerItem = QtGui.QSpacerItem(40, 20,
|
||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.defaultPushButton = QtGui.QPushButton(self.widget)
|
||||
self.defaultPushButton.setObjectName(u'defaultPushButton')
|
||||
self.horizontalLayout.addWidget(self.defaultPushButton)
|
||||
self.deletePushButton = QtGui.QPushButton(self.widget)
|
||||
self.deletePushButton.setObjectName(u'deletePushButton')
|
||||
self.horizontalLayout.addWidget(self.deletePushButton)
|
||||
self.listdataGridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1)
|
||||
self.editGroupBox = QtGui.QGroupBox(self.widget)
|
||||
self.editGroupBox.setObjectName(u'editGroupBox')
|
||||
self.dataGridLayout = QtGui.QGridLayout(self.editGroupBox)
|
||||
self.dataGridLayout.setObjectName(u'dataGridLayout')
|
||||
self.descriptionLabel = QtGui.QLabel(self.editGroupBox)
|
||||
self.descriptionLabel.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.descriptionLabel.setObjectName(u'descriptionLabel')
|
||||
self.dataGridLayout.addWidget(self.descriptionLabel, 0, 0, 1, 1)
|
||||
self.descriptionLineEdit = QtGui.QLineEdit(self.editGroupBox)
|
||||
self.descriptionLineEdit.setObjectName(u'descriptionLineEdit')
|
||||
self.dataGridLayout.addWidget(self.descriptionLineEdit, 0, 1, 2, 1)
|
||||
self.newPushButton = QtGui.QPushButton(self.editGroupBox)
|
||||
self.newPushButton.setObjectName(u'newPushButton')
|
||||
self.dataGridLayout.addWidget(self.newPushButton, 0, 2, 2, 1)
|
||||
self.tagLabel = QtGui.QLabel(self.editGroupBox)
|
||||
self.tagLabel.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.tagLabel.setObjectName(u'tagLabel')
|
||||
self.dataGridLayout.addWidget(self.tagLabel, 2, 0, 1, 1)
|
||||
self.tagLineEdit = QtGui.QLineEdit(self.editGroupBox)
|
||||
self.tagLineEdit.setMaximumSize(QtCore.QSize(50, 16777215))
|
||||
self.tagLineEdit.setMaxLength(5)
|
||||
self.tagLineEdit.setObjectName(u'tagLineEdit')
|
||||
self.dataGridLayout.addWidget(self.tagLineEdit, 2, 1, 1, 1)
|
||||
self.startTagLabel = QtGui.QLabel(self.editGroupBox)
|
||||
self.startTagLabel.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.startTagLabel.setObjectName(u'startTagLabel')
|
||||
self.dataGridLayout.addWidget(self.startTagLabel, 3, 0, 1, 1)
|
||||
self.startTagLineEdit = QtGui.QLineEdit(self.editGroupBox)
|
||||
self.startTagLineEdit.setObjectName(u'startTagLineEdit')
|
||||
self.dataGridLayout.addWidget(self.startTagLineEdit, 3, 1, 1, 1)
|
||||
self.endTagLabel = QtGui.QLabel(self.editGroupBox)
|
||||
self.endTagLabel.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.endTagLabel.setObjectName(u'endTagLabel')
|
||||
self.dataGridLayout.addWidget(self.endTagLabel, 4, 0, 1, 1)
|
||||
self.endTagLineEdit = QtGui.QLineEdit(self.editGroupBox)
|
||||
self.endTagLineEdit.setObjectName(u'endTagLineEdit')
|
||||
self.dataGridLayout.addWidget(self.endTagLineEdit, 4, 1, 1, 1)
|
||||
self.updatePushButton = QtGui.QPushButton(self.editGroupBox)
|
||||
self.updatePushButton.setObjectName(u'updatePushButton')
|
||||
self.dataGridLayout.addWidget(self.updatePushButton, 4, 2, 1, 1)
|
||||
self.listdataGridLayout.addWidget(self.editGroupBox, 2, 0, 1, 1)
|
||||
self.buttonBox = create_accept_reject_button_box(displayTagDialog)
|
||||
self.listdataGridLayout.addWidget(self.buttonBox, 3, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(displayTagDialog)
|
||||
QtCore.QMetaObject.connectSlotsByName(displayTagDialog)
|
||||
|
||||
def retranslateUi(self, displayTagDialog):
|
||||
displayTagDialog.setWindowTitle(translate('OpenLP.displayTagDialog',
|
||||
'Configure Display Tags'))
|
||||
self.editGroupBox.setTitle(
|
||||
translate('OpenLP.DisplayTagDialog', 'Edit Selection'))
|
||||
self.updatePushButton.setText(
|
||||
translate('OpenLP.DisplayTagDialog', 'Update'))
|
||||
self.descriptionLabel.setText(
|
||||
translate('OpenLP.DisplayTagDialog', 'Description'))
|
||||
self.tagLabel.setText(translate('OpenLP.DisplayTagDialog', 'Tag'))
|
||||
self.startTagLabel.setText(
|
||||
translate('OpenLP.DisplayTagDialog', 'Start tag'))
|
||||
self.endTagLabel.setText(translate('OpenLP.DisplayTagDialog', 'End tag'))
|
||||
self.deletePushButton.setText(UiStrings.Delete)
|
||||
self.defaultPushButton.setText(
|
||||
translate('OpenLP.DisplayTagDialog', 'Default'))
|
||||
self.newPushButton.setText(UiStrings.New)
|
||||
self.tagTableWidget.horizontalHeaderItem(0).setText(
|
||||
translate('OpenLP.DisplayTagDialog', 'Description'))
|
||||
self.tagTableWidget.horizontalHeaderItem(1).setText(
|
||||
translate('OpenLP.DisplayTagDialog', 'Tag id'))
|
||||
self.tagTableWidget.horizontalHeaderItem(2).setText(
|
||||
translate('OpenLP.DisplayTagDialog', 'Start Html'))
|
||||
self.tagTableWidget.horizontalHeaderItem(3).setText(
|
||||
translate('OpenLP.DisplayTagDialog', 'End Html'))
|
||||
self.tagTableWidget.setColumnWidth(0, 120)
|
||||
self.tagTableWidget.setColumnWidth(1, 40)
|
||||
self.tagTableWidget.setColumnWidth(2, 240)
|
||||
self.tagTableWidget.setColumnWidth(3, 240)
|
@ -33,154 +33,21 @@ import cPickle
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.lib import SettingsTab, translate, DisplayTags
|
||||
from openlp.core.lib import translate, DisplayTags
|
||||
from openlp.core.lib.ui import UiStrings, critical_error_message_box
|
||||
from openlp.core.ui.displaytagdialog import Ui_DisplayTagDialog
|
||||
|
||||
class DisplayTagTab(SettingsTab):
|
||||
class DisplayTagForm(QtGui.QDialog, Ui_DisplayTagDialog):
|
||||
"""
|
||||
The :class:`DisplayTagTab` manages the settings tab .
|
||||
"""
|
||||
def __init__(self):
|
||||
def __init__(self, parent):
|
||||
"""
|
||||
Initialise the settings tab
|
||||
Constructor
|
||||
"""
|
||||
SettingsTab.__init__(self, u'Display Tags')
|
||||
|
||||
def resizeEvent(self, event=None):
|
||||
pass
|
||||
|
||||
def preLoad(self):
|
||||
"""
|
||||
Initialise values before the Load takes place
|
||||
"""
|
||||
# Create initial copy from master
|
||||
DisplayTags.reset_html_tags()
|
||||
user_expands = QtCore.QSettings().value(u'displayTags/html_tags',
|
||||
QtCore.QVariant(u'')).toString()
|
||||
# cPickle only accepts str not unicode strings
|
||||
user_expands_string = str(unicode(user_expands).encode(u'utf8'))
|
||||
if user_expands_string:
|
||||
user_tags = cPickle.loads(user_expands_string)
|
||||
# If we have some user ones added them as well
|
||||
for t in user_tags:
|
||||
DisplayTags.add_html_tag(t)
|
||||
self.selected = -1
|
||||
|
||||
def setupUi(self):
|
||||
"""
|
||||
Configure the UI elements for the tab.
|
||||
"""
|
||||
self.setObjectName(u'DisplayTagTab')
|
||||
self.tabTitleVisible = \
|
||||
translate(u'OpenLP.DisplayTagTab', 'Display Tags')
|
||||
self.displayTagEdit = QtGui.QWidget(self)
|
||||
self.editGroupBox = QtGui.QGroupBox(self.displayTagEdit)
|
||||
self.editGroupBox.setGeometry(QtCore.QRect(10, 220, 650, 181))
|
||||
self.editGroupBox.setObjectName(u'editGroupBox')
|
||||
self.updatePushButton = QtGui.QPushButton(self.editGroupBox)
|
||||
self.updatePushButton.setGeometry(QtCore.QRect(550, 140, 71, 26))
|
||||
self.updatePushButton.setObjectName(u'updatePushButton')
|
||||
self.layoutWidget = QtGui.QWidget(self.editGroupBox)
|
||||
self.layoutWidget.setGeometry(QtCore.QRect(5, 20, 571, 114))
|
||||
self.layoutWidget.setObjectName(u'layoutWidget')
|
||||
self.formLayout = QtGui.QFormLayout(self.layoutWidget)
|
||||
self.formLayout.setObjectName(u'formLayout')
|
||||
self.descriptionLabel = QtGui.QLabel(self.layoutWidget)
|
||||
self.descriptionLabel.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.descriptionLabel.setObjectName(u'descriptionLabel')
|
||||
self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
|
||||
self.descriptionLabel)
|
||||
self.descriptionLineEdit = QtGui.QLineEdit(self.layoutWidget)
|
||||
self.descriptionLineEdit.setObjectName(u'descriptionLineEdit')
|
||||
self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole,
|
||||
self.descriptionLineEdit)
|
||||
self.tagLabel = QtGui.QLabel(self.layoutWidget)
|
||||
self.tagLabel.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.tagLabel.setObjectName(u'tagLabel')
|
||||
self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.tagLabel)
|
||||
self.tagLineEdit = QtGui.QLineEdit(self.layoutWidget)
|
||||
self.tagLineEdit.setMaximumSize(QtCore.QSize(50, 16777215))
|
||||
self.tagLineEdit.setMaxLength(5)
|
||||
self.tagLineEdit.setObjectName(u'tagLineEdit')
|
||||
self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole,
|
||||
self.tagLineEdit)
|
||||
self.startTagLabel = QtGui.QLabel(self.layoutWidget)
|
||||
self.startTagLabel.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.startTagLabel.setObjectName(u'startTagLabel')
|
||||
self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole,
|
||||
self.startTagLabel)
|
||||
self.startTagLineEdit = QtGui.QLineEdit(self.layoutWidget)
|
||||
self.startTagLineEdit.setObjectName(u'startTagLineEdit')
|
||||
self.formLayout.setWidget(2, QtGui.QFormLayout.FieldRole,
|
||||
self.startTagLineEdit)
|
||||
self.endTagLabel = QtGui.QLabel(self.layoutWidget)
|
||||
self.endTagLabel.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.endTagLabel.setObjectName(u'endTagLabel')
|
||||
self.formLayout.setWidget(3, QtGui.QFormLayout.LabelRole,
|
||||
self.endTagLabel)
|
||||
self.endTagLineEdit = QtGui.QLineEdit(self.layoutWidget)
|
||||
self.endTagLineEdit.setObjectName(u'endTagLineEdit')
|
||||
self.formLayout.setWidget(3, QtGui.QFormLayout.FieldRole,
|
||||
self.endTagLineEdit)
|
||||
self.defaultPushButton = QtGui.QPushButton(self.displayTagEdit)
|
||||
self.defaultPushButton.setGeometry(QtCore.QRect(430, 188, 71, 26))
|
||||
self.defaultPushButton.setObjectName(u'updatePushButton')
|
||||
self.deletePushButton = QtGui.QPushButton(self.displayTagEdit)
|
||||
self.deletePushButton.setGeometry(QtCore.QRect(510, 188, 71, 26))
|
||||
self.deletePushButton.setObjectName(u'deletePushButton')
|
||||
self.newPushButton = QtGui.QPushButton(self.displayTagEdit)
|
||||
self.newPushButton.setGeometry(QtCore.QRect(600, 188, 71, 26))
|
||||
self.newPushButton.setObjectName(u'newPushButton')
|
||||
self.tagTableWidget = QtGui.QTableWidget(self.displayTagEdit)
|
||||
self.tagTableWidget.setGeometry(QtCore.QRect(10, 10, 650, 171))
|
||||
self.tagTableWidget.setHorizontalScrollBarPolicy(
|
||||
QtCore.Qt.ScrollBarAlwaysOff)
|
||||
self.tagTableWidget.setEditTriggers(
|
||||
QtGui.QAbstractItemView.NoEditTriggers)
|
||||
self.tagTableWidget.setAlternatingRowColors(True)
|
||||
self.tagTableWidget.setSelectionMode(
|
||||
QtGui.QAbstractItemView.SingleSelection)
|
||||
self.tagTableWidget.setSelectionBehavior(
|
||||
QtGui.QAbstractItemView.SelectRows)
|
||||
self.tagTableWidget.setCornerButtonEnabled(False)
|
||||
self.tagTableWidget.setObjectName(u'tagTableWidget')
|
||||
self.tagTableWidget.setColumnCount(4)
|
||||
self.tagTableWidget.setRowCount(0)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tagTableWidget.setHorizontalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tagTableWidget.setHorizontalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tagTableWidget.setHorizontalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tagTableWidget.setHorizontalHeaderItem(3, item)
|
||||
self.editGroupBox.setTitle(
|
||||
translate('OpenLP.DisplayTagTab', 'Edit Selection'))
|
||||
self.updatePushButton.setText(
|
||||
translate('OpenLP.DisplayTagTab', 'Update'))
|
||||
self.descriptionLabel.setText(
|
||||
translate('OpenLP.DisplayTagTab', 'Description'))
|
||||
self.tagLabel.setText(translate('OpenLP.DisplayTagTab', 'Tag'))
|
||||
self.startTagLabel.setText(
|
||||
translate('OpenLP.DisplayTagTab', 'Start tag'))
|
||||
self.endTagLabel.setText(translate('OpenLP.DisplayTagTab', 'End tag'))
|
||||
self.deletePushButton.setText(UiStrings.Delete)
|
||||
self.defaultPushButton.setText(
|
||||
translate('OpenLP.DisplayTagTab', 'Default'))
|
||||
self.newPushButton.setText(UiStrings.New)
|
||||
self.tagTableWidget.horizontalHeaderItem(0)\
|
||||
.setText(translate('OpenLP.DisplayTagTab', 'Description'))
|
||||
self.tagTableWidget.horizontalHeaderItem(1)\
|
||||
.setText(translate('OpenLP.DisplayTagTab', 'Tag id'))
|
||||
self.tagTableWidget.horizontalHeaderItem(2)\
|
||||
.setText(translate('OpenLP.DisplayTagTab', 'Start Html'))
|
||||
self.tagTableWidget.horizontalHeaderItem(3)\
|
||||
.setText(translate('OpenLP.DisplayTagTab', 'End Html'))
|
||||
QtCore.QMetaObject.connectSlotsByName(self.displayTagEdit)
|
||||
self.tagTableWidget.setColumnWidth(0, 120)
|
||||
self.tagTableWidget.setColumnWidth(1, 40)
|
||||
self.tagTableWidget.setColumnWidth(2, 240)
|
||||
self.tagTableWidget.setColumnWidth(3, 200)
|
||||
QtGui.QDialog.__init__(self, parent)
|
||||
self.setupUi(self)
|
||||
self.preLoad()
|
||||
QtCore.QObject.connect(self.tagTableWidget,
|
||||
QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onRowSelected)
|
||||
QtCore.QObject.connect(self.defaultPushButton,
|
||||
@ -192,35 +59,35 @@ class DisplayTagTab(SettingsTab):
|
||||
QtCore.QObject.connect(self.deletePushButton,
|
||||
QtCore.SIGNAL(u'pressed()'), self.onDeletePushed)
|
||||
|
||||
def load(self):
|
||||
def exec_(self):
|
||||
"""
|
||||
Load Display and set field state.
|
||||
"""
|
||||
self.newPushButton.setEnabled(True)
|
||||
self.updatePushButton.setEnabled(False)
|
||||
self.deletePushButton.setEnabled(False)
|
||||
for linenumber, html in enumerate(DisplayTags.get_html_tags()):
|
||||
self.tagTableWidget.setRowCount(
|
||||
self.tagTableWidget.rowCount() + 1)
|
||||
self.tagTableWidget.setItem(linenumber, 0,
|
||||
QtGui.QTableWidgetItem(html[u'desc']))
|
||||
self.tagTableWidget.setItem(linenumber, 1,
|
||||
QtGui.QTableWidgetItem(self._strip(html[u'start tag'])))
|
||||
self.tagTableWidget.setItem(linenumber, 2,
|
||||
QtGui.QTableWidgetItem(html[u'start html']))
|
||||
self.tagTableWidget.setItem(linenumber, 3,
|
||||
QtGui.QTableWidgetItem(html[u'end html']))
|
||||
self.tagTableWidget.resizeRowsToContents()
|
||||
self.descriptionLineEdit.setText(u'')
|
||||
self.tagLineEdit.setText(u'')
|
||||
self.startTagLineEdit.setText(u'')
|
||||
self.endTagLineEdit.setText(u'')
|
||||
self.descriptionLineEdit.setEnabled(False)
|
||||
self.tagLineEdit.setEnabled(False)
|
||||
self.startTagLineEdit.setEnabled(False)
|
||||
self.endTagLineEdit.setEnabled(False)
|
||||
# Create initial copy from master
|
||||
self.preLoad()
|
||||
self._resetTable()
|
||||
self.selected = -1
|
||||
return QtGui.QDialog.exec_(self)
|
||||
|
||||
def save(self):
|
||||
def preLoad(self):
|
||||
"""
|
||||
Load the Tags from store so can be used in the system or used to
|
||||
update the display. If Cancel was selected this is needed to reset the
|
||||
dsiplay to the correct version.
|
||||
"""
|
||||
# Initial Load of the Tags
|
||||
DisplayTags.reset_html_tags()
|
||||
user_expands = QtCore.QSettings().value(u'displayTags/html_tags',
|
||||
QtCore.QVariant(u'')).toString()
|
||||
# cPickle only accepts str not unicode strings
|
||||
user_expands_string = str(unicode(user_expands).encode(u'utf8'))
|
||||
if user_expands_string:
|
||||
user_tags = cPickle.loads(user_expands_string)
|
||||
# If we have some user ones added them as well
|
||||
for t in user_tags:
|
||||
DisplayTags.add_html_tag(t)
|
||||
|
||||
def accept(self):
|
||||
"""
|
||||
Save Custom tags in a pickle .
|
||||
"""
|
||||
@ -235,13 +102,14 @@ class DisplayTagTab(SettingsTab):
|
||||
else:
|
||||
QtCore.QSettings().setValue(u'displayTags/html_tags',
|
||||
QtCore.QVariant(u''))
|
||||
return QtGui.QDialog.accept(self)
|
||||
|
||||
def cancel(self):
|
||||
def reject(self):
|
||||
"""
|
||||
Reset Custom tags from Settings.
|
||||
"""
|
||||
self.preLoad()
|
||||
self._resetTable()
|
||||
return QtGui.QDialog.reject(self)
|
||||
|
||||
def onRowSelected(self):
|
||||
"""
|
||||
@ -288,6 +156,7 @@ class DisplayTagTab(SettingsTab):
|
||||
self._resetTable()
|
||||
# Highlight new row
|
||||
self.tagTableWidget.selectRow(self.tagTableWidget.rowCount() - 1)
|
||||
self.onRowSelected()
|
||||
|
||||
def onDefaultPushed(self):
|
||||
"""
|
||||
@ -335,7 +204,29 @@ class DisplayTagTab(SettingsTab):
|
||||
"""
|
||||
self.tagTableWidget.clearContents()
|
||||
self.tagTableWidget.setRowCount(0)
|
||||
self.load()
|
||||
self.newPushButton.setEnabled(True)
|
||||
self.updatePushButton.setEnabled(False)
|
||||
self.deletePushButton.setEnabled(False)
|
||||
for linenumber, html in enumerate(DisplayTags.get_html_tags()):
|
||||
self.tagTableWidget.setRowCount(
|
||||
self.tagTableWidget.rowCount() + 1)
|
||||
self.tagTableWidget.setItem(linenumber, 0,
|
||||
QtGui.QTableWidgetItem(html[u'desc']))
|
||||
self.tagTableWidget.setItem(linenumber, 1,
|
||||
QtGui.QTableWidgetItem(self._strip(html[u'start tag'])))
|
||||
self.tagTableWidget.setItem(linenumber, 2,
|
||||
QtGui.QTableWidgetItem(html[u'start html']))
|
||||
self.tagTableWidget.setItem(linenumber, 3,
|
||||
QtGui.QTableWidgetItem(html[u'end html']))
|
||||
self.tagTableWidget.resizeRowsToContents()
|
||||
self.descriptionLineEdit.setText(u'')
|
||||
self.tagLineEdit.setText(u'')
|
||||
self.startTagLineEdit.setText(u'')
|
||||
self.endTagLineEdit.setText(u'')
|
||||
self.descriptionLineEdit.setEnabled(False)
|
||||
self.tagLineEdit.setEnabled(False)
|
||||
self.startTagLineEdit.setEnabled(False)
|
||||
self.endTagLineEdit.setEnabled(False)
|
||||
|
||||
def _strip(self, tag):
|
||||
"""
|
@ -34,7 +34,7 @@ from openlp.core.lib.ui import UiStrings, base_action, checkable_action, \
|
||||
icon_action
|
||||
from openlp.core.ui import AboutForm, SettingsForm, ServiceManager, \
|
||||
ThemeManager, SlideController, PluginForm, MediaDockManager, \
|
||||
ShortcutListForm
|
||||
ShortcutListForm, DisplayTagForm
|
||||
from openlp.core.utils import AppLocation, add_actions, LanguageManager, \
|
||||
ActionList
|
||||
|
||||
@ -242,6 +242,8 @@ class Ui_MainWindow(object):
|
||||
self.SettingsShortcutsItem = icon_action(mainWindow,
|
||||
u'SettingsShortcutsItem',
|
||||
u':/system/system_configure_shortcuts.png')
|
||||
self.DisplayTagItem = icon_action(mainWindow,
|
||||
u'DisplayTagItem', u':/system/tag_editor.png')
|
||||
self.SettingsConfigureItem = icon_action(mainWindow,
|
||||
u'SettingsConfigureItem', u':/system/system_settings.png')
|
||||
mainWindow.actionList.add_action(self.SettingsShortcutsItem,
|
||||
@ -277,7 +279,8 @@ class Ui_MainWindow(object):
|
||||
add_actions(self.SettingsLanguageMenu, self.LanguageGroup.actions())
|
||||
add_actions(self.SettingsMenu, (self.settingsPluginListItem,
|
||||
self.SettingsLanguageMenu.menuAction(), None,
|
||||
self.SettingsShortcutsItem, self.SettingsConfigureItem))
|
||||
self.SettingsShortcutsItem, self.DisplayTagItem,
|
||||
self.SettingsConfigureItem))
|
||||
add_actions(self.ToolsMenu, (self.ToolsAddToolItem, None))
|
||||
add_actions(self.ToolsMenu, (self.ToolsOpenDataFolder, None))
|
||||
add_actions(self.HelpMenu, (self.HelpDocumentationItem,
|
||||
@ -361,6 +364,8 @@ class Ui_MainWindow(object):
|
||||
translate('OpenLP.MainWindow', '&Language'))
|
||||
self.SettingsShortcutsItem.setText(
|
||||
translate('OpenLP.MainWindow', 'Configure &Shortcuts...'))
|
||||
self.DisplayTagItem.setText(
|
||||
translate('OpenLP.MainWindow', '&Configure Display Tags'))
|
||||
self.SettingsConfigureItem.setText(
|
||||
translate('OpenLP.MainWindow', '&Configure OpenLP...'))
|
||||
self.ViewMediaManagerItem.setText(
|
||||
@ -456,7 +461,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||
|
||||
actionList = ActionList()
|
||||
|
||||
def __init__(self, screens, applicationVersion):
|
||||
def __init__(self, screens, applicationVersion, clipboard):
|
||||
"""
|
||||
This constructor sets up the interface, the various managers, and the
|
||||
plugins.
|
||||
@ -465,6 +470,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||
self.screens = screens
|
||||
self.actionList = ActionList()
|
||||
self.applicationVersion = applicationVersion
|
||||
self.clipboard = clipboard
|
||||
# Set up settings sections for the main application
|
||||
# (not for use by plugins)
|
||||
self.uiSettingsSection = u'user interface'
|
||||
@ -475,6 +481,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||
self.settingsmanager = SettingsManager(screens)
|
||||
self.aboutForm = AboutForm(self, applicationVersion)
|
||||
self.settingsForm = SettingsForm(self.screens, self, self)
|
||||
self.displayTagForm = DisplayTagForm(self)
|
||||
self.shortcutForm = ShortcutListForm(self)
|
||||
self.recentFiles = QtCore.QStringList()
|
||||
# Set up the path with plugins
|
||||
@ -522,6 +529,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||
QtCore.SIGNAL(u'triggered()'), self.onToolsOpenDataFolderClicked)
|
||||
QtCore.QObject.connect(self.settingsPluginListItem,
|
||||
QtCore.SIGNAL(u'triggered()'), self.onPluginItemClicked)
|
||||
QtCore.QObject.connect(self.DisplayTagItem,
|
||||
QtCore.SIGNAL(u'triggered()'), self.onDisplayTagItemClicked)
|
||||
QtCore.QObject.connect(self.SettingsConfigureItem,
|
||||
QtCore.SIGNAL(u'triggered()'), self.onSettingsConfigureItemClicked)
|
||||
QtCore.QObject.connect(self.SettingsShortcutsItem,
|
||||
@ -715,6 +724,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||
path = AppLocation.get_data_path()
|
||||
QtGui.QDesktopServices.openUrl(QtCore.QUrl("file:///" + path))
|
||||
|
||||
def onDisplayTagItemClicked(self):
|
||||
"""
|
||||
Show the Settings dialog
|
||||
"""
|
||||
self.displayTagForm.exec_()
|
||||
|
||||
def onSettingsConfigureItemClicked(self):
|
||||
"""
|
||||
Show the Settings dialog
|
||||
|
164
openlp/core/ui/printservicedialog.py
Normal file
@ -0,0 +1,164 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
||||
|
||||
###############################################################################
|
||||
# OpenLP - Open Source Lyrics Projection #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Copyright (c) 2008-2011 Raoul Snyman #
|
||||
# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael #
|
||||
# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian #
|
||||
# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
|
||||
# Carsten Tinggaard, Frode Woldsund #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# This program is free software; you can redistribute it and/or modify it #
|
||||
# under the terms of the GNU General Public License as published by the Free #
|
||||
# Software Foundation; version 2 of the License. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
||||
# more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU General Public License along #
|
||||
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.lib import build_icon, translate, SpellTextEdit
|
||||
from openlp.core.lib.ui import UiStrings
|
||||
|
||||
class ZoomSize():
|
||||
"""
|
||||
Type enumeration for Combo Box sizes
|
||||
"""
|
||||
Page = 0
|
||||
Width = 1
|
||||
OneHundred = 2
|
||||
SeventyFive = 3
|
||||
Fifty = 4
|
||||
TwentyFive = 5
|
||||
|
||||
Sizes = [
|
||||
translate('OpenLP.PrintServiceDialog', 'Fit Page'),
|
||||
translate('OpenLP.PrintServiceDialog', 'Fit Width'),
|
||||
u'100%', u'75%', u'50%', u'25%']
|
||||
|
||||
class Ui_PrintServiceDialog(object):
|
||||
def setupUi(self, printServiceDialog):
|
||||
printServiceDialog.setObjectName(u'printServiceDialog')
|
||||
printServiceDialog.resize(664, 594)
|
||||
self.mainLayout = QtGui.QVBoxLayout(printServiceDialog)
|
||||
self.mainLayout.setSpacing(0)
|
||||
self.mainLayout.setMargin(0)
|
||||
self.mainLayout.setObjectName(u'mainLayout')
|
||||
self.toolbar = QtGui.QToolBar(printServiceDialog)
|
||||
self.toolbar.setIconSize(QtCore.QSize(22, 22))
|
||||
self.toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
|
||||
self.printButton = self.toolbar.addAction(
|
||||
build_icon(u':/general/general_print.png'), 'Print')
|
||||
self.optionsButton = QtGui.QToolButton(self.toolbar)
|
||||
self.optionsButton.setText(translate('OpenLP.PrintServiceForm',
|
||||
'Options'))
|
||||
self.optionsButton.setToolButtonStyle(
|
||||
QtCore.Qt.ToolButtonTextBesideIcon)
|
||||
self.optionsButton.setIcon(QtGui.QIcon(
|
||||
build_icon(u':/system/system_configure.png')))
|
||||
self.optionsButton.setCheckable(True)
|
||||
self.toolbar.addWidget(self.optionsButton)
|
||||
self.closeButton = self.toolbar.addAction(
|
||||
build_icon(u':/system/system_close.png'),
|
||||
translate('OpenLP.PrintServiceForm', 'Close'))
|
||||
self.toolbar.addSeparator()
|
||||
self.plainCopy = self.toolbar.addAction(
|
||||
build_icon(u':/system/system_edit_copy.png'),
|
||||
translate('OpenLP.PrintServiceForm', 'Copy'))
|
||||
self.htmlCopy = self.toolbar.addAction(
|
||||
build_icon(u':/system/system_edit_copy.png'),
|
||||
translate('OpenLP.PrintServiceForm', 'Copy as HTML'))
|
||||
self.toolbar.addSeparator()
|
||||
self.zoomInButton = QtGui.QToolButton(self.toolbar)
|
||||
self.zoomInButton.setIcon(QtGui.QIcon(
|
||||
build_icon(u':/general/general_zoom_in.png')))
|
||||
self.zoomInButton.setToolTip(translate('OpenLP.PrintServiceForm',
|
||||
'Zoom In'))
|
||||
self.zoomInButton.setObjectName(u'zoomInButton')
|
||||
self.zoomInButton.setIconSize(QtCore.QSize(22, 22))
|
||||
self.toolbar.addWidget(self.zoomInButton)
|
||||
self.zoomOutButton = QtGui.QToolButton(self.toolbar)
|
||||
self.zoomOutButton.setIcon(QtGui.QIcon(
|
||||
build_icon(u':/general/general_zoom_out.png')))
|
||||
self.zoomOutButton.setToolTip(translate('OpenLP.PrintServiceForm',
|
||||
'Zoom Out'))
|
||||
self.zoomOutButton.setObjectName(u'zoomOutButton')
|
||||
self.zoomOutButton.setIconSize(QtCore.QSize(22, 22))
|
||||
self.toolbar.addWidget(self.zoomOutButton)
|
||||
self.zoomOriginalButton = QtGui.QToolButton(self.toolbar)
|
||||
self.zoomOriginalButton.setIcon(QtGui.QIcon(
|
||||
build_icon(u':/general/general_zoom_original.png')))
|
||||
self.zoomOriginalButton.setToolTip(translate('OpenLP.PrintServiceForm',
|
||||
'Zoom Original'))
|
||||
self.zoomOriginalButton.setObjectName(u'zoomOriginalButton')
|
||||
self.zoomOriginalButton.setIconSize(QtCore.QSize(22, 22))
|
||||
self.toolbar.addWidget(self.zoomOriginalButton)
|
||||
self.zoomComboBox = QtGui.QComboBox(printServiceDialog)
|
||||
self.zoomComboBox.setObjectName(u'zoomComboBox')
|
||||
self.toolbar.addWidget(self.zoomComboBox)
|
||||
self.mainLayout.addWidget(self.toolbar)
|
||||
self.previewWidget = QtGui.QPrintPreviewWidget(printServiceDialog)
|
||||
self.mainLayout.addWidget(self.previewWidget)
|
||||
self.optionsWidget = QtGui.QWidget(printServiceDialog)
|
||||
self.optionsWidget.hide()
|
||||
self.optionsWidget.resize(400, 300)
|
||||
self.optionsWidget.setAutoFillBackground(True)
|
||||
self.optionsLayout = QtGui.QVBoxLayout(self.optionsWidget)
|
||||
self.optionsLayout.setContentsMargins(8, 8, 8, 8)
|
||||
self.titleLabel = QtGui.QLabel(self.optionsWidget)
|
||||
self.titleLabel.setObjectName(u'titleLabel')
|
||||
self.titleLabel.setText(u'Title:')
|
||||
self.optionsLayout.addWidget(self.titleLabel)
|
||||
self.titleLineEdit = QtGui.QLineEdit(self.optionsWidget)
|
||||
self.titleLineEdit.setObjectName(u'titleLineEdit')
|
||||
self.optionsLayout.addWidget(self.titleLineEdit)
|
||||
self.footerLabel = QtGui.QLabel(self.optionsWidget)
|
||||
self.footerLabel.setObjectName(u'footerLabel')
|
||||
self.footerLabel.setText(u'Custom Footer Text:')
|
||||
self.optionsLayout.addWidget(self.footerLabel)
|
||||
self.footerTextEdit = SpellTextEdit(self.optionsWidget)
|
||||
self.footerTextEdit.setObjectName(u'footerTextEdit')
|
||||
self.optionsLayout.addWidget(self.footerTextEdit)
|
||||
self.optionsGroupBox = QtGui.QGroupBox(
|
||||
translate('OpenLP.PrintServiceForm','Other Options'))
|
||||
self.groupLayout = QtGui.QVBoxLayout()
|
||||
self.slideTextCheckBox = QtGui.QCheckBox()
|
||||
self.groupLayout.addWidget(self.slideTextCheckBox)
|
||||
self.notesCheckBox = QtGui.QCheckBox()
|
||||
self.groupLayout.addWidget(self.notesCheckBox)
|
||||
self.metaDataCheckBox = QtGui.QCheckBox()
|
||||
self.groupLayout.addWidget(self.metaDataCheckBox)
|
||||
self.groupLayout.addStretch(1)
|
||||
self.optionsGroupBox.setLayout(self.groupLayout)
|
||||
self.optionsLayout.addWidget(self.optionsGroupBox)
|
||||
|
||||
self.retranslateUi(printServiceDialog)
|
||||
QtCore.QMetaObject.connectSlotsByName(printServiceDialog)
|
||||
QtCore.QObject.connect(self.optionsButton,
|
||||
QtCore.SIGNAL(u'toggled(bool)'), self.toggleOptions)
|
||||
|
||||
def retranslateUi(self, printServiceDialog):
|
||||
printServiceDialog.setWindowTitle(UiStrings.PrintServiceOrder)
|
||||
self.slideTextCheckBox.setText(translate('OpenLP.PrintServiceForm',
|
||||
'Include slide text if available'))
|
||||
self.notesCheckBox.setText(translate('OpenLP.PrintServiceForm',
|
||||
'Include service item notes'))
|
||||
self.metaDataCheckBox.setText(translate('OpenLP.PrintServiceForm',
|
||||
'Include play length of media items'))
|
||||
self.titleLineEdit.setText(translate('OpenLP.PrintServiceForm',
|
||||
'Service Order Sheet'))
|
||||
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.Page])
|
||||
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.Width])
|
||||
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.OneHundred])
|
||||
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.SeventyFive])
|
||||
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.Fifty])
|
||||
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.TwentyFive])
|
@ -28,51 +28,65 @@ import datetime
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.lib import translate
|
||||
from openlp.core.ui.printserviceorderdialog import Ui_PrintServiceOrderDialog
|
||||
from openlp.core.lib.ui import UiStrings
|
||||
from openlp.core.ui.printservicedialog import Ui_PrintServiceDialog, ZoomSize
|
||||
|
||||
class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog):
|
||||
|
||||
class PrintServiceOrderForm(QtGui.QDialog, Ui_PrintServiceOrderDialog):
|
||||
def __init__(self, parent, serviceManager):
|
||||
"""
|
||||
Constructor
|
||||
"""
|
||||
QtGui.QDialog.__init__(self, parent)
|
||||
self.parent = parent
|
||||
self.serviceManager = serviceManager
|
||||
self.printer = QtGui.QPrinter()
|
||||
self.printDialog = QtGui.QPrintDialog(self.printer, self)
|
||||
self.document = QtGui.QTextDocument()
|
||||
self.zoom = 0
|
||||
self.setupUi(self)
|
||||
# Load the settings for the dialog.
|
||||
settings = QtCore.QSettings()
|
||||
settings.beginGroup(u'advanced')
|
||||
self.printSlideTextCheckBox.setChecked(settings.value(
|
||||
self.slideTextCheckBox.setChecked(settings.value(
|
||||
u'print slide text', QtCore.QVariant(False)).toBool())
|
||||
self.printMetaDataCheckBox.setChecked(settings.value(
|
||||
self.metaDataCheckBox.setChecked(settings.value(
|
||||
u'print file meta data', QtCore.QVariant(False)).toBool())
|
||||
self.printNotesCheckBox.setChecked(settings.value(
|
||||
self.notesCheckBox.setChecked(settings.value(
|
||||
u'print notes', QtCore.QVariant(False)).toBool())
|
||||
self.zoomComboBox.setCurrentIndex(settings.value(
|
||||
u'display size', QtCore.QVariant(0)).toInt()[0])
|
||||
settings.endGroup()
|
||||
# Signals
|
||||
QtCore.QObject.connect(self.printButton,
|
||||
QtCore.SIGNAL(u'clicked()'), self.printServiceOrder)
|
||||
QtCore.SIGNAL(u'triggered()'), self.printServiceOrder)
|
||||
QtCore.QObject.connect(self.closeButton,
|
||||
QtCore.SIGNAL(u'triggered()'), self.accept)
|
||||
QtCore.QObject.connect(self.zoomOutButton,
|
||||
QtCore.SIGNAL(u'clicked()'), self.zoomOut)
|
||||
QtCore.QObject.connect(self.zoomInButton,
|
||||
QtCore.SIGNAL(u'clicked()'), self.zoomIn)
|
||||
QtCore.QObject.connect(self.zoomOriginalButton,
|
||||
QtCore.SIGNAL(u'clicked()'), self.zoomOriginal)
|
||||
QtCore.QObject.connect(self.previewWidget,
|
||||
QtCore.SIGNAL(u'paintRequested(QPrinter *)'), self.paintRequested)
|
||||
QtCore.QObject.connect(self.serviceTitleLineEdit,
|
||||
QtCore.SIGNAL(u'textChanged(const QString)'),
|
||||
self.updatePreviewText)
|
||||
QtCore.QObject.connect(self.printSlideTextCheckBox,
|
||||
QtCore.SIGNAL(u'stateChanged(int)'), self.updatePreviewText)
|
||||
QtCore.QObject.connect(self.printNotesCheckBox,
|
||||
QtCore.SIGNAL(u'stateChanged(int)'), self.updatePreviewText)
|
||||
QtCore.QObject.connect(self.printMetaDataCheckBox,
|
||||
QtCore.SIGNAL(u'stateChanged(int)'), self.updatePreviewText)
|
||||
QtCore.QObject.connect(self.customNoteEdit,
|
||||
QtCore.SIGNAL(u'textChanged()'), self.updatePreviewText)
|
||||
QtCore.QObject.connect(self.cancelButton,
|
||||
QtCore.SIGNAL(u'clicked()'), self.reject)
|
||||
QtCore.QObject.connect(self.zoomComboBox,
|
||||
QtCore.SIGNAL(u'currentIndexChanged(int)'), self.displaySizeChanged)
|
||||
QtCore.QObject.connect(self.plainCopy,
|
||||
QtCore.SIGNAL(u'triggered()'), self.copyText)
|
||||
QtCore.QObject.connect(self.htmlCopy,
|
||||
QtCore.SIGNAL(u'triggered()'), self.copyHtmlText)
|
||||
self.updatePreviewText()
|
||||
|
||||
def toggleOptions(self, checked):
|
||||
self.optionsWidget.setVisible(checked)
|
||||
if checked:
|
||||
left = self.optionsButton.pos().x()
|
||||
top = self.toolbar.height()
|
||||
self.optionsWidget.move(left, top)
|
||||
self.titleLineEdit.setFocus()
|
||||
else:
|
||||
self.saveOptions()
|
||||
self.updatePreviewText()
|
||||
|
||||
def updatePreviewText(self):
|
||||
@ -80,19 +94,28 @@ class PrintServiceOrderForm(QtGui.QDialog, Ui_PrintServiceOrderDialog):
|
||||
Creates the html text and updates the html of *self.document*.
|
||||
"""
|
||||
text = u''
|
||||
if self.serviceTitleLineEdit.text():
|
||||
text += u'<h2>%s</h2>' % unicode(self.serviceTitleLineEdit.text())
|
||||
if self.titleLineEdit.text():
|
||||
text += u'<h2>%s</h2>' % unicode(self.titleLineEdit.text())
|
||||
for item in self.serviceManager.serviceItems:
|
||||
item = item[u'service_item']
|
||||
# Add the title of the service item.
|
||||
text += u'<h4><img src="%s" /> %s</h4>' % (item.icon,
|
||||
text += u'<h3><img src="%s" /> %s</h3>' % (item.icon,
|
||||
item.get_display_title())
|
||||
# Add slide text of the service item.
|
||||
if self.printSlideTextCheckBox.isChecked():
|
||||
if self.slideTextCheckBox.isChecked():
|
||||
if item.is_text():
|
||||
# Add the text of the service item.
|
||||
verse = None
|
||||
for slide in item.get_frames():
|
||||
text += u'<p>' + slide[u'text'] + u'</p>'
|
||||
if not verse:
|
||||
text += u'<p>' + slide[u'html']
|
||||
verse = slide[u'verseTag']
|
||||
elif verse != slide[u'verseTag']:
|
||||
text += u'<\p><p>' + slide[u'html']
|
||||
verse = slide[u'verseTag']
|
||||
else:
|
||||
text += u'<br/>' + slide[u'html']
|
||||
text += u'</p>'
|
||||
elif item.is_image():
|
||||
# Add the image names of the service item.
|
||||
text += u'<ol>'
|
||||
@ -104,19 +127,19 @@ class PrintServiceOrderForm(QtGui.QDialog, Ui_PrintServiceOrderDialog):
|
||||
# add footer
|
||||
text += u'<p>%s</p>' % item.foot_text
|
||||
# Add service items' notes.
|
||||
if self.printNotesCheckBox.isChecked():
|
||||
if self.notesCheckBox.isChecked():
|
||||
if item.notes:
|
||||
text += u'<p><b>%s</b></p>%s' % (translate(
|
||||
text += u'<p><strong>%s</strong></p>%s' % (translate(
|
||||
'OpenLP.ServiceManager', 'Notes:'),
|
||||
item.notes.replace(u'\n', u'<br />'))
|
||||
# Add play length of media files.
|
||||
if item.is_media() and self.printMetaDataCheckBox.isChecked():
|
||||
text += u'<p><b>%s</b> %s</p>' % (translate(
|
||||
if item.is_media() and self.metaDataCheckBox.isChecked():
|
||||
text += u'<p><strong>%s</strong> %s</p>' % (translate(
|
||||
'OpenLP.ServiceManager', u'Playing time:'),
|
||||
unicode(datetime.timedelta(seconds=item.media_length)))
|
||||
if self.customNoteEdit.toPlainText():
|
||||
if self.footerTextEdit.toPlainText():
|
||||
text += u'<h4>%s</h4>%s' % (translate('OpenLP.ServiceManager',
|
||||
u'Custom Service Notes:'), self.customNoteEdit.toPlainText())
|
||||
u'Custom Service Notes:'), self.footerTextEdit.toPlainText())
|
||||
self.document.setHtml(text)
|
||||
self.previewWidget.updatePreview()
|
||||
|
||||
@ -129,6 +152,43 @@ class PrintServiceOrderForm(QtGui.QDialog, Ui_PrintServiceOrderDialog):
|
||||
"""
|
||||
self.document.print_(printer)
|
||||
|
||||
def displaySizeChanged(self, display):
|
||||
"""
|
||||
The Zoom Combo box has changed so set up the size.
|
||||
"""
|
||||
if display == ZoomSize.Page:
|
||||
self.previewWidget.fitInView()
|
||||
elif display == ZoomSize.Width:
|
||||
self.previewWidget.fitToWidth()
|
||||
elif display == ZoomSize.OneHundred:
|
||||
self.previewWidget.fitToWidth()
|
||||
self.previewWidget.zoomIn(1)
|
||||
elif display == ZoomSize.SeventyFive:
|
||||
self.previewWidget.fitToWidth()
|
||||
self.previewWidget.zoomIn(0.75)
|
||||
elif display == ZoomSize.Fifty:
|
||||
self.previewWidget.fitToWidth()
|
||||
self.previewWidget.zoomIn(0.5)
|
||||
elif display == ZoomSize.TwentyFive:
|
||||
self.previewWidget.fitToWidth()
|
||||
self.previewWidget.zoomIn(0.25)
|
||||
settings = QtCore.QSettings()
|
||||
settings.beginGroup(u'advanced')
|
||||
settings.setValue(u'display size',QtCore.QVariant(display))
|
||||
settings.endGroup()
|
||||
|
||||
def copyText(self):
|
||||
"""
|
||||
Copies the display text to the clipboard as plain text
|
||||
"""
|
||||
self.parent.clipboard.setText(self.document.toPlainText())
|
||||
|
||||
def copyHtmlText(self):
|
||||
"""
|
||||
Copies the display text to the clipboard as Html
|
||||
"""
|
||||
self.parent.clipboard.setText(self.document.toHtml())
|
||||
|
||||
def printServiceOrder(self):
|
||||
"""
|
||||
Called, when the *printButton* is clicked. Opens the *printDialog*.
|
||||
@ -137,21 +197,38 @@ class PrintServiceOrderForm(QtGui.QDialog, Ui_PrintServiceOrderDialog):
|
||||
return
|
||||
# Print the document.
|
||||
self.document.print_(self.printer)
|
||||
self.accept()
|
||||
|
||||
def zoomIn(self):
|
||||
"""
|
||||
Called when *zoomInButton* is clicked.
|
||||
"""
|
||||
self.previewWidget.zoomIn()
|
||||
self.zoom -= 0.1
|
||||
|
||||
def zoomOut(self):
|
||||
"""
|
||||
Called when *zoomOutButton* is clicked.
|
||||
"""
|
||||
self.previewWidget.zoomOut()
|
||||
self.zoom += 0.1
|
||||
|
||||
def accept(self):
|
||||
def zoomOriginal(self):
|
||||
"""
|
||||
Called when *zoomOutButton* is clicked.
|
||||
"""
|
||||
self.previewWidget.zoomIn(1 + self.zoom)
|
||||
self.zoom = 0
|
||||
|
||||
def updateTextFormat(self, value):
|
||||
"""
|
||||
Called when html copy check box is selected.
|
||||
"""
|
||||
if value == QtCore.Qt.Checked:
|
||||
self.copyTextButton.setText(UiStrings.CopyToHtml)
|
||||
else:
|
||||
self.copyTextButton.setText(UiStrings.CopyToText)
|
||||
|
||||
def saveOptions(self):
|
||||
"""
|
||||
Save the settings and close the dialog.
|
||||
"""
|
||||
@ -159,17 +236,9 @@ class PrintServiceOrderForm(QtGui.QDialog, Ui_PrintServiceOrderDialog):
|
||||
settings = QtCore.QSettings()
|
||||
settings.beginGroup(u'advanced')
|
||||
settings.setValue(u'print slide text',
|
||||
QtCore.QVariant(self.printSlideTextCheckBox.isChecked()))
|
||||
QtCore.QVariant(self.slideTextCheckBox.isChecked()))
|
||||
settings.setValue(u'print file meta data',
|
||||
QtCore.QVariant(self.printMetaDataCheckBox.isChecked()))
|
||||
QtCore.QVariant(self.metaDataCheckBox.isChecked()))
|
||||
settings.setValue(u'print notes',
|
||||
QtCore.QVariant(self.printNotesCheckBox.isChecked()))
|
||||
QtCore.QVariant(self.notesCheckBox.isChecked()))
|
||||
settings.endGroup()
|
||||
# Close the dialog.
|
||||
return QtGui.QDialog.accept(self)
|
||||
|
||||
def reject(self):
|
||||
"""
|
||||
Close the dialog, do not print the service and do not save the settings.
|
||||
"""
|
||||
return QtGui.QDialog.reject(self)
|
@ -1,137 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
||||
|
||||
###############################################################################
|
||||
# OpenLP - Open Source Lyrics Projection #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Copyright (c) 2008-2011 Raoul Snyman #
|
||||
# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael #
|
||||
# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian #
|
||||
# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
|
||||
# Carsten Tinggaard, Frode Woldsund #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# This program is free software; you can redistribute it and/or modify it #
|
||||
# under the terms of the GNU General Public License as published by the Free #
|
||||
# Software Foundation; version 2 of the License. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
||||
# more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU General Public License along #
|
||||
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.lib import build_icon, translate, SpellTextEdit
|
||||
from openlp.core.lib.ui import UiStrings
|
||||
|
||||
class Ui_PrintServiceOrderDialog(object):
|
||||
def setupUi(self, printServiceOrderDialog):
|
||||
printServiceOrderDialog.setObjectName(u'printServiceOrderDialog')
|
||||
self.dialogLayout = QtGui.QGridLayout(printServiceOrderDialog)
|
||||
self.dialogLayout.setObjectName(u'dialogLayout')
|
||||
self.perviewLayout = QtGui.QVBoxLayout()
|
||||
self.perviewLayout.setObjectName(u'perviewLayout')
|
||||
self.previewLabel = QtGui.QLabel(printServiceOrderDialog)
|
||||
self.previewLabel.setSizePolicy(
|
||||
QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
|
||||
self.previewLabel.setObjectName(u'previewLabel')
|
||||
self.perviewLayout.addWidget(self.previewLabel)
|
||||
self.previewWidget = QtGui.QPrintPreviewWidget(
|
||||
self.printer, self, QtCore.Qt.Widget)
|
||||
self.previewWidget.setEnabled(True)
|
||||
self.previewWidget.setSizePolicy(
|
||||
QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Expanding)
|
||||
self.previewWidget.setObjectName(u'previewWidget')
|
||||
# Give the previewWidget a fixed size, to prevent resizing when clicking
|
||||
# the zoom buttons.
|
||||
self.previewWidget.setFixedWidth(350)
|
||||
self.perviewLayout.addWidget(self.previewWidget)
|
||||
self.dialogLayout.addLayout(self.perviewLayout, 0, 0, 1, 1)
|
||||
self.settingsLayout = QtGui.QVBoxLayout()
|
||||
self.settingsLayout.setObjectName(u'settingsLayout')
|
||||
self.serviceTitleLayout = QtGui.QGridLayout()
|
||||
self.serviceTitleLayout.setObjectName(u'serviceTitleLayout')
|
||||
self.serviceTitleLineEdit = QtGui.QLineEdit(printServiceOrderDialog)
|
||||
self.serviceTitleLineEdit.setSizePolicy(
|
||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
|
||||
self.serviceTitleLineEdit.setObjectName(u'serviceTitleLineEdit')
|
||||
self.serviceTitleLayout.addWidget(self.serviceTitleLineEdit, 1, 1, 1, 1)
|
||||
self.serviceTitleLabel = QtGui.QLabel(printServiceOrderDialog)
|
||||
self.serviceTitleLabel.setSizePolicy(
|
||||
QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
|
||||
self.serviceTitleLabel.setObjectName(u'serviceTitleLabel')
|
||||
self.serviceTitleLayout.addWidget(self.serviceTitleLabel, 1, 0, 1, 1)
|
||||
self.settingsLayout.addLayout(self.serviceTitleLayout)
|
||||
self.printSlideTextCheckBox = QtGui.QCheckBox(printServiceOrderDialog)
|
||||
self.printSlideTextCheckBox.setObjectName(u'printSlideTextCheckBox')
|
||||
self.settingsLayout.addWidget(self.printSlideTextCheckBox)
|
||||
self.printNotesCheckBox = QtGui.QCheckBox(printServiceOrderDialog)
|
||||
self.printNotesCheckBox.setObjectName(u'printNotesCheckBox')
|
||||
self.settingsLayout.addWidget(self.printNotesCheckBox)
|
||||
self.printMetaDataCheckBox = QtGui.QCheckBox(printServiceOrderDialog)
|
||||
self.printMetaDataCheckBox.setObjectName(u'printMetaDataCheckBox')
|
||||
self.settingsLayout.addWidget(self.printMetaDataCheckBox)
|
||||
spacerItem = QtGui.QSpacerItem(20, 40,
|
||||
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
||||
self.settingsLayout.addItem(spacerItem)
|
||||
self.customNotesLabel = QtGui.QLabel(self)
|
||||
self.customNotesLabel.setObjectName(u'customNotesLabel')
|
||||
self.settingsLayout.addWidget(self.customNotesLabel)
|
||||
self.customNoteEdit = SpellTextEdit(self)
|
||||
self.customNoteEdit.setObjectName(u'customNoteEdit')
|
||||
self.settingsLayout.addWidget(self.customNoteEdit)
|
||||
self.dialogLayout.addLayout(self.settingsLayout, 0, 3, 1, 1)
|
||||
self.buttonLayout = QtGui.QHBoxLayout()
|
||||
self.buttonLayout.setObjectName(u'buttonLayout')
|
||||
spacerItem = QtGui.QSpacerItem(40, 20,
|
||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.buttonLayout.addItem(spacerItem)
|
||||
self.cancelButton = QtGui.QPushButton(printServiceOrderDialog)
|
||||
self.cancelButton.setObjectName(u'cancelButton')
|
||||
self.buttonLayout.addWidget(self.cancelButton)
|
||||
self.printButton = QtGui.QPushButton(printServiceOrderDialog)
|
||||
self.printButton.setObjectName(u'printButton')
|
||||
self.buttonLayout.addWidget(self.printButton)
|
||||
self.dialogLayout.addLayout(self.buttonLayout, 1, 3, 1, 1)
|
||||
self.zoomButtonLayout = QtGui.QHBoxLayout()
|
||||
self.zoomButtonLayout.setObjectName(u'zoomButtonLayout')
|
||||
spacerItem = QtGui.QSpacerItem(40, 20,
|
||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.zoomButtonLayout.addItem(spacerItem)
|
||||
self.zoomOutButton = QtGui.QToolButton(printServiceOrderDialog)
|
||||
self.zoomOutButton.setIcon(
|
||||
build_icon(u':/general/general_zoom_out.png'))
|
||||
self.zoomOutButton.setObjectName(u'zoomOutButton')
|
||||
self.zoomButtonLayout.addWidget(self.zoomOutButton)
|
||||
self.zoomInButton = QtGui.QToolButton(printServiceOrderDialog)
|
||||
self.zoomInButton.setIcon(build_icon(u':/general/general_zoom_in.png'))
|
||||
self.zoomInButton.setObjectName(u'zoomInButton')
|
||||
self.zoomButtonLayout.addWidget(self.zoomInButton)
|
||||
self.dialogLayout.addLayout(self.zoomButtonLayout, 1, 0, 1, 1)
|
||||
self.retranslateUi(printServiceOrderDialog)
|
||||
QtCore.QMetaObject.connectSlotsByName(printServiceOrderDialog)
|
||||
|
||||
def retranslateUi(self, printServiceOrderDialog):
|
||||
printServiceOrderDialog.setWindowTitle(UiStrings.PrintServiceOrder)
|
||||
self.previewLabel.setText(
|
||||
translate('OpenLP.ServiceManager', '<b>Preview:</b>'))
|
||||
self.printSlideTextCheckBox.setText(translate(
|
||||
'OpenLP.PrintServiceOrderForm', 'Include slide text if available'))
|
||||
self.printNotesCheckBox.setText(translate(
|
||||
'OpenLP.PrintServiceOrderForm', 'Include service item notes'))
|
||||
self.printMetaDataCheckBox.setText(
|
||||
translate('OpenLP.PrintServiceOrderForm',
|
||||
'Include play length of media items'))
|
||||
self.serviceTitleLabel.setText(translate(
|
||||
'OpenLP.PrintServiceOrderForm', 'Title:'))
|
||||
self.serviceTitleLineEdit.setText(translate('OpenLP.ServiceManager',
|
||||
'Service Order Sheet'))
|
||||
self.printButton.setText(translate('OpenLP.ServiceManager', 'Print'))
|
||||
self.cancelButton.setText(UiStrings.Cancel)
|
||||
self.customNotesLabel.setText(
|
||||
translate('OpenLP.ServiceManager', '<b>Custom Service Notes:</b>'))
|
@ -37,7 +37,7 @@ from openlp.core.lib import OpenLPToolbar, ServiceItem, context_menu_action, \
|
||||
from openlp.core.lib.theme import ThemeLevel
|
||||
from openlp.core.lib.ui import UiStrings, critical_error_message_box
|
||||
from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm, StartTimeForm
|
||||
from openlp.core.ui.printserviceorderform import PrintServiceOrderForm
|
||||
from openlp.core.ui.printserviceform import PrintServiceForm
|
||||
from openlp.core.utils import AppLocation, delete_file, file_is_unicode, \
|
||||
split_filename
|
||||
|
||||
@ -1207,5 +1207,5 @@ class ServiceManager(QtGui.QWidget):
|
||||
"""
|
||||
Print a Service Order Sheet.
|
||||
"""
|
||||
settingDialog = PrintServiceOrderForm(self.mainwindow, self)
|
||||
settingDialog = PrintServiceForm(self.mainwindow, self)
|
||||
settingDialog.exec_()
|
||||
|
@ -31,7 +31,7 @@ import logging
|
||||
from PyQt4 import QtGui
|
||||
|
||||
from openlp.core.lib import Receiver
|
||||
from openlp.core.ui import AdvancedTab, GeneralTab, ThemesTab, DisplayTagTab
|
||||
from openlp.core.ui import AdvancedTab, GeneralTab, ThemesTab
|
||||
from settingsdialog import Ui_SettingsDialog
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
@ -47,17 +47,14 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog):
|
||||
QtGui.QDialog.__init__(self, parent)
|
||||
self.setupUi(self)
|
||||
# General tab
|
||||
self.generalTab = GeneralTab(screens)
|
||||
self.addTab(u'General', self.generalTab)
|
||||
generalTab = GeneralTab(screens)
|
||||
self.addTab(u'General', generalTab)
|
||||
# Themes tab
|
||||
self.themesTab = ThemesTab(mainWindow)
|
||||
self.addTab(u'Themes', self.themesTab)
|
||||
themesTab = ThemesTab(mainWindow)
|
||||
self.addTab(u'Themes', themesTab)
|
||||
# Advanced tab
|
||||
self.advancedTab = AdvancedTab()
|
||||
self.addTab(u'Advanced', self.advancedTab)
|
||||
# Edit Display Tags tab
|
||||
self.displayTagTab = DisplayTagTab()
|
||||
self.addTab(u'Display Tags', self.displayTagTab)
|
||||
advancedTab = AdvancedTab()
|
||||
self.addTab(u'Advanced', advancedTab)
|
||||
|
||||
def addTab(self, name, tab):
|
||||
"""
|
||||
@ -71,9 +68,9 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog):
|
||||
Add a tab to the form at a specific location
|
||||
"""
|
||||
log.debug(u'Inserting %s tab' % tab.tabTitle)
|
||||
# 15 : There are 4 tables currently and locations starts at -10
|
||||
# 14 : There are 3 tables currently and locations starts at -10
|
||||
self.settingsTabWidget.insertTab(
|
||||
location + 15, tab, tab.tabTitleVisible)
|
||||
location + 14, tab, tab.tabTitleVisible)
|
||||
|
||||
def removeTab(self, tab):
|
||||
"""
|
||||
|
@ -126,7 +126,7 @@ class OSISBible(BibleDB):
|
||||
verse_text = match.group(4)
|
||||
if not db_book or db_book.name != self.books[book][0]:
|
||||
log.debug(u'New book: "%s"', self.books[book][0])
|
||||
if book == u'Matt':
|
||||
if book == u'Matt' or book == u'Jdt':
|
||||
testament += 1
|
||||
db_book = self.create_book(
|
||||
unicode(self.books[book][0]),
|
||||
|
@ -64,3 +64,13 @@ Jas,James,Jas
|
||||
3John,3 John,3John
|
||||
Jude,Jude,Jude
|
||||
Rev,Revelation,Rev
|
||||
Jdt,Judith,Jdt
|
||||
Wis,Wisdom,Wis
|
||||
Tob,Tobit,Tob
|
||||
Sir,Sirach,Sir
|
||||
Bar,Baruch,Bar
|
||||
1Macc,1 Maccabees,1Macc
|
||||
2Macc,2 Maccabees,2Macc
|
||||
AddDan,Rest of Daniel,AddDan
|
||||
AddEsth,Rest of Esther,AddEsth
|
||||
PrMan,Prayer of Manasses,PrMan
|
||||
|
|
@ -60,8 +60,9 @@ class MediaMediaItem(MediaManagerItem):
|
||||
def retranslateUi(self):
|
||||
self.onNewPrompt = translate('MediaPlugin.MediaItem', 'Select Media')
|
||||
self.onNewFileMasks = unicode(translate('MediaPlugin.MediaItem',
|
||||
'Videos (%s);;Audio (%s);;%s (*)')) % (self.parent.video_list,
|
||||
self.parent.audio_list, UiStrings.AllFiles)
|
||||
'Videos (%s);;Audio (%s);;%s (*)')) % (
|
||||
u' '.join(self.parent.video_list),
|
||||
u' '.join(self.parent.audio_list), UiStrings.AllFiles)
|
||||
self.replaceAction.setText(UiStrings.ReplaceBG)
|
||||
self.replaceAction.setToolTip(UiStrings.ReplaceLiveBG)
|
||||
self.resetAction.setText(UiStrings.ResetBG)
|
||||
|
@ -45,36 +45,28 @@ class MediaPlugin(Plugin):
|
||||
self.icon = build_icon(self.icon_path)
|
||||
# passed with drag and drop messages
|
||||
self.dnd_id = u'Media'
|
||||
self.audio_list = u''
|
||||
self.video_list = u''
|
||||
self.audio_list = []
|
||||
self.video_list = []
|
||||
mimetypes.init()
|
||||
for mimetype in Phonon.BackendCapabilities.availableMimeTypes():
|
||||
mimetype = unicode(mimetype)
|
||||
type = mimetype.split(u'audio/x-')
|
||||
self.audio_list, mimetype = self._addToList(self.audio_list,
|
||||
type, mimetype)
|
||||
type = mimetype.split(u'audio/')
|
||||
self.audio_list, mimetype = self._addToList(self.audio_list,
|
||||
type, mimetype)
|
||||
type = mimetype.split(u'video/x-')
|
||||
self.video_list, mimetype = self._addToList(self.video_list,
|
||||
type, mimetype)
|
||||
type = mimetype.split(u'video/')
|
||||
self.video_list, mimetype = self._addToList(self.video_list,
|
||||
type, mimetype)
|
||||
if mimetype.startswith(u'audio/'):
|
||||
self._addToList(self.audio_list, mimetype)
|
||||
elif mimetype.startswith(u'video/'):
|
||||
self._addToList(self.video_list, mimetype)
|
||||
log.info(u'MediaPlugin handles audio extensions: %s',
|
||||
u' '.join(self.audio_list))
|
||||
log.info(u'MediaPlugin handles video extensions: %s',
|
||||
u' '.join(self.video_list))
|
||||
|
||||
def _addToList(self, list, value, mimetype):
|
||||
def _addToList(self, list, mimetype):
|
||||
# Is it a media type
|
||||
if len(value) == 2:
|
||||
extensions = mimetypes.guess_all_extensions(unicode(mimetype))
|
||||
# we have an extension
|
||||
if extensions:
|
||||
for extension in extensions:
|
||||
if list.find(extension) == -1:
|
||||
list += u'*%s ' % extension
|
||||
self.serviceManager.supportedSuffixes(extension[1:])
|
||||
mimetype = u''
|
||||
return list, mimetype
|
||||
extensions = mimetypes.guess_all_extensions(unicode(mimetype))
|
||||
for extension in extensions:
|
||||
ext = u'*%s' % extension
|
||||
if ext not in list:
|
||||
list.append(ext)
|
||||
self.serviceManager.supportedSuffixes(extension[1:])
|
||||
|
||||
def about(self):
|
||||
about_text = translate('MediaPlugin', '<strong>Media Plugin</strong>'
|
||||
|
@ -68,11 +68,13 @@ class HttpServer(object):
|
||||
"""
|
||||
log.debug(u'Start TCP server')
|
||||
port = QtCore.QSettings().value(
|
||||
self.parent.settingsSection + u'/remote port',
|
||||
self.parent.settingsSection + u'/port',
|
||||
QtCore.QVariant(4316)).toInt()[0]
|
||||
address = QtCore.QSettings().value(
|
||||
self.parent.settingsSection + u'/ip address',
|
||||
QtCore.QVariant(u'0.0.0.0')).toString()
|
||||
self.server = QtNetwork.QTcpServer()
|
||||
self.server.listen(QtNetwork.QHostAddress(QtNetwork.QHostAddress.Any),
|
||||
port)
|
||||
self.server.listen(QtNetwork.QHostAddress(address), port)
|
||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||
QtCore.SIGNAL(u'slidecontroller_live_changed'),
|
||||
self.slide_change)
|
||||
|
@ -677,8 +677,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||
A button (QPushButton).
|
||||
"""
|
||||
log.debug(u'onPreview')
|
||||
if unicode(button.objectName()) == u'previewButton' and \
|
||||
self.saveSong(True):
|
||||
if unicode(button.objectName()) == u'previewButton':
|
||||
self.saveSong(True)
|
||||
Receiver.send_message(u'songs_preview')
|
||||
|
||||
def clearCaches(self):
|
||||
|
@ -199,8 +199,11 @@ class CCLIFileImport(SongImport):
|
||||
if len(author_list) < 2:
|
||||
author_list = song_author.split(u'|')
|
||||
for author in author_list:
|
||||
seperated = author.split(u',')
|
||||
self.add_author(seperated[1].strip() + u' ' + seperated[0].strip())
|
||||
separated = author.split(u',')
|
||||
if len(separated) > 1:
|
||||
self.add_author(u' '.join(reversed(separated)))
|
||||
else:
|
||||
self.add_author(author)
|
||||
self.title = song_name
|
||||
self.copyright = song_copyright
|
||||
self.ccli_number = song_ccli
|
||||
|
@ -254,9 +254,9 @@ class SongMediaItem(MediaManagerItem):
|
||||
"""
|
||||
if self.searchAsYouType:
|
||||
search_length = 1
|
||||
if self.searchTextEdit.currentSearchType() == 1:
|
||||
if self.searchTextEdit.currentSearchType() == SongSearch.Entire:
|
||||
search_length = 3
|
||||
elif self.searchTextEdit.currentSearchType() == 3:
|
||||
elif self.searchTextEdit.currentSearchType() == SongSearch.Lyrics:
|
||||
search_length = 7
|
||||
if len(text) > search_length:
|
||||
self.onSearchTextButtonClick()
|
||||
|
@ -245,6 +245,8 @@ class SongBeamerImport(SongImport):
|
||||
self.song_number = u''
|
||||
elif tag_val[0] == u'#Speed':
|
||||
pass
|
||||
elif tag_val[0] == u'Tempo':
|
||||
pass
|
||||
elif tag_val[0] == u'#TextAlign':
|
||||
pass
|
||||
elif tag_val[0] == u'#Title':
|
||||
|
@ -54,6 +54,7 @@ class SongImport(QtCore.QObject):
|
||||
|
||||
"""
|
||||
self.manager = manager
|
||||
QtCore.QObject.__init__(self)
|
||||
if kwargs.has_key(u'filename'):
|
||||
self.import_source = kwargs[u'filename']
|
||||
elif kwargs.has_key(u'filenames'):
|
||||
|
@ -299,9 +299,9 @@ class OpenLyrics(object):
|
||||
# Remove chords from xml.
|
||||
xml = re.compile(u'<chord name=".*?"/>').sub(u'', xml)
|
||||
song_xml = objectify.fromstring(xml)
|
||||
try:
|
||||
if hasattr(song_xml, u'properties'):
|
||||
properties = song_xml.properties
|
||||
except AttributeError:
|
||||
else:
|
||||
return None
|
||||
song = Song()
|
||||
self._process_copyright(properties, song)
|
||||
@ -369,13 +369,11 @@ class OpenLyrics(object):
|
||||
The song object.
|
||||
"""
|
||||
authors = []
|
||||
try:
|
||||
if hasattr(properties, u'authors'):
|
||||
for author in properties.authors.author:
|
||||
display_name = self._text(author)
|
||||
if display_name:
|
||||
authors.append(display_name)
|
||||
except AttributeError:
|
||||
pass
|
||||
if not authors:
|
||||
authors.append(SongStrings.AuthorUnknownUnT)
|
||||
for display_name in authors:
|
||||
@ -399,10 +397,8 @@ class OpenLyrics(object):
|
||||
``song``
|
||||
The song object.
|
||||
"""
|
||||
try:
|
||||
if hasattr(properties, u'ccliNo'):
|
||||
song.ccli_number = self._text(properties.ccliNo)
|
||||
except AttributeError:
|
||||
song.ccli_number = u''
|
||||
|
||||
def _process_comments(self, properties, song):
|
||||
"""
|
||||
@ -414,15 +410,13 @@ class OpenLyrics(object):
|
||||
``song``
|
||||
The song object.
|
||||
"""
|
||||
try:
|
||||
if hasattr(properties, u'comments'):
|
||||
comments_list = []
|
||||
for comment in properties.comments.comment:
|
||||
commenttext = self._text(comment)
|
||||
if commenttext:
|
||||
comments_list.append(commenttext)
|
||||
song.comments = u'\n'.join(comments_list)
|
||||
except AttributeError:
|
||||
song.comments = u''
|
||||
|
||||
def _process_copyright(self, properties, song):
|
||||
"""
|
||||
@ -434,10 +428,8 @@ class OpenLyrics(object):
|
||||
``song``
|
||||
The song object.
|
||||
"""
|
||||
try:
|
||||
if hasattr(properties, u'copyright'):
|
||||
song.copyright = self._text(properties.copyright)
|
||||
except AttributeError:
|
||||
song.copyright = u''
|
||||
|
||||
def _process_lyrics(self, properties, lyrics, song):
|
||||
"""
|
||||
@ -478,9 +470,9 @@ class OpenLyrics(object):
|
||||
song.search_lyrics = search_text.lower()
|
||||
song.lyrics = unicode(sxml.extract_xml(), u'utf-8')
|
||||
# Process verse order
|
||||
try:
|
||||
if hasattr(properties, u'verseOrder'):
|
||||
song.verse_order = self._text(properties.verseOrder)
|
||||
except AttributeError:
|
||||
else:
|
||||
# We have to process the temp_verse_order, as the verseOrder
|
||||
# property is not present.
|
||||
previous_type = u''
|
||||
@ -511,7 +503,7 @@ class OpenLyrics(object):
|
||||
"""
|
||||
song.song_book_id = 0
|
||||
song.song_number = u''
|
||||
try:
|
||||
if hasattr(properties, u'songbooks'):
|
||||
for songbook in properties.songbooks.songbook:
|
||||
bookname = self._get(songbook, u'name')
|
||||
if bookname:
|
||||
@ -522,15 +514,10 @@ class OpenLyrics(object):
|
||||
book = Book.populate(name=bookname, publisher=u'')
|
||||
self.manager.save_object(book)
|
||||
song.song_book_id = book.id
|
||||
try:
|
||||
if self._get(songbook, u'entry'):
|
||||
song.song_number = self._get(songbook, u'entry')
|
||||
except AttributeError:
|
||||
pass
|
||||
if hasattr(songbook, u'entry'):
|
||||
song.song_number = self._get(songbook, u'entry')
|
||||
# We only support one song book, so take the first one.
|
||||
break
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def _process_titles(self, properties, song):
|
||||
"""
|
||||
@ -563,7 +550,7 @@ class OpenLyrics(object):
|
||||
``song``
|
||||
The song object.
|
||||
"""
|
||||
try:
|
||||
if hasattr(properties, u'themes'):
|
||||
for topictext in properties.themes.theme:
|
||||
topictext = self._text(topictext)
|
||||
if topictext:
|
||||
@ -574,8 +561,6 @@ class OpenLyrics(object):
|
||||
topic = Topic.populate(name=topictext)
|
||||
self.manager.save_object(topic)
|
||||
song.topics.append(topic)
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def _dump_xml(self, xml):
|
||||
"""
|
||||
|
206
resources/forms/displaytabdialog.ui
Normal file
@ -0,0 +1,206 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>displayTagEdit</class>
|
||||
<widget class="QWidget" name="displayTagEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>725</width>
|
||||
<height>548</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<width>701</width>
|
||||
<height>521</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QTableWidget" name="tagTableWidget">
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="cornerButtonEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Description</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Key</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Start Tag</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>End Tag</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="defaultPushButton">
|
||||
<property name="text">
|
||||
<string>Default</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="deletePushButton">
|
||||
<property name="text">
|
||||
<string>Delete</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="editGroupBox">
|
||||
<property name="title">
|
||||
<string>Edit Selection</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="descriptionLabel">
|
||||
<property name="text">
|
||||
<string>Description</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" rowspan="2">
|
||||
<widget class="QLineEdit" name="descriptionLineEdit"/>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="addPushButton">
|
||||
<property name="text">
|
||||
<string>Add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2" rowspan="2">
|
||||
<widget class="QPushButton" name="newPushButton">
|
||||
<property name="text">
|
||||
<string>New</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="tagLabel">
|
||||
<property name="text">
|
||||
<string>Tag</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="tagLineEdit">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>50</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="startTagLabel">
|
||||
<property name="text">
|
||||
<string>Start tag</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="startTagLineEdit"/>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="endTagLabel">
|
||||
<property name="text">
|
||||
<string>End tag</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="endTagLineEdit"/>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QPushButton" name="updatePushButton">
|
||||
<property name="text">
|
||||
<string>Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -1,209 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>displayTagEdit</class>
|
||||
<widget class="QWidget" name="displayTagEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>717</width>
|
||||
<height>554</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="editGroupBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>320</y>
|
||||
<width>691</width>
|
||||
<height>181</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Edit Selection</string>
|
||||
</property>
|
||||
<widget class="QPushButton" name="updatePushButton">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>600</x>
|
||||
<y>140</y>
|
||||
<width>73</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>50</y>
|
||||
<width>571</width>
|
||||
<height>114</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="descriptionLabel">
|
||||
<property name="text">
|
||||
<string>Description</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="descriptionLineEdit"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="tagLabel">
|
||||
<property name="text">
|
||||
<string>Tag</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="tagLineEdit">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>50</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="startTagLabel">
|
||||
<property name="text">
|
||||
<string>Start tag</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="startTagLineEdit"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="endTagLabel">
|
||||
<property name="text">
|
||||
<string>End tag</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="endTagLineEdit"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>540</x>
|
||||
<y>510</y>
|
||||
<width>162</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="deletePushButton">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>530</x>
|
||||
<y>280</y>
|
||||
<width>71</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Delete</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="addPushButton">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>610</x>
|
||||
<y>280</y>
|
||||
<width>71</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Add</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTableWidget" name="tagTableWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<width>691</width>
|
||||
<height>271</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="cornerButtonEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Description</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Key</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Start Tag</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>End Tag</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -7,197 +7,221 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>494</width>
|
||||
<height>426</height>
|
||||
<height>434</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="dialogLayout">
|
||||
<item row="0" column="3">
|
||||
<layout class="QVBoxLayout" name="settingsLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="serviceTitleLayout">
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="serviceTitleLineEdit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="serviceTitleLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Service Title:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="printSlideTextCheckBox">
|
||||
<property name="text">
|
||||
<string>Include slide text if avaialbe</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="printNotesCheckBox">
|
||||
<property name="text">
|
||||
<string>Include service item notes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="printMetaDataCheckBox">
|
||||
<property name="text">
|
||||
<string>Include play lenght of media items</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="spacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="customNotesLabel">
|
||||
<property name="text">
|
||||
<string><b>Custom Notes:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextEdit" name="customNoteEdit"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<layout class="QHBoxLayout" name="buttonLayout">
|
||||
<item>
|
||||
<spacer name="spacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelButton">
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="printButton">
|
||||
<property name="text">
|
||||
<string>Print</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="zoomButtonLayout">
|
||||
<item>
|
||||
<spacer name="spacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="zoomOutButton">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../images/openlp-2.qrc">
|
||||
<normaloff>:/general/general_zoom_out.png</normaloff>:/general/general_zoom_out.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="zoomInButton">
|
||||
<property name="icon">
|
||||
<iconset resource="../images/openlp-2.qrc">
|
||||
<normaloff>:/general/general_zoom_in.png</normaloff>:/general/general_zoom_in.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="perviewLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="previewLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Preview:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="previewWidget" native="true">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
<zorder></zorder>
|
||||
<widget class="QWidget" name="">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>4</x>
|
||||
<y>4</y>
|
||||
<width>491</width>
|
||||
<height>432</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="dialogLayout">
|
||||
<item row="0" column="3">
|
||||
<layout class="QVBoxLayout" name="settingsLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="serviceTitleLayout">
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="serviceTitleLineEdit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="serviceTitleLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Service Title:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="printSlideTextCheckBox">
|
||||
<property name="text">
|
||||
<string>Include slide text if avaialbe</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="printNotesCheckBox">
|
||||
<property name="text">
|
||||
<string>Include service item notes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="printMetaDataCheckBox">
|
||||
<property name="text">
|
||||
<string>Include play lenght of media items</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="spacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="customNotesLabel">
|
||||
<property name="text">
|
||||
<string><b>Custom Notes:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextEdit" name="customNoteEdit"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="zoomButtonLayout">
|
||||
<item>
|
||||
<spacer name="spacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="zoomOutButton">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../images/openlp-2.qrc">
|
||||
<normaloff>:/general/general_zoom_out.png</normaloff>:/general/general_zoom_out.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="zoomInButton">
|
||||
<property name="icon">
|
||||
<iconset resource="../images/openlp-2.qrc">
|
||||
<normaloff>:/general/general_zoom_in.png</normaloff>:/general/general_zoom_in.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="perviewLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="previewLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Preview:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="previewWidget" native="true">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<zorder>spacer_3</zorder>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="buttonLayout">
|
||||
<item>
|
||||
<spacer name="spacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelButton_3">
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelButton_2">
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelButton">
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="printButton">
|
||||
<property name="text">
|
||||
<string>Print</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="../images/openlp-2.qrc"/>
|
||||
|
BIN
resources/images/general_print.png
Normal file
After Width: | Height: | Size: 880 B |
Before Width: | Height: | Size: 716 B After Width: | Height: | Size: 1.2 KiB |
BIN
resources/images/general_zoom_original.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 662 B After Width: | Height: | Size: 1.1 KiB |
@ -47,6 +47,8 @@
|
||||
<file>general_new.png</file>
|
||||
<file>general_zoom_out.png</file>
|
||||
<file>general_zoom_in.png</file>
|
||||
<file>general_zoom_original.png</file>
|
||||
<file>general_print.png</file>
|
||||
<file>general_open.png</file>
|
||||
<file>general_save.png</file>
|
||||
<file>general_email.png</file>
|
||||
@ -114,6 +116,9 @@
|
||||
<file>system_exit.png</file>
|
||||
<file>settings_plugin_list.png</file>
|
||||
<file>system_settings.png</file>
|
||||
<file>tag_editor.png</file>
|
||||
<file>system_configure.png</file>
|
||||
<file>system_edit_copy.png</file>
|
||||
<file>system_configure_shortcuts.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="media">
|
||||
|
BIN
resources/images/system_configure.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
resources/images/system_edit_copy.png
Normal file
After Width: | Height: | Size: 515 B |
BIN
resources/images/tag_editor.png
Normal file
After Width: | Height: | Size: 1.1 KiB |