diff --git a/openlp/plugins/custom/forms/__init__.py b/openlp/plugins/custom/forms/__init__.py
index 008caff8d..f31745e14 100644
--- a/openlp/plugins/custom/forms/__init__.py
+++ b/openlp/plugins/custom/forms/__init__.py
@@ -25,3 +25,4 @@
###############################################################################
from editcustomform import EditCustomForm
+from editcustomslideform import EditCustomSlideForm
diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py
index 84a310cb9..fd5e244f2 100644
--- a/openlp/plugins/custom/forms/editcustomdialog.py
+++ b/openlp/plugins/custom/forms/editcustomdialog.py
@@ -36,106 +36,82 @@ class Ui_CustomEditDialog(object):
build_icon(u':/icon/openlp.org-icon-32.bmp'))
self.gridLayout = QtGui.QGridLayout(customEditDialog)
self.gridLayout.setObjectName(u'gridLayout')
+ self.horizontalLayout_3 = QtGui.QHBoxLayout()
+ self.horizontalLayout_3.setObjectName(u'horizontalLayout_3')
+ self.themeLabel = QtGui.QLabel(customEditDialog)
+ self.themeLabel.setObjectName(u'themeLabel')
+ self.horizontalLayout_3.addWidget(self.themeLabel)
+ self.themeComboBox = QtGui.QComboBox(customEditDialog)
+ self.themeComboBox.setObjectName(u'themeComboBox')
+ self.horizontalLayout_3.addWidget(self.themeComboBox)
+ self.gridLayout.addLayout(self.horizontalLayout_3, 2, 0, 1, 1)
+ self.horizontalLayout_2 = QtGui.QHBoxLayout()
+ self.horizontalLayout_2.setObjectName(u'horizontalLayout_2')
+ self.creditLabel = QtGui.QLabel(customEditDialog)
+ self.creditLabel.setObjectName(u'creditLabel')
+ self.horizontalLayout_2.addWidget(self.creditLabel)
+ self.creditEdit = QtGui.QLineEdit(customEditDialog)
+ self.creditEdit.setObjectName(u'creditEdit')
+ self.horizontalLayout_2.addWidget(self.creditEdit)
+ self.gridLayout.addLayout(self.horizontalLayout_2, 3, 0, 1, 1)
+ self.buttonBox = QtGui.QDialogButtonBox(customEditDialog)
+ self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel |
+ QtGui.QDialogButtonBox.Save)
+ self.buttonBox.setObjectName(u'buttonBox')
+ self.gridLayout.addWidget(self.buttonBox, 4, 0, 1, 1)
+ self.horizontalLayout_4 = QtGui.QHBoxLayout()
+ self.horizontalLayout_4.setObjectName(u'horizontalLayout_4')
+ self.verseListView = QtGui.QListWidget(customEditDialog)
+ self.verseListView.setAlternatingRowColors(True)
+ self.verseListView.setObjectName(u'verseListView')
+ self.horizontalLayout_4.addWidget(self.verseListView)
+ self.verticalLayout = QtGui.QVBoxLayout()
+ self.verticalLayout.setObjectName(u'verticalLayout')
+ self.addButton = QtGui.QPushButton(customEditDialog)
+ self.addButton.setObjectName(u'addButton')
+ self.verticalLayout.addWidget(self.addButton)
+ self.editButton = QtGui.QPushButton(customEditDialog)
+ self.editButton.setObjectName(u'editButton')
+ self.verticalLayout.addWidget(self.editButton)
+ self.editAllButton = QtGui.QPushButton(customEditDialog)
+ self.editAllButton.setObjectName(u'editAllButton')
+ self.verticalLayout.addWidget(self.editAllButton)
+ self.deleteButton = QtGui.QPushButton(customEditDialog)
+ self.deleteButton.setObjectName(u'deleteButton')
+ self.verticalLayout.addWidget(self.deleteButton)
+ spacerItem = QtGui.QSpacerItem(20, 128, QtGui.QSizePolicy.Minimum,
+ QtGui.QSizePolicy.Expanding)
+ self.verticalLayout.addItem(spacerItem)
+ self.upButton = QtGui.QPushButton(customEditDialog)
+ icon1 = QtGui.QIcon()
+ icon1.addPixmap(QtGui.QPixmap(u':/services/service_up.png'),
+ QtGui.QIcon.Normal, QtGui.QIcon.Off)
+ self.upButton.setIcon(icon1)
+ self.upButton.setObjectName(u'upButton')
+ self.verticalLayout.addWidget(self.upButton)
+ self.downButton = QtGui.QPushButton(customEditDialog)
+ icon2 = QtGui.QIcon()
+ icon2.addPixmap(QtGui.QPixmap(u':/services/service_down.png'),
+ QtGui.QIcon.Normal, QtGui.QIcon.Off)
+ self.downButton.setIcon(icon2)
+ self.downButton.setObjectName(u'downButton')
+ self.verticalLayout.addWidget(self.downButton)
+ self.horizontalLayout_4.addLayout(self.verticalLayout)
+ self.gridLayout.addLayout(self.horizontalLayout_4, 1, 0, 1, 1)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(u'horizontalLayout')
self.titleLabel = QtGui.QLabel(customEditDialog)
self.titleLabel.setObjectName(u'titleLabel')
self.horizontalLayout.addWidget(self.titleLabel)
self.titleEdit = QtGui.QLineEdit(customEditDialog)
- self.titleLabel.setBuddy(self.titleEdit)
self.titleEdit.setObjectName(u'titleEdit')
self.horizontalLayout.addWidget(self.titleEdit)
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
- self.horizontalLayout4 = QtGui.QHBoxLayout()
- self.horizontalLayout4.setObjectName(u'horizontalLayout4')
- self.verseListView = QtGui.QListWidget(customEditDialog)
- self.verseListView.setAlternatingRowColors(True)
- self.verseListView.setObjectName(u'verseListView')
- self.horizontalLayout4.addWidget(self.verseListView)
- self.verticalLayout = QtGui.QVBoxLayout()
- self.verticalLayout.setObjectName(u'verticalLayout')
- self.upButton = QtGui.QPushButton(customEditDialog)
- self.upButton.setIcon(build_icon(u':/services/service_up.png'))
- self.upButton.setObjectName(u'upButton')
- self.verticalLayout.addWidget(self.upButton)
- spacerItem = QtGui.QSpacerItem(20, 128, QtGui.QSizePolicy.Minimum,
- QtGui.QSizePolicy.Expanding)
- self.verticalLayout.addItem(spacerItem)
- self.downButton = QtGui.QPushButton(customEditDialog)
- self.downButton.setIcon(build_icon(u':/services/service_down.png'))
- self.downButton.setObjectName(u'downButton')
- self.verticalLayout.addWidget(self.downButton)
- self.horizontalLayout4.addLayout(self.verticalLayout)
- self.gridLayout.addLayout(self.horizontalLayout4, 1, 0, 1, 1)
- self.editWidget = QtGui.QWidget(customEditDialog)
- self.editWidget.setObjectName(u'editWidget')
- self.editLayout3 = QtGui.QHBoxLayout(self.editWidget)
- self.editLayout3.setSpacing(8)
- self.editLayout3.setMargin(0)
- self.editLayout3.setObjectName(u'editLayout3')
- self.verseTextEdit = SpellTextEdit(self)
- self.verseTextEdit.setObjectName(u'verseTextEdit')
- self.editLayout3.addWidget(self.verseTextEdit)
- self.buttonWidget = QtGui.QWidget(self.editWidget)
- self.buttonWidget.setObjectName(u'buttonWidget')
- self.verticalLayout2 = QtGui.QVBoxLayout(self.buttonWidget)
- self.verticalLayout2.setObjectName(u'verticalLayout2')
- self.addButton = QtGui.QPushButton(self.buttonWidget)
- self.addButton.setObjectName(u'addButton')
- self.verticalLayout2.addWidget(self.addButton)
- self.editButton = QtGui.QPushButton(self.buttonWidget)
- self.editButton.setObjectName(u'editButton')
- self.verticalLayout2.addWidget(self.editButton)
- self.editAllButton = QtGui.QPushButton(self.buttonWidget)
- self.editAllButton.setObjectName(u'editAllButton')
- self.verticalLayout2.addWidget(self.editAllButton)
- self.saveButton = QtGui.QPushButton(self.buttonWidget)
- self.saveButton.setObjectName(u'saveButton')
- self.verticalLayout2.addWidget(self.saveButton)
- self.deleteButton = QtGui.QPushButton(self.buttonWidget)
- self.deleteButton.setObjectName(u'deleteButton')
- self.verticalLayout2.addWidget(self.deleteButton)
- self.clearButton = QtGui.QPushButton(self.buttonWidget)
- self.clearButton.setObjectName(u'clearButton')
- self.verticalLayout2.addWidget(self.clearButton)
- self.splitButton = QtGui.QPushButton(self.buttonWidget)
- self.splitButton.setObjectName(u'splitButton')
- self.verticalLayout2.addWidget(self.splitButton)
- spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
- QtGui.QSizePolicy.Expanding)
- self.verticalLayout2.addItem(spacerItem1)
- self.editLayout3.addWidget(self.buttonWidget)
- self.gridLayout.addWidget(self.editWidget, 2, 0, 1, 1)
- self.horizontalLayout3 = QtGui.QHBoxLayout()
- self.horizontalLayout3.setObjectName(u'horizontalLayout3')
- self.themeLabel = QtGui.QLabel(customEditDialog)
- self.themeLabel.setObjectName(u'themeLabel')
- self.horizontalLayout3.addWidget(self.themeLabel)
- self.themeComboBox = QtGui.QComboBox(customEditDialog)
- self.themeLabel.setBuddy(self.themeComboBox)
- self.themeComboBox.setObjectName(u'themeComboBox')
- self.horizontalLayout3.addWidget(self.themeComboBox)
- self.gridLayout.addLayout(self.horizontalLayout3, 3, 0, 1, 1)
- self.horizontalLayout2 = QtGui.QHBoxLayout()
- self.horizontalLayout2.setObjectName(u'horizontalLayout2')
- self.creditLabel = QtGui.QLabel(customEditDialog)
- self.creditLabel.setObjectName(u'creditLabel')
- self.horizontalLayout2.addWidget(self.creditLabel)
- self.creditEdit = QtGui.QLineEdit(customEditDialog)
- self.creditLabel.setBuddy(self.creditEdit)
- self.creditEdit.setObjectName(u'creditEdit')
- self.horizontalLayout2.addWidget(self.creditEdit)
- self.gridLayout.addLayout(self.horizontalLayout2, 4, 0, 1, 1)
- self.buttonBox = QtGui.QDialogButtonBox(customEditDialog)
- self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel |
- QtGui.QDialogButtonBox.Save)
- self.buttonBox.setObjectName(u'buttonBox')
- self.gridLayout.addWidget(self.buttonBox, 5, 0, 1, 1)
self.retranslateUi(customEditDialog)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'accepted()'),
customEditDialog.accept)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'),
- customEditDialog.closePressed)
+ customEditDialog.close)
QtCore.QMetaObject.connectSlotsByName(customEditDialog)
def retranslateUi(self, customEditDialog):
@@ -143,46 +119,32 @@ class Ui_CustomEditDialog(object):
translate('CustomPlugin.EditCustomForm', 'Edit Custom Slides'))
self.upButton.setToolTip(
translate('CustomPlugin.EditCustomForm', 'Move slide up one '
- 'position.'))
+ 'position.'))
self.downButton.setToolTip(
translate('CustomPlugin.EditCustomForm', 'Move slide down one '
- 'position.'))
+ 'position.'))
self.titleLabel.setText(
translate('CustomPlugin.EditCustomForm', '&Title:'))
self.addButton.setText(
translate('CustomPlugin.EditCustomForm', 'Add New'))
self.addButton.setToolTip(
translate('CustomPlugin.EditCustomForm', 'Add a new slide at '
- 'bottom.'))
+ 'bottom.'))
self.editButton.setText(
translate('CustomPlugin.EditCustomForm', 'Edit'))
self.editButton.setToolTip(
translate('CustomPlugin.EditCustomForm', 'Edit the selected '
- 'slide.'))
+ 'slide.'))
self.editAllButton.setText(
translate('CustomPlugin.EditCustomForm', 'Edit All'))
self.editAllButton.setToolTip(
translate('CustomPlugin.EditCustomForm', 'Edit all the slides at '
- 'once.'))
- self.saveButton.setText(
- translate('CustomPlugin.EditCustomForm', 'Save'))
- self.saveButton.setToolTip(
- translate('CustomPlugin.EditCustomForm', 'Save the slide currently '
- 'being edited.'))
+ 'once.'))
self.deleteButton.setText(
translate('CustomPlugin.EditCustomForm', 'Delete'))
self.deleteButton.setToolTip(
translate('CustomPlugin.EditCustomForm', 'Delete the selected '
- 'slide.'))
- self.clearButton.setText(
- translate('CustomPlugin.EditCustomForm', 'Clear'))
- self.clearButton.setToolTip(
- translate('CustomPlugin.EditCustomForm', 'Clear edit area'))
- self.splitButton.setText(
- translate('CustomPlugin.EditCustomForm', 'Split Slide'))
- self.splitButton.setToolTip(
- translate('CustomPlugin.EditCustomForm', 'Split a slide into two '
- 'by inserting a slide splitter.'))
+ 'slide.'))
self.themeLabel.setText(
translate('CustomPlugin.EditCustomForm', 'The&me:'))
self.creditLabel.setText(
diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py
index d412287aa..18ab98d45 100644
--- a/openlp/plugins/custom/forms/editcustomform.py
+++ b/openlp/plugins/custom/forms/editcustomform.py
@@ -32,6 +32,7 @@ from openlp.core.lib import Receiver, translate
from openlp.plugins.custom.lib import CustomXMLBuilder, CustomXMLParser
from openlp.plugins.custom.lib.db import CustomSlide
from editcustomdialog import Ui_CustomEditDialog
+from editcustomslideform import EditCustomSlideForm
log = logging.getLogger(__name__)
@@ -40,7 +41,7 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog):
Class documentation goes here.
"""
log.info(u'Custom Editor loaded')
- def __init__(self, custommanager, parent = None):
+ def __init__(self, custommanager, parent=None):
"""
Constructor
"""
@@ -61,21 +62,12 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog):
QtCore.SIGNAL(u'pressed()'), self.onEditButtonPressed)
QtCore.QObject.connect(self.editAllButton,
QtCore.SIGNAL(u'pressed()'), self.onEditAllButtonPressed)
- QtCore.QObject.connect(self.saveButton,
- QtCore.SIGNAL(u'pressed()'), self.onSaveButtonPressed)
QtCore.QObject.connect(self.deleteButton,
QtCore.SIGNAL(u'pressed()'), self.onDeleteButtonPressed)
- QtCore.QObject.connect(self.clearButton,
- QtCore.SIGNAL(u'pressed()'), self.onClearButtonPressed)
QtCore.QObject.connect(self.upButton,
QtCore.SIGNAL(u'pressed()'), self.onUpButtonPressed)
QtCore.QObject.connect(self.downButton,
QtCore.SIGNAL(u'pressed()'), self.onDownButtonPressed)
- QtCore.QObject.connect(self.splitButton,
- QtCore.SIGNAL(u'pressed()'), self.onSplitButtonPressed)
- QtCore.QObject.connect(self.verseListView,
- QtCore.SIGNAL(u'itemDoubleClicked(QListWidgetItem*)'),
- self.onVerseListViewSelected)
QtCore.QObject.connect(self.verseListView,
QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'),
self.onVerseListViewPressed)
@@ -83,30 +75,19 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog):
QtCore.SIGNAL(u'theme_update_list'), self.loadThemes)
# Create other objects and forms.
self.custommanager = custommanager
+ self.slide_form = EditCustomSlideForm(self)
self.initialise()
- def onPreview(self, button):
- log.debug(u'onPreview')
- if button.text() == unicode(translate('CustomPlugin.EditCustomForm',
- 'Save && Preview')) and self.saveCustom():
- Receiver.send_message(u'custom_preview')
-
def initialise(self):
- self.editAll = False
self.addButton.setEnabled(True)
self.deleteButton.setEnabled(False)
self.editButton.setEnabled(False)
self.editAllButton.setEnabled(True)
- self.saveButton.setEnabled(False)
- self.clearButton.setEnabled(False)
- self.splitButton.setEnabled(False)
self.titleEdit.setText(u'')
self.creditEdit.setText(u'')
- self.verseTextEdit.clear()
self.verseListView.clear()
# Make sure we have a new item.
self.customSlide = CustomSlide()
- self.themeComboBox.addItem(u'')
def loadThemes(self, themelist):
self.themeComboBox.clear()
@@ -198,37 +179,41 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog):
self.verseListView.insertItem(selectedRow + 1, qw)
self.verseListView.setCurrentRow(selectedRow + 1)
- def onClearButtonPressed(self):
- #TODO: enable the "big" save button.
- self.verseTextEdit.clear()
- self.editAll = False
- self.addButton.setEnabled(True)
- self.editAllButton.setEnabled(True)
- self.saveButton.setEnabled(False)
+ def onPreview(self, button):
+ log.debug(u'onPreview')
+ if button.text() == unicode(translate('CustomPlugin.EditCustomForm',
+ 'Save && Preview')) and self.saveCustom():
+ Receiver.send_message(u'custom_preview')
def onVerseListViewPressed(self, item):
self.deleteButton.setEnabled(True)
self.editButton.setEnabled(True)
- def onVerseListViewSelected(self, item):
- self.editText(item.text())
+ def onDeleteButtonPressed(self):
+ self.verseListView.takeItem(self.verseListView.currentRow())
+ self.editButton.setEnabled(True)
+ self.editAllButton.setEnabled(True)
+ if self.verseListView.count() == 0:
+ self.deleteButton.setEnabled(False)
+ self.editButton.setEnabled(False)
+ self.editAllButton.setEnabled(False)
def onAddButtonPressed(self):
- #TODO: enable the "big" save button.
- self.verseListView.addItem(self.verseTextEdit.toPlainText())
- self.editAllButton.setEnabled(True)
- self.deleteButton.setEnabled(False)
- self.verseTextEdit.clear()
+ self.slide_form.setText(u'')
+ if self.slide_form.exec_():
+ for slide in self.slide_form.getText():
+ self.verseListView.addItem(slide)
+ self.editAllButton.setEnabled(True)
def onEditButtonPressed(self):
- #TODO: disable the "big" save button.
- self.editText(self.verseListView.currentItem().text())
+ self.slide_form.setText(self.verseListView.currentItem().text())
+ if self.slide_form.exec_():
+ self.updateVerseList(self.slide_form.getText())
def onEditAllButtonPressed(self):
- #TODO: disable the "big" save button.
- self.editAll = True
- self.addButton.setEnabled(False)
- self.splitButton.setEnabled(True)
+ """
+ Edits all slides.
+ """
if self.verseListView.count() > 0:
verse_list = u''
for row in range(0, self.verseListView.count()):
@@ -236,58 +221,41 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog):
verse_list += item.text()
if row != self.verseListView.count() - 1:
verse_list += u'\n[---]\n'
- self.editText(verse_list)
+ self.slide_form.setText(verse_list)
+ if self.slide_form.exec_():
+ self.updateVerseList(self.slide_form.getText(), True)
- def editText(self, text):
- self.beforeText = text
- self.verseTextEdit.setPlainText(text)
- self.deleteButton.setEnabled(False)
- self.editButton.setEnabled(False)
- self.editAllButton.setEnabled(False)
- self.saveButton.setEnabled(True)
- self.clearButton.setEnabled(True)
+ def updateVerseList(self, slides, edit_all=False):
+ """
+ Updates the verse list (self.verseListView) after editing slides.
- def onSaveButtonPressed(self):
- #TODO: enable the "big" save button.
- if self.editAll:
- self.verseListView.clear()
- for row in unicode(self.verseTextEdit.toPlainText()).split(
- u'\n[---]\n'):
- self.verseListView.addItem(row)
+ ``slides``
+ A list of all slides which have been edited.
+
+ ``edit_all``
+ Indicates if all slides or only one slide has been edited.
+ """
+ if len(slides) == 1:
+ self.verseListView.currentItem().setText(slides[0])
else:
- self.verseListView.currentItem().setText(
- self.verseTextEdit.toPlainText())
- # The number of lines has changed.
- if len(self.beforeText.split(u'\n')) != \
- len(self.verseTextEdit.toPlainText().split(u'\n')):
- tempList = {}
- for row in range(0, self.verseListView.count()):
- tempList[row] = self.verseListView.item(row).text()
+ if edit_all:
self.verseListView.clear()
- for row in range (0, len(tempList)):
- self.verseListView.addItem(tempList[row])
- self.verseListView.repaint()
- self.addButton.setEnabled(True)
- self.saveButton.setEnabled(False)
- self.editButton.setEnabled(False)
- self.editAllButton.setEnabled(True)
- self.splitButton.setEnabled(False)
- self.verseTextEdit.clear()
-
- def onSplitButtonPressed(self):
- if self.verseTextEdit.textCursor().columnNumber() != 0:
- self.verseTextEdit.insertPlainText(u'\n')
- self.verseTextEdit.insertPlainText(u'[---]\n' )
- self.verseTextEdit.setFocus()
-
- def onDeleteButtonPressed(self):
- #TODO: make sure the "big" save button is disabled if no slides.
- self.verseListView.takeItem(self.verseListView.currentRow())
- self.editButton.setEnabled(False)
- self.editAllButton.setEnabled(True)
- if self.verseListView.count() == 0:
- self.deleteButton.setEnabled(False)
- self.editAllButton.setEnabled(False)
+ for slide in slides:
+ self.verseListView.addItem(slide)
+ else:
+ old_slides = []
+ old_row = self.verseListView.currentRow()
+ # Create a list with all slide (unedited).
+ old_slides = [self.verseListView.item(row).text() for row in \
+ range(0, self.verseListView.count())]
+ self.verseListView.clear()
+ old_slides.pop(old_row)
+ # Insert all slides in the old_slides list, to make the list complete.
+ for slide in slides:
+ old_slides.insert(old_row, slide)
+ for slide in old_slides:
+ self.verseListView.addItem(slide)
+ self.verseListView.repaint()
def _validate(self):
"""
@@ -300,7 +268,6 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog):
'You need to type in a title.')
# We must have one slide.
if self.verseListView.count() == 0:
- self.verseTextEdit.setFocus()
return False, translate('CustomPlugin.EditCustomForm',
'You need to add at least one slide')
return True, u''
diff --git a/openlp/plugins/custom/forms/editcustomslidedialog.py b/openlp/plugins/custom/forms/editcustomslidedialog.py
new file mode 100644
index 000000000..bc6657d90
--- /dev/null
+++ b/openlp/plugins/custom/forms/editcustomslidedialog.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2010 Raoul Snyman #
+# Portions copyright (c) 2008-2010 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
+
+class Ui_CustomSlideEditDialog(object):
+ def setupUi(self, customSlideEditDialog):
+ customSlideEditDialog.setObjectName(u'customSlideEditDialog')
+ customSlideEditDialog.resize(474, 442)
+ self.buttonBox = QtGui.QDialogButtonBox(customSlideEditDialog)
+ self.buttonBox.setGeometry(QtCore.QRect(8, 407, 458, 32))
+ self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save)
+ self.buttonBox.setObjectName(u'buttonBox')
+ self.verseTextEdit = QtGui.QTextEdit(customSlideEditDialog)
+ self.verseTextEdit.setGeometry(QtCore.QRect(8, 8, 451, 341))
+ self.verseTextEdit.setObjectName(u'verseTextEdit')
+ self.splitButton = QtGui.QPushButton(customSlideEditDialog)
+ self.splitButton.setGeometry(QtCore.QRect(370, 360, 85, 27))
+ self.splitButton.setObjectName(u'splitButton')
+ self.retranslateUi(customSlideEditDialog)
+ QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'accepted()'),
+ customSlideEditDialog.accept)
+ QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'),
+ customSlideEditDialog.reject)
+ QtCore.QMetaObject.connectSlotsByName(customSlideEditDialog)
+
+ def retranslateUi(self, customSlideEditDialog):
+ self.splitButton.setText(
+ translate('CustomPlugin.EditCustomForm', 'Split Slide'))
+ self.splitButton.setToolTip(
+ translate('CustomPlugin.EditCustomForm', 'Split a slide into two '
+ 'by inserting a slide splitter.'))
diff --git a/openlp/plugins/custom/forms/editcustomslideform.py b/openlp/plugins/custom/forms/editcustomslideform.py
new file mode 100644
index 000000000..b43287b99
--- /dev/null
+++ b/openlp/plugins/custom/forms/editcustomslideform.py
@@ -0,0 +1,74 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2010 Raoul Snyman #
+# Portions copyright (c) 2008-2010 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 F################################OR 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 #
+###############################################################################
+
+import logging
+
+from PyQt4 import QtCore, QtGui
+
+from openlp.core.lib import Receiver, translate
+from editcustomslidedialog import Ui_CustomSlideEditDialog
+
+log = logging.getLogger(__name__)
+
+class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog):
+ """
+ Class documentation goes here.
+ """
+ log.info(u'Custom Verse Editor loaded')
+ def __init__(self, parent=None):
+ """
+ Constructor
+ """
+ QtGui.QDialog.__init__(self, parent)
+ self.setupUi(self)
+ # Connecting signals and slots
+ QtCore.QObject.connect(self.splitButton,
+ QtCore.SIGNAL(u'pressed()'), self.onSplitButtonPressed)
+
+
+ def setText(self, text):
+ """
+ Set the text for verseTextEdit.
+
+ ``text``
+ The text (unicode).
+ """
+ self.verseTextEdit.clear()
+ if text:
+ self.verseTextEdit.setPlainText(text)
+ self.verseTextEdit.setFocus()
+
+ def getText(self):
+ """
+ Returns a list with all slides.
+ """
+ return self.verseTextEdit.toPlainText().split(u'\n[---]\n')
+
+ def onSplitButtonPressed(self):
+ if self.verseTextEdit.textCursor().columnNumber() != 0:
+ self.verseTextEdit.insertPlainText(u'\n')
+ self.verseTextEdit.insertPlainText(u'[---]\n' )
+ self.verseTextEdit.setFocus()
diff --git a/resources/forms/editcustomdialog.ui b/resources/forms/editcustomdialog.ui
index 44ce46ca7..7c714baab 100644
--- a/resources/forms/editcustomdialog.ui
+++ b/resources/forms/editcustomdialog.ui
@@ -18,20 +18,48 @@
:/icon/openlp.org-icon-32.bmp:/icon/openlp.org-icon-32.bmp
- -
-
+
-
+
-
-
+
- Title:
+ Theme:
-
-
+
+
+
+
+
+ -
+
+
-
+
+
+ Credits:
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Save
+
+
+
-
-
@@ -44,16 +72,42 @@
-
-
-
+
-
+
-
+ Add New
-
-
- :/services/service_up.png:/services/service_up.png
+
+
+ -
+
+
+
+
+
+ Edit
+
+
+
+ -
+
+
+
+
+
+ Edit All
+
+
+
+ -
+
+
+
+
+
+ Delete
@@ -70,6 +124,20 @@
+ -
+
+
+
+
+
+
+
+
+
+ :/services/service_up.png:/services/service_up.png
+
+
+
-
@@ -88,166 +156,26 @@
- -
-
-
-
- 8
-
-
- 0
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- Add New
-
-
-
- -
-
-
-
-
-
- Edit
-
-
-
- -
-
-
-
-
-
- Edit All
-
-
-
- -
-
-
-
-
-
- Save
-
-
-
- -
-
-
-
-
-
- Delete
-
-
-
- -
-
-
-
-
-
- Clear
-
-
-
- -
-
-
-
-
-
- Split Slide
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
-
-
-
-
- -
-
+
-
+
-
-
+
- Theme:
+ Title:
-
-
-
-
-
-
+
- -
-
-
-
-
-
- Credits:
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
- QDialogButtonBox::Cancel|QDialogButtonBox::Save
-
-
-
TitleEdit
- VerseTextEdit
- AddButton
VerseListView
- EditButton
- EditAllButton
- SaveButton
- DeleteButton
CreditEdit
- UpButton
- DownButton
ThemeComboBox