forked from openlp/openlp
head
This commit is contained in:
commit
1911972177
|
@ -343,10 +343,10 @@ def build_lyrics(item):
|
||||||
shadow = u'display: none;'
|
shadow = u'display: none;'
|
||||||
if theme:
|
if theme:
|
||||||
lyricscommon = u'width: %spx; height: %spx; word-wrap: break-word; ' \
|
lyricscommon = u'width: %spx; height: %spx; word-wrap: break-word; ' \
|
||||||
u'font-family: %s; font-size: %spx; color: %s; line-height: %d%%;' % \
|
u'font-family: %s; font-size: %spx; color: %s; line-height: %d%%;' \
|
||||||
(item.main.width(), item.main.height(),
|
% (item.main.width(), item.main.height(), theme.font_main_name,
|
||||||
theme.font_main_name, theme.font_main_proportion,
|
theme.font_main_proportion, theme.font_main_color,
|
||||||
theme.font_main_color, 100 + int(theme.font_main_line_adjustment))
|
100 + int(theme.font_main_line_adjustment))
|
||||||
lyricstable = u'left: %spx; top: %spx;' % \
|
lyricstable = u'left: %spx; top: %spx;' % \
|
||||||
(item.main.x(), item.main.y())
|
(item.main.x(), item.main.y())
|
||||||
outlinetable = u'left: %spx; top: %spx;' % \
|
outlinetable = u'left: %spx; top: %spx;' % \
|
||||||
|
|
|
@ -200,7 +200,7 @@ class RenderManager(object):
|
||||||
serviceItem.raw_footer = footer
|
serviceItem.raw_footer = footer
|
||||||
serviceItem.render(True)
|
serviceItem.render(True)
|
||||||
self.display.buildHtml(serviceItem)
|
self.display.buildHtml(serviceItem)
|
||||||
frame, raw_html = serviceItem.get_rendered_frame(0)
|
raw_html = serviceItem.get_rendered_frame(0)[1]
|
||||||
preview = self.display.text(raw_html)
|
preview = self.display.text(raw_html)
|
||||||
# Reset the real screen size for subsequent render requests
|
# Reset the real screen size for subsequent render requests
|
||||||
self.calculate_default(self.screens.current[u'size'])
|
self.calculate_default(self.screens.current[u'size'])
|
||||||
|
|
|
@ -41,7 +41,6 @@ from PyQt4 import QtCore, QtGui
|
||||||
from openlp.core.lib import html_expands, translate, context_menu_action
|
from openlp.core.lib import html_expands, translate, context_menu_action
|
||||||
|
|
||||||
class SpellTextEdit(QtGui.QPlainTextEdit):
|
class SpellTextEdit(QtGui.QPlainTextEdit):
|
||||||
|
|
||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
QtGui.QPlainTextEdit.__init__(self, *args)
|
QtGui.QPlainTextEdit.__init__(self, *args)
|
||||||
# Default dictionary based on the current locale.
|
# Default dictionary based on the current locale.
|
||||||
|
@ -54,18 +53,17 @@ class SpellTextEdit(QtGui.QPlainTextEdit):
|
||||||
if event.button() == QtCore.Qt.RightButton:
|
if event.button() == QtCore.Qt.RightButton:
|
||||||
# Rewrite the mouse event to a left button event so the cursor is
|
# Rewrite the mouse event to a left button event so the cursor is
|
||||||
# moved to the location of the pointer.
|
# moved to the location of the pointer.
|
||||||
event = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonPress, event.pos(),
|
event = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonPress,
|
||||||
QtCore.Qt.LeftButton, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier)
|
event.pos(), QtCore.Qt.LeftButton, QtCore.Qt.LeftButton,
|
||||||
|
QtCore.Qt.NoModifier)
|
||||||
QtGui.QPlainTextEdit.mousePressEvent(self, event)
|
QtGui.QPlainTextEdit.mousePressEvent(self, event)
|
||||||
|
|
||||||
def contextMenuEvent(self, event):
|
def contextMenuEvent(self, event):
|
||||||
popup_menu = self.createStandardContextMenu()
|
popup_menu = self.createStandardContextMenu()
|
||||||
|
|
||||||
# Select the word under the cursor.
|
# Select the word under the cursor.
|
||||||
cursor = self.textCursor()
|
cursor = self.textCursor()
|
||||||
cursor.select(QtGui.QTextCursor.WordUnderCursor)
|
cursor.select(QtGui.QTextCursor.WordUnderCursor)
|
||||||
self.setTextCursor(cursor)
|
self.setTextCursor(cursor)
|
||||||
|
|
||||||
# Check if the selected word is misspelled and offer spelling
|
# Check if the selected word is misspelled and offer spelling
|
||||||
# suggestions if it is.
|
# suggestions if it is.
|
||||||
if enchant_available and self.textCursor().hasSelection():
|
if enchant_available and self.textCursor().hasSelection():
|
||||||
|
@ -94,9 +92,9 @@ class SpellTextEdit(QtGui.QPlainTextEdit):
|
||||||
popup_menu.exec_(event.globalPos())
|
popup_menu.exec_(event.globalPos())
|
||||||
|
|
||||||
def correctWord(self, word):
|
def correctWord(self, word):
|
||||||
'''
|
"""
|
||||||
Replaces the selected text with word.
|
Replaces the selected text with word.
|
||||||
'''
|
"""
|
||||||
cursor = self.textCursor()
|
cursor = self.textCursor()
|
||||||
cursor.beginEditBlock()
|
cursor.beginEditBlock()
|
||||||
|
|
||||||
|
@ -106,9 +104,9 @@ class SpellTextEdit(QtGui.QPlainTextEdit):
|
||||||
cursor.endEditBlock()
|
cursor.endEditBlock()
|
||||||
|
|
||||||
def htmlTag(self, tag):
|
def htmlTag(self, tag):
|
||||||
'''
|
"""
|
||||||
Replaces the selected text with word.
|
Replaces the selected text with word.
|
||||||
'''
|
"""
|
||||||
for html in html_expands:
|
for html in html_expands:
|
||||||
if tag == html[u'desc']:
|
if tag == html[u'desc']:
|
||||||
cursor = self.textCursor()
|
cursor = self.textCursor()
|
||||||
|
@ -153,9 +151,9 @@ class Highlighter(QtGui.QSyntaxHighlighter):
|
||||||
word_object.end() - word_object.start(), format)
|
word_object.end() - word_object.start(), format)
|
||||||
|
|
||||||
class SpellAction(QtGui.QAction):
|
class SpellAction(QtGui.QAction):
|
||||||
'''
|
"""
|
||||||
A special QAction that returns the text in a signal.
|
A special QAction that returns the text in a signal.
|
||||||
'''
|
"""
|
||||||
correct = QtCore.pyqtSignal(unicode)
|
correct = QtCore.pyqtSignal(unicode)
|
||||||
|
|
||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
|
|
|
@ -94,8 +94,10 @@ class Ui_MainWindow(object):
|
||||||
self.ControlSplitter.setObjectName(u'ControlSplitter')
|
self.ControlSplitter.setObjectName(u'ControlSplitter')
|
||||||
self.MainContentLayout.addWidget(self.ControlSplitter)
|
self.MainContentLayout.addWidget(self.ControlSplitter)
|
||||||
# Create slide controllers
|
# Create slide controllers
|
||||||
self.PreviewController = SlideController(self, self.settingsmanager, self.screens)
|
self.PreviewController = SlideController(self, self.settingsmanager,
|
||||||
self.LiveController = SlideController(self, self.settingsmanager, self.screens, True)
|
self.screens)
|
||||||
|
self.LiveController = SlideController(self, self.settingsmanager,
|
||||||
|
self.screens, True)
|
||||||
# Create menu
|
# Create menu
|
||||||
self.MenuBar = QtGui.QMenuBar(MainWindow)
|
self.MenuBar = QtGui.QMenuBar(MainWindow)
|
||||||
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
|
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
|
||||||
|
|
|
@ -117,7 +117,8 @@ class SlideController(QtGui.QWidget):
|
||||||
self.split = 1
|
self.split = 1
|
||||||
self.typePrefix = u'live'
|
self.typePrefix = u'live'
|
||||||
else:
|
else:
|
||||||
self.TypeLabel.setText(translate('OpenLP.SlideController', 'Preview'))
|
self.TypeLabel.setText(translate('OpenLP.SlideController',
|
||||||
|
'Preview'))
|
||||||
self.split = 0
|
self.split = 0
|
||||||
self.typePrefix = u'preview'
|
self.typePrefix = u'preview'
|
||||||
self.TypeLabel.setStyleSheet(u'font-weight: bold; font-size: 12pt;')
|
self.TypeLabel.setStyleSheet(u'font-weight: bold; font-size: 12pt;')
|
||||||
|
@ -199,7 +200,8 @@ class SlideController(QtGui.QWidget):
|
||||||
QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay)
|
QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay)
|
||||||
if self.screens.display_count > 1:
|
if self.screens.display_count > 1:
|
||||||
self.DesktopScreen = QtGui.QAction(QtGui.QIcon(
|
self.DesktopScreen = QtGui.QAction(QtGui.QIcon(
|
||||||
u':/slides/slide_desktop.png'), u'Show Desktop', self.HideMenu)
|
u':/slides/slide_desktop.png'), u'Show Desktop',
|
||||||
|
self.HideMenu)
|
||||||
self.DesktopScreen.setCheckable(True)
|
self.DesktopScreen.setCheckable(True)
|
||||||
QtCore.QObject.connect(self.DesktopScreen,
|
QtCore.QObject.connect(self.DesktopScreen,
|
||||||
QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay)
|
QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay)
|
||||||
|
@ -212,7 +214,8 @@ class SlideController(QtGui.QWidget):
|
||||||
self.Toolbar.addToolbarSeparator(u'Close Separator')
|
self.Toolbar.addToolbarSeparator(u'Close Separator')
|
||||||
self.Toolbar.addToolbarButton(
|
self.Toolbar.addToolbarButton(
|
||||||
u'Go Live', u':/general/general_live.png',
|
u'Go Live', u':/general/general_live.png',
|
||||||
translate('OpenLP.SlideController', 'Move to live'), self.onGoLive)
|
translate('OpenLP.SlideController', 'Move to live'),
|
||||||
|
self.onGoLive)
|
||||||
self.Toolbar.addToolbarSeparator(u'Close Separator')
|
self.Toolbar.addToolbarSeparator(u'Close Separator')
|
||||||
self.Toolbar.addToolbarButton(
|
self.Toolbar.addToolbarButton(
|
||||||
u'Edit Song', u':/general/general_edit.png',
|
u'Edit Song', u':/general/general_edit.png',
|
||||||
|
@ -233,7 +236,8 @@ class SlideController(QtGui.QWidget):
|
||||||
self.DelaySpinBox.setMaximum(180)
|
self.DelaySpinBox.setMaximum(180)
|
||||||
self.Toolbar.addToolbarWidget(
|
self.Toolbar.addToolbarWidget(
|
||||||
u'Image SpinBox', self.DelaySpinBox)
|
u'Image SpinBox', self.DelaySpinBox)
|
||||||
self.DelaySpinBox.setSuffix(translate('OpenLP.SlideController', 's'))
|
self.DelaySpinBox.setSuffix(translate('OpenLP.SlideController',
|
||||||
|
's'))
|
||||||
self.DelaySpinBox.setToolTip(translate('OpenLP.SlideController',
|
self.DelaySpinBox.setToolTip(translate('OpenLP.SlideController',
|
||||||
'Delay between slides in seconds'))
|
'Delay between slides in seconds'))
|
||||||
self.ControllerLayout.addWidget(self.Toolbar)
|
self.ControllerLayout.addWidget(self.Toolbar)
|
||||||
|
@ -274,11 +278,13 @@ class SlideController(QtGui.QWidget):
|
||||||
# Build the Song Toolbar
|
# Build the Song Toolbar
|
||||||
if isLive:
|
if isLive:
|
||||||
self.SongMenu = QtGui.QToolButton(self.Toolbar)
|
self.SongMenu = QtGui.QToolButton(self.Toolbar)
|
||||||
self.SongMenu.setText(translate('OpenLP.SlideController', 'Go to Verse'))
|
self.SongMenu.setText(translate('OpenLP.SlideController',
|
||||||
|
'Go to Verse'))
|
||||||
self.SongMenu.setPopupMode(QtGui.QToolButton.InstantPopup)
|
self.SongMenu.setPopupMode(QtGui.QToolButton.InstantPopup)
|
||||||
self.Toolbar.addToolbarWidget(u'Song Menu', self.SongMenu)
|
self.Toolbar.addToolbarWidget(u'Song Menu', self.SongMenu)
|
||||||
self.SongMenu.setMenu(QtGui.QMenu(
|
self.SongMenu.setMenu(QtGui.QMenu(
|
||||||
translate('OpenLP.SlideController', 'Go to Verse'), self.Toolbar))
|
translate('OpenLP.SlideController', 'Go to Verse'),
|
||||||
|
self.Toolbar))
|
||||||
self.Toolbar.makeWidgetsInvisible([u'Song Menu'])
|
self.Toolbar.makeWidgetsInvisible([u'Song Menu'])
|
||||||
# Screen preview area
|
# Screen preview area
|
||||||
self.PreviewFrame = QtGui.QFrame(self.Splitter)
|
self.PreviewFrame = QtGui.QFrame(self.Splitter)
|
||||||
|
|
|
@ -263,8 +263,8 @@ class Ui_EditSongDialog(object):
|
||||||
self.SongbookLayout.setSpacing(8)
|
self.SongbookLayout.setSpacing(8)
|
||||||
self.SongbookLayout.setObjectName(u'SongbookLayout')
|
self.SongbookLayout.setObjectName(u'SongbookLayout')
|
||||||
self.SongbookCombo = QtGui.QComboBox(self.SongBookGroup)
|
self.SongbookCombo = QtGui.QComboBox(self.SongBookGroup)
|
||||||
sizePolicy = QtGui.QSizePolicy(
|
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
|
||||||
QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed)
|
QtGui.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(
|
sizePolicy.setHeightForWidth(
|
||||||
|
@ -273,6 +273,12 @@ class Ui_EditSongDialog(object):
|
||||||
self.SongbookCombo.setSizePolicy(sizePolicy)
|
self.SongbookCombo.setSizePolicy(sizePolicy)
|
||||||
self.SongbookCombo.setObjectName(u'SongbookCombo')
|
self.SongbookCombo.setObjectName(u'SongbookCombo')
|
||||||
self.SongbookLayout.addWidget(self.SongbookCombo, 0, 0, 1, 1)
|
self.SongbookLayout.addWidget(self.SongbookCombo, 0, 0, 1, 1)
|
||||||
|
self.songBookNumberLabel = QtGui.QLabel(self.SongBookGroup)
|
||||||
|
self.SongbookLayout.addWidget(self.songBookNumberLabel, 0, 1, 1, 1)
|
||||||
|
self.songBookNumberEdit = QtGui.QLineEdit(self.SongBookGroup)
|
||||||
|
self.songBookNumberLabel.setBuddy(self.songBookNumberEdit)
|
||||||
|
self.songBookNumberEdit.setMaximumWidth(35)
|
||||||
|
self.SongbookLayout.addWidget(self.songBookNumberEdit, 0, 2, 1, 1)
|
||||||
self.TopicBookLayout.addWidget(self.SongBookGroup)
|
self.TopicBookLayout.addWidget(self.SongBookGroup)
|
||||||
self.AuthorsTabLayout.addWidget(self.TopicBookWidget)
|
self.AuthorsTabLayout.addWidget(self.TopicBookWidget)
|
||||||
self.SongTabWidget.addTab(self.AuthorsTab, u'')
|
self.SongTabWidget.addTab(self.AuthorsTab, u'')
|
||||||
|
@ -440,6 +446,8 @@ class Ui_EditSongDialog(object):
|
||||||
translate('SongsPlugin.EditSongForm', 'R&emove'))
|
translate('SongsPlugin.EditSongForm', 'R&emove'))
|
||||||
self.SongBookGroup.setTitle(
|
self.SongBookGroup.setTitle(
|
||||||
translate('SongsPlugin.EditSongForm', 'Song Book'))
|
translate('SongsPlugin.EditSongForm', 'Song Book'))
|
||||||
|
self.songBookNumberLabel.setText(translate('SongsPlugin.EditSongForm',
|
||||||
|
'Song No.:'))
|
||||||
self.SongTabWidget.setTabText(
|
self.SongTabWidget.setTabText(
|
||||||
self.SongTabWidget.indexOf(self.AuthorsTab),
|
self.SongTabWidget.indexOf(self.AuthorsTab),
|
||||||
translate('SongsPlugin.EditSongForm',
|
translate('SongsPlugin.EditSongForm',
|
||||||
|
|
|
@ -49,6 +49,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
"""
|
"""
|
||||||
QtGui.QDialog.__init__(self, parent)
|
QtGui.QDialog.__init__(self, parent)
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
|
self.song = None
|
||||||
# can this be automated?
|
# can this be automated?
|
||||||
self.width = 400
|
self.width = 400
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
@ -83,10 +84,6 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
QtCore.QObject.connect(self.VerseListWidget,
|
QtCore.QObject.connect(self.VerseListWidget,
|
||||||
QtCore.SIGNAL(u'itemClicked(QTableWidgetItem*)'),
|
QtCore.SIGNAL(u'itemClicked(QTableWidgetItem*)'),
|
||||||
self.onVerseListViewPressed)
|
self.onVerseListViewPressed)
|
||||||
QtCore.QObject.connect(self.SongbookCombo,
|
|
||||||
QtCore.SIGNAL(u'activated(int)'), self.onSongBookComboChanged)
|
|
||||||
QtCore.QObject.connect(self.ThemeSelectionComboItem,
|
|
||||||
QtCore.SIGNAL(u'activated(int)'), self.onThemeComboChanged)
|
|
||||||
QtCore.QObject.connect(self.ThemeAddButton,
|
QtCore.QObject.connect(self.ThemeAddButton,
|
||||||
QtCore.SIGNAL(u'clicked()'),
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
self.parent.parent.renderManager.theme_manager.onAddTheme)
|
self.parent.parent.renderManager.theme_manager.onAddTheme)
|
||||||
|
@ -157,7 +154,6 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
def newSong(self):
|
def newSong(self):
|
||||||
log.debug(u'New Song')
|
log.debug(u'New Song')
|
||||||
self.SongTabWidget.setCurrentIndex(0)
|
self.SongTabWidget.setCurrentIndex(0)
|
||||||
self.song = Song()
|
|
||||||
self.TitleEditItem.setText(u'')
|
self.TitleEditItem.setText(u'')
|
||||||
self.AlternativeEdit.setText(u'')
|
self.AlternativeEdit.setText(u'')
|
||||||
self.CopyrightEditItem.setText(u'')
|
self.CopyrightEditItem.setText(u'')
|
||||||
|
@ -298,8 +294,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
else:
|
else:
|
||||||
author = Author.populate(first_name=text.rsplit(u' ', 1)[0],
|
author = Author.populate(first_name=text.rsplit(u' ', 1)[0],
|
||||||
last_name=text.rsplit(u' ', 1)[1], display_name=text)
|
last_name=text.rsplit(u' ', 1)[1], display_name=text)
|
||||||
self.songmanager.save_object(author, False)
|
self.songmanager.save_object(author)
|
||||||
self.song.authors.append(author)
|
|
||||||
author_item = QtGui.QListWidgetItem(
|
author_item = QtGui.QListWidgetItem(
|
||||||
unicode(author.display_name))
|
unicode(author.display_name))
|
||||||
author_item.setData(QtCore.Qt.UserRole,
|
author_item.setData(QtCore.Qt.UserRole,
|
||||||
|
@ -312,13 +307,13 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
elif item > 0:
|
elif item > 0:
|
||||||
item_id = (self.AuthorsSelectionComboItem.itemData(item)).toInt()[0]
|
item_id = (self.AuthorsSelectionComboItem.itemData(item)).toInt()[0]
|
||||||
author = self.songmanager.get_object(Author, item_id)
|
author = self.songmanager.get_object(Author, item_id)
|
||||||
if author in self.song.authors:
|
if self.AuthorsListView.findItems(unicode(author.display_name),
|
||||||
|
QtCore.Qt.MatchExactly):
|
||||||
QtGui.QMessageBox.warning(self,
|
QtGui.QMessageBox.warning(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Error'),
|
translate('SongsPlugin.EditSongForm', 'Error'),
|
||||||
translate('SongsPlugin.EditSongForm', 'This author is '
|
translate('SongsPlugin.EditSongForm', 'This author is '
|
||||||
'already in the list.'))
|
'already in the list.'))
|
||||||
else:
|
else:
|
||||||
self.song.authors.append(author)
|
|
||||||
author_item = QtGui.QListWidgetItem(unicode(
|
author_item = QtGui.QListWidgetItem(unicode(
|
||||||
author.display_name))
|
author.display_name))
|
||||||
author_item.setData(QtCore.Qt.UserRole,
|
author_item.setData(QtCore.Qt.UserRole,
|
||||||
|
@ -340,9 +335,6 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
def onAuthorRemoveButtonClicked(self):
|
def onAuthorRemoveButtonClicked(self):
|
||||||
self.AuthorRemoveButton.setEnabled(False)
|
self.AuthorRemoveButton.setEnabled(False)
|
||||||
item = self.AuthorsListView.currentItem()
|
item = self.AuthorsListView.currentItem()
|
||||||
author_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
|
|
||||||
author = self.songmanager.get_object(Author, author_id)
|
|
||||||
self.song.authors.remove(author)
|
|
||||||
row = self.AuthorsListView.row(item)
|
row = self.AuthorsListView.row(item)
|
||||||
self.AuthorsListView.takeItem(row)
|
self.AuthorsListView.takeItem(row)
|
||||||
|
|
||||||
|
@ -357,8 +349,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
|
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
|
||||||
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes:
|
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes:
|
||||||
topic = Topic.populate(name=text)
|
topic = Topic.populate(name=text)
|
||||||
self.songmanager.save_object(topic, False)
|
self.songmanager.save_object(topic)
|
||||||
self.song.topics.append(topic)
|
|
||||||
topic_item = QtGui.QListWidgetItem(unicode(topic.name))
|
topic_item = QtGui.QListWidgetItem(unicode(topic.name))
|
||||||
topic_item.setData(QtCore.Qt.UserRole,
|
topic_item.setData(QtCore.Qt.UserRole,
|
||||||
QtCore.QVariant(topic.id))
|
QtCore.QVariant(topic.id))
|
||||||
|
@ -370,13 +361,13 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
elif item > 0:
|
elif item > 0:
|
||||||
item_id = (self.SongTopicCombo.itemData(item)).toInt()[0]
|
item_id = (self.SongTopicCombo.itemData(item)).toInt()[0]
|
||||||
topic = self.songmanager.get_object(Topic, item_id)
|
topic = self.songmanager.get_object(Topic, item_id)
|
||||||
if topic in self.song.topics:
|
if self.TopicsListView.findItems(unicode(topic.name),
|
||||||
|
QtCore.Qt.MatchExactly):
|
||||||
QtGui.QMessageBox.warning(self,
|
QtGui.QMessageBox.warning(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Error'),
|
translate('SongsPlugin.EditSongForm', 'Error'),
|
||||||
translate('SongsPlugin.EditSongForm', 'This topic is '
|
translate('SongsPlugin.EditSongForm', 'This topic is '
|
||||||
'already in the list.'))
|
'already in the list.'))
|
||||||
else:
|
else:
|
||||||
self.song.topics.append(topic)
|
|
||||||
topic_item = QtGui.QListWidgetItem(unicode(topic.name))
|
topic_item = QtGui.QListWidgetItem(unicode(topic.name))
|
||||||
topic_item.setData(QtCore.Qt.UserRole,
|
topic_item.setData(QtCore.Qt.UserRole,
|
||||||
QtCore.QVariant(topic.id))
|
QtCore.QVariant(topic.id))
|
||||||
|
@ -396,27 +387,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
def onTopicRemoveButtonClicked(self):
|
def onTopicRemoveButtonClicked(self):
|
||||||
self.TopicRemoveButton.setEnabled(False)
|
self.TopicRemoveButton.setEnabled(False)
|
||||||
item = self.TopicsListView.currentItem()
|
item = self.TopicsListView.currentItem()
|
||||||
topic_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
|
|
||||||
topic = self.songmanager.get_object(Topic, topic_id)
|
|
||||||
self.song.topics.remove(topic)
|
|
||||||
row = self.TopicsListView.row(item)
|
row = self.TopicsListView.row(item)
|
||||||
self.TopicsListView.takeItem(row)
|
self.TopicsListView.takeItem(row)
|
||||||
|
|
||||||
def onSongBookComboChanged(self, item):
|
|
||||||
if item >= 1:
|
|
||||||
self.song.song_book_id = \
|
|
||||||
(self.SongbookCombo.itemData(item)).toInt()[0]
|
|
||||||
else:
|
|
||||||
self.song.song_book_id = 0
|
|
||||||
|
|
||||||
def onThemeComboChanged(self, item):
|
|
||||||
if item == 0:
|
|
||||||
# None means no Theme
|
|
||||||
self.song.theme_name = None
|
|
||||||
else:
|
|
||||||
them_name = unicode(self.ThemeSelectionComboItem.itemText(item))
|
|
||||||
self.song.theme_name = them_name
|
|
||||||
|
|
||||||
def onVerseListViewPressed(self):
|
def onVerseListViewPressed(self):
|
||||||
self.VerseEditButton.setEnabled(True)
|
self.VerseEditButton.setEnabled(True)
|
||||||
self.VerseDeleteButton.setEnabled(True)
|
self.VerseDeleteButton.setEnabled(True)
|
||||||
|
@ -602,10 +575,17 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
self.CopyrightEditItem.setCursorPosition(pos + 1)
|
self.CopyrightEditItem.setCursorPosition(pos + 1)
|
||||||
|
|
||||||
def onMaintenanceButtonClicked(self):
|
def onMaintenanceButtonClicked(self):
|
||||||
|
temp_song_book = None
|
||||||
|
item = int(self.SongbookCombo.currentIndex())
|
||||||
|
text = unicode(self.SongbookCombo.currentText())
|
||||||
|
if item == 0 and text:
|
||||||
|
temp_song_book = text
|
||||||
self.parent.song_maintenance_form.exec_()
|
self.parent.song_maintenance_form.exec_()
|
||||||
self.loadAuthors()
|
self.loadAuthors()
|
||||||
self.loadBooks()
|
self.loadBooks()
|
||||||
self.loadTopics()
|
self.loadTopics()
|
||||||
|
if temp_song_book:
|
||||||
|
self.SongbookCombo.setEditText(temp_song_book)
|
||||||
|
|
||||||
def onPreview(self, button):
|
def onPreview(self, button):
|
||||||
"""
|
"""
|
||||||
|
@ -622,6 +602,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
log.debug(u'accept')
|
log.debug(u'accept')
|
||||||
|
if not self.song:
|
||||||
|
self.song = Song()
|
||||||
item = int(self.SongbookCombo.currentIndex())
|
item = int(self.SongbookCombo.currentIndex())
|
||||||
text = unicode(self.SongbookCombo.currentText())
|
text = unicode(self.SongbookCombo.currentText())
|
||||||
if item == 0 and text:
|
if item == 0 and text:
|
||||||
|
@ -634,7 +616,6 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
book = Book.populate(name=text, publisher=u'')
|
book = Book.populate(name=text, publisher=u'')
|
||||||
self.songmanager.save_object(book)
|
self.songmanager.save_object(book)
|
||||||
self.song.book = book
|
self.song.book = book
|
||||||
self.loadBooks()
|
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
if self.saveSong():
|
if self.saveSong():
|
||||||
|
@ -650,9 +631,22 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
self.song.comments = unicode(self.CommentsEdit.toPlainText())
|
self.song.comments = unicode(self.CommentsEdit.toPlainText())
|
||||||
self.song.verse_order = unicode(self.VerseOrderEdit.text())
|
self.song.verse_order = unicode(self.VerseOrderEdit.text())
|
||||||
self.song.ccli_number = unicode(self.CCLNumberEdit.text())
|
self.song.ccli_number = unicode(self.CCLNumberEdit.text())
|
||||||
|
self.song.song_number = unicode(self.songBookNumberEdit.text())
|
||||||
if self._validate_song():
|
if self._validate_song():
|
||||||
self.processLyrics()
|
self.processLyrics()
|
||||||
self.processTitle()
|
self.processTitle()
|
||||||
|
self.song.authors = []
|
||||||
|
for row in range(self.AuthorsListView.count()):
|
||||||
|
item = self.AuthorsListView.item(row)
|
||||||
|
authorId = (item.data(QtCore.Qt.UserRole)).toInt()[0]
|
||||||
|
self.song.authors.append(self.songmanager.get_object(Author,
|
||||||
|
authorId))
|
||||||
|
self.song.topics = []
|
||||||
|
for row in range(self.TopicsListView.count()):
|
||||||
|
item = self.TopicsListView.item(row)
|
||||||
|
topicId = (item.data(QtCore.Qt.UserRole)).toInt()[0]
|
||||||
|
self.song.topics.append(self.songmanager.get_object(Topic,
|
||||||
|
topicId))
|
||||||
self.songmanager.save_object(self.song)
|
self.songmanager.save_object(self.song)
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
@ -684,5 +678,5 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
|
|
||||||
def processTitle(self):
|
def processTitle(self):
|
||||||
log.debug(u'processTitle')
|
log.debug(u'processTitle')
|
||||||
self.song.search_title = \
|
self.song.search_title = re.sub(r'[\'"`,;:(){}?]+', u'',
|
||||||
re.sub(r'[\'"`,;:(){}?]+', u'', unicode(self.song.search_title))
|
unicode(self.song.search_title))
|
||||||
|
|
|
@ -31,77 +31,78 @@ from openlp.core.ui import SpellTextEdit
|
||||||
from openlp.plugins.songs.lib import VerseType
|
from openlp.plugins.songs.lib import VerseType
|
||||||
|
|
||||||
class Ui_EditVerseDialog(object):
|
class Ui_EditVerseDialog(object):
|
||||||
def setupUi(self, EditVerseDialog):
|
def setupUi(self, editVerseDialog):
|
||||||
EditVerseDialog.setObjectName(u'EditVerseDialog')
|
editVerseDialog.setObjectName(u'editVerseDialog')
|
||||||
EditVerseDialog.resize(474, 442)
|
editVerseDialog.resize(474, 442)
|
||||||
EditVerseDialog.setModal(True)
|
editVerseDialog.setModal(True)
|
||||||
self.EditVerseLayout = QtGui.QVBoxLayout(EditVerseDialog)
|
self.editVerseLayout = QtGui.QVBoxLayout(editVerseDialog)
|
||||||
self.EditVerseLayout.setSpacing(8)
|
self.editVerseLayout.setSpacing(8)
|
||||||
self.EditVerseLayout.setMargin(8)
|
self.editVerseLayout.setMargin(8)
|
||||||
self.EditVerseLayout.setObjectName(u'EditVerseLayout')
|
self.editVerseLayout.setObjectName(u'editVerseLayout')
|
||||||
self.VerseTextEdit = SpellTextEdit(EditVerseDialog)
|
self.verseTextEdit = SpellTextEdit(editVerseDialog)
|
||||||
self.VerseTextEdit.setObjectName(u'VerseTextEdit')
|
self.verseTextEdit.setObjectName(u'verseTextEdit')
|
||||||
self.EditVerseLayout.addWidget(self.VerseTextEdit)
|
self.editVerseLayout.addWidget(self.verseTextEdit)
|
||||||
self.VerseTypeLayout = QtGui.QHBoxLayout()
|
self.verseTypeLayout = QtGui.QHBoxLayout()
|
||||||
self.VerseTypeLayout.setSpacing(8)
|
self.verseTypeLayout.setSpacing(8)
|
||||||
self.VerseTypeLayout.setObjectName(u'VerseTypeLayout')
|
self.verseTypeLayout.setObjectName(u'verseTypeLayout')
|
||||||
self.VerseTypeLabel = QtGui.QLabel(EditVerseDialog)
|
self.verseTypeLabel = QtGui.QLabel(editVerseDialog)
|
||||||
self.VerseTypeLabel.setObjectName(u'VerseTypeLabel')
|
self.verseTypeLabel.setObjectName(u'verseTypeLabel')
|
||||||
self.VerseTypeLayout.addWidget(self.VerseTypeLabel)
|
self.verseTypeLayout.addWidget(self.verseTypeLabel)
|
||||||
self.VerseTypeComboBox = QtGui.QComboBox(EditVerseDialog)
|
self.verseTypeComboBox = QtGui.QComboBox(editVerseDialog)
|
||||||
self.VerseTypeComboBox.setObjectName(u'VerseTypeComboBox')
|
self.verseTypeComboBox.setObjectName(u'verseTypeComboBox')
|
||||||
self.VerseTypeComboBox.addItem(u'')
|
self.verseTypeLabel.setBuddy(self.verseTypeComboBox)
|
||||||
self.VerseTypeComboBox.addItem(u'')
|
self.verseTypeComboBox.addItem(u'')
|
||||||
self.VerseTypeComboBox.addItem(u'')
|
self.verseTypeComboBox.addItem(u'')
|
||||||
self.VerseTypeComboBox.addItem(u'')
|
self.verseTypeComboBox.addItem(u'')
|
||||||
self.VerseTypeComboBox.addItem(u'')
|
self.verseTypeComboBox.addItem(u'')
|
||||||
self.VerseTypeComboBox.addItem(u'')
|
self.verseTypeComboBox.addItem(u'')
|
||||||
self.VerseTypeComboBox.addItem(u'')
|
self.verseTypeComboBox.addItem(u'')
|
||||||
self.VerseTypeLayout.addWidget(self.VerseTypeComboBox)
|
self.verseTypeComboBox.addItem(u'')
|
||||||
self.VerseNumberBox = QtGui.QSpinBox(EditVerseDialog)
|
self.verseTypeLayout.addWidget(self.verseTypeComboBox)
|
||||||
self.VerseNumberBox.setMinimum(1)
|
self.verseNumberBox = QtGui.QSpinBox(editVerseDialog)
|
||||||
self.VerseNumberBox.setObjectName(u'VerseNumberBox')
|
self.verseNumberBox.setMinimum(1)
|
||||||
self.VerseTypeLayout.addWidget(self.VerseNumberBox)
|
self.verseNumberBox.setObjectName(u'verseNumberBox')
|
||||||
self.InsertButton = QtGui.QPushButton(EditVerseDialog)
|
self.verseTypeLayout.addWidget(self.verseNumberBox)
|
||||||
self.InsertButton.setIcon(build_icon(u':/general/general_add.png'))
|
self.insertButton = QtGui.QPushButton(editVerseDialog)
|
||||||
self.InsertButton.setObjectName(u'InsertButton')
|
self.insertButton.setIcon(build_icon(u':/general/general_add.png'))
|
||||||
self.VerseTypeLayout.addWidget(self.InsertButton)
|
self.insertButton.setObjectName(u'insertButton')
|
||||||
self.VerseTypeSpacer = QtGui.QSpacerItem(40, 20,
|
self.verseTypeLayout.addWidget(self.insertButton)
|
||||||
|
self.verseTypeSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.VerseTypeLayout.addItem(self.VerseTypeSpacer)
|
self.verseTypeLayout.addItem(self.verseTypeSpacer)
|
||||||
self.EditVerseLayout.addLayout(self.VerseTypeLayout)
|
self.editVerseLayout.addLayout(self.verseTypeLayout)
|
||||||
self.EditButtonBox = QtGui.QDialogButtonBox(EditVerseDialog)
|
self.editButtonBox = QtGui.QDialogButtonBox(editVerseDialog)
|
||||||
self.EditButtonBox.setOrientation(QtCore.Qt.Horizontal)
|
self.editButtonBox.setOrientation(QtCore.Qt.Horizontal)
|
||||||
self.EditButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel |
|
self.editButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel |
|
||||||
QtGui.QDialogButtonBox.Save)
|
QtGui.QDialogButtonBox.Save)
|
||||||
self.EditButtonBox.setObjectName(u'EditButtonBox')
|
self.editButtonBox.setObjectName(u'editButtonBox')
|
||||||
self.EditVerseLayout.addWidget(self.EditButtonBox)
|
self.editVerseLayout.addWidget(self.editButtonBox)
|
||||||
|
|
||||||
self.retranslateUi(EditVerseDialog)
|
self.retranslateUi(editVerseDialog)
|
||||||
QtCore.QObject.connect(self.EditButtonBox, QtCore.SIGNAL(u'accepted()'),
|
QtCore.QObject.connect(self.editButtonBox, QtCore.SIGNAL(u'accepted()'),
|
||||||
EditVerseDialog.accept)
|
editVerseDialog.accept)
|
||||||
QtCore.QObject.connect(self.EditButtonBox, QtCore.SIGNAL(u'rejected()'),
|
QtCore.QObject.connect(self.editButtonBox, QtCore.SIGNAL(u'rejected()'),
|
||||||
EditVerseDialog.reject)
|
editVerseDialog.reject)
|
||||||
QtCore.QMetaObject.connectSlotsByName(EditVerseDialog)
|
QtCore.QMetaObject.connectSlotsByName(editVerseDialog)
|
||||||
|
|
||||||
def retranslateUi(self, EditVerseDialog):
|
def retranslateUi(self, editVerseDialog):
|
||||||
EditVerseDialog.setWindowTitle(
|
editVerseDialog.setWindowTitle(
|
||||||
translate('SongsPlugin.EditVerseForm', 'Edit Verse'))
|
translate('SongsPlugin.EditVerseForm', 'Edit Verse'))
|
||||||
self.VerseTypeLabel.setText(
|
self.verseTypeLabel.setText(
|
||||||
translate('SongsPlugin.EditVerseForm', '&Verse type:'))
|
translate('SongsPlugin.EditVerseForm', '&Verse type:'))
|
||||||
self.VerseTypeComboBox.setItemText(0,
|
self.verseTypeComboBox.setItemText(0,
|
||||||
VerseType.to_string(VerseType.Verse))
|
VerseType.to_string(VerseType.Verse))
|
||||||
self.VerseTypeComboBox.setItemText(1,
|
self.verseTypeComboBox.setItemText(1,
|
||||||
VerseType.to_string(VerseType.Chorus))
|
VerseType.to_string(VerseType.Chorus))
|
||||||
self.VerseTypeComboBox.setItemText(2,
|
self.verseTypeComboBox.setItemText(2,
|
||||||
VerseType.to_string(VerseType.Bridge))
|
VerseType.to_string(VerseType.Bridge))
|
||||||
self.VerseTypeComboBox.setItemText(3,
|
self.verseTypeComboBox.setItemText(3,
|
||||||
VerseType.to_string(VerseType.PreChorus))
|
VerseType.to_string(VerseType.PreChorus))
|
||||||
self.VerseTypeComboBox.setItemText(4,
|
self.verseTypeComboBox.setItemText(4,
|
||||||
VerseType.to_string(VerseType.Intro))
|
VerseType.to_string(VerseType.Intro))
|
||||||
self.VerseTypeComboBox.setItemText(5,
|
self.verseTypeComboBox.setItemText(5,
|
||||||
VerseType.to_string(VerseType.Ending))
|
VerseType.to_string(VerseType.Ending))
|
||||||
self.VerseTypeComboBox.setItemText(6,
|
self.verseTypeComboBox.setItemText(6,
|
||||||
VerseType.to_string(VerseType.Other))
|
VerseType.to_string(VerseType.Other))
|
||||||
self.InsertButton.setText(
|
self.insertButton.setText(
|
||||||
translate('SongsPlugin.EditVerseForm', '&Insert'))
|
translate('SongsPlugin.EditVerseForm', '&Insert'))
|
||||||
|
|
|
@ -45,19 +45,14 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog):
|
||||||
"""
|
"""
|
||||||
QtGui.QDialog.__init__(self, parent)
|
QtGui.QDialog.__init__(self, parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
QtCore.QObject.connect(self.VerseTextEdit,
|
QtCore.QObject.connect(self.verseTextEdit,
|
||||||
QtCore.SIGNAL('customContextMenuRequested(QPoint)'),
|
QtCore.SIGNAL('customContextMenuRequested(QPoint)'),
|
||||||
self.contextMenu)
|
self.contextMenu)
|
||||||
QtCore.QObject.connect(
|
QtCore.QObject.connect(self.insertButton, QtCore.SIGNAL(u'clicked()'),
|
||||||
self.InsertButton,
|
self.onInsertButtonClicked)
|
||||||
QtCore.SIGNAL(u'clicked()'),
|
QtCore.QObject.connect(self.verseTextEdit,
|
||||||
self.onInsertButtonClicked
|
|
||||||
)
|
|
||||||
QtCore.QObject.connect(
|
|
||||||
self.VerseTextEdit,
|
|
||||||
QtCore.SIGNAL(u'cursorPositionChanged()'),
|
QtCore.SIGNAL(u'cursorPositionChanged()'),
|
||||||
self.onCursorPositionChanged
|
self.onCursorPositionChanged)
|
||||||
)
|
|
||||||
self.verse_regex = re.compile(r'---\[([-\w]+):([\d]+)\]---')
|
self.verse_regex = re.compile(r'---\[([-\w]+):([\d]+)\]---')
|
||||||
|
|
||||||
def contextMenu(self, point):
|
def contextMenu(self, point):
|
||||||
|
@ -65,21 +60,21 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog):
|
||||||
print item
|
print item
|
||||||
|
|
||||||
def insertVerse(self, title, num=1):
|
def insertVerse(self, title, num=1):
|
||||||
if self.VerseTextEdit.textCursor().columnNumber() != 0:
|
if self.verseTextEdit.textCursor().columnNumber() != 0:
|
||||||
self.VerseTextEdit.insertPlainText(u'\n')
|
self.verseTextEdit.insertPlainText(u'\n')
|
||||||
self.VerseTextEdit.insertPlainText(u'---[%s:%s]---\n' % (title, num))
|
self.verseTextEdit.insertPlainText(u'---[%s:%s]---\n' % (title, num))
|
||||||
self.VerseTextEdit.setFocus()
|
self.verseTextEdit.setFocus()
|
||||||
|
|
||||||
def onInsertButtonClicked(self):
|
def onInsertButtonClicked(self):
|
||||||
if self.VerseTextEdit.textCursor().columnNumber() != 0:
|
if self.verseTextEdit.textCursor().columnNumber() != 0:
|
||||||
self.VerseTextEdit.insertPlainText(u'\n')
|
self.verseTextEdit.insertPlainText(u'\n')
|
||||||
verse_type = self.VerseTypeComboBox.currentIndex()
|
verse_type = self.verseTypeComboBox.currentIndex()
|
||||||
if verse_type == VerseType.Verse:
|
if verse_type == VerseType.Verse:
|
||||||
self.insertVerse(VerseType.to_string(VerseType.Verse),
|
self.insertVerse(VerseType.to_string(VerseType.Verse),
|
||||||
self.VerseNumberBox.value())
|
self.verseNumberBox.value())
|
||||||
elif verse_type == VerseType.Chorus:
|
elif verse_type == VerseType.Chorus:
|
||||||
self.insertVerse(VerseType.to_string(VerseType.Chorus),
|
self.insertVerse(VerseType.to_string(VerseType.Chorus),
|
||||||
self.VerseNumberBox.value())
|
self.verseNumberBox.value())
|
||||||
elif verse_type == VerseType.Bridge:
|
elif verse_type == VerseType.Bridge:
|
||||||
self.insertVerse(VerseType.to_string(VerseType.Bridge))
|
self.insertVerse(VerseType.to_string(VerseType.Bridge))
|
||||||
elif verse_type == VerseType.PreChorus:
|
elif verse_type == VerseType.PreChorus:
|
||||||
|
@ -92,8 +87,8 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog):
|
||||||
self.insertVerse(VerseType.to_string(VerseType.Other))
|
self.insertVerse(VerseType.to_string(VerseType.Other))
|
||||||
|
|
||||||
def onCursorPositionChanged(self):
|
def onCursorPositionChanged(self):
|
||||||
position = self.VerseTextEdit.textCursor().position()
|
position = self.verseTextEdit.textCursor().position()
|
||||||
text = unicode(self.VerseTextEdit.toPlainText())
|
text = unicode(self.verseTextEdit.toPlainText())
|
||||||
if not text:
|
if not text:
|
||||||
return
|
return
|
||||||
if text.rfind(u'[', 0, position) > text.rfind(u']', 0, position) and \
|
if text.rfind(u'[', 0, position) > text.rfind(u']', 0, position) and \
|
||||||
|
@ -113,8 +108,8 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog):
|
||||||
verse_number = int(match.group(2))
|
verse_number = int(match.group(2))
|
||||||
verse_type_index = VerseType.from_string(verse_type)
|
verse_type_index = VerseType.from_string(verse_type)
|
||||||
if verse_type_index is not None:
|
if verse_type_index is not None:
|
||||||
self.VerseTypeComboBox.setCurrentIndex(verse_type_index)
|
self.verseTypeComboBox.setCurrentIndex(verse_type_index)
|
||||||
self.VerseNumberBox.setValue(verse_number)
|
self.verseNumberBox.setValue(verse_number)
|
||||||
|
|
||||||
def setVerse(self, text, single=False,
|
def setVerse(self, text, single=False,
|
||||||
tag=u'%s:1' % VerseType.to_string(VerseType.Verse)):
|
tag=u'%s:1' % VerseType.to_string(VerseType.Verse)):
|
||||||
|
@ -122,26 +117,26 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog):
|
||||||
verse_type, verse_number = tag.split(u':')
|
verse_type, verse_number = tag.split(u':')
|
||||||
verse_type_index = VerseType.from_string(verse_type)
|
verse_type_index = VerseType.from_string(verse_type)
|
||||||
if verse_type_index is not None:
|
if verse_type_index is not None:
|
||||||
self.VerseTypeComboBox.setCurrentIndex(verse_type_index)
|
self.verseTypeComboBox.setCurrentIndex(verse_type_index)
|
||||||
self.VerseNumberBox.setValue(int(verse_number))
|
self.verseNumberBox.setValue(int(verse_number))
|
||||||
self.InsertButton.setVisible(False)
|
self.insertButton.setVisible(False)
|
||||||
else:
|
else:
|
||||||
if not text:
|
if not text:
|
||||||
text = u'---[%s:1]---\n' % VerseType.to_string(VerseType.Verse)
|
text = u'---[%s:1]---\n' % VerseType.to_string(VerseType.Verse)
|
||||||
self.VerseTypeComboBox.setCurrentIndex(0)
|
self.verseTypeComboBox.setCurrentIndex(0)
|
||||||
self.VerseNumberBox.setValue(1)
|
self.verseNumberBox.setValue(1)
|
||||||
self.InsertButton.setVisible(True)
|
self.insertButton.setVisible(True)
|
||||||
self.VerseTextEdit.setPlainText(text)
|
self.verseTextEdit.setPlainText(text)
|
||||||
self.VerseTextEdit.setFocus(QtCore.Qt.OtherFocusReason)
|
self.verseTextEdit.setFocus(QtCore.Qt.OtherFocusReason)
|
||||||
self.VerseTextEdit.moveCursor(QtGui.QTextCursor.End)
|
self.verseTextEdit.moveCursor(QtGui.QTextCursor.End)
|
||||||
|
|
||||||
def getVerse(self):
|
def getVerse(self):
|
||||||
return self.VerseTextEdit.toPlainText(), \
|
return self.verseTextEdit.toPlainText(), \
|
||||||
VerseType.to_string(self.VerseTypeComboBox.currentIndex()), \
|
VerseType.to_string(self.verseTypeComboBox.currentIndex()), \
|
||||||
unicode(self.VerseNumberBox.value())
|
unicode(self.verseNumberBox.value())
|
||||||
|
|
||||||
def getVerseAll(self):
|
def getVerseAll(self):
|
||||||
text = self.VerseTextEdit.toPlainText()
|
text = self.verseTextEdit.toPlainText()
|
||||||
if not text.startsWith(u'---['):
|
if not text.startsWith(u'---['):
|
||||||
text = u'---[%s:1]---\n%s' % (VerseType.to_string(VerseType.Verse),
|
text = u'---[%s:1]---\n%s' % (VerseType.to_string(VerseType.Verse),
|
||||||
text)
|
text)
|
||||||
|
|
|
@ -215,25 +215,32 @@ class Ui_SongImportWizard(object):
|
||||||
self.wordsOfWorshipLayout.setSpacing(8)
|
self.wordsOfWorshipLayout.setSpacing(8)
|
||||||
self.wordsOfWorshipLayout.setMargin(0)
|
self.wordsOfWorshipLayout.setMargin(0)
|
||||||
self.wordsOfWorshipLayout.setObjectName(u'wordsOfWorshipLayout')
|
self.wordsOfWorshipLayout.setObjectName(u'wordsOfWorshipLayout')
|
||||||
self.wordsOfWorshipFileListWidget = QtGui.QListWidget(self.wordsOfWorshipPage)
|
self.wordsOfWorshipFileListWidget = QtGui.QListWidget(
|
||||||
|
self.wordsOfWorshipPage)
|
||||||
self.wordsOfWorshipFileListWidget.setSelectionMode(
|
self.wordsOfWorshipFileListWidget.setSelectionMode(
|
||||||
QtGui.QAbstractItemView.ExtendedSelection)
|
QtGui.QAbstractItemView.ExtendedSelection)
|
||||||
self.wordsOfWorshipFileListWidget.setObjectName(u'wordsOfWorshipFileListWidget')
|
self.wordsOfWorshipFileListWidget.setObjectName(
|
||||||
|
u'wordsOfWorshipFileListWidget')
|
||||||
self.wordsOfWorshipLayout.addWidget(self.wordsOfWorshipFileListWidget)
|
self.wordsOfWorshipLayout.addWidget(self.wordsOfWorshipFileListWidget)
|
||||||
self.wordsOfWorshipButtonLayout = QtGui.QHBoxLayout()
|
self.wordsOfWorshipButtonLayout = QtGui.QHBoxLayout()
|
||||||
self.wordsOfWorshipButtonLayout.setSpacing(8)
|
self.wordsOfWorshipButtonLayout.setSpacing(8)
|
||||||
self.wordsOfWorshipButtonLayout.setObjectName(u'wordsOfWorshipButtonLayout')
|
self.wordsOfWorshipButtonLayout.setObjectName(
|
||||||
self.wordsOfWorshipAddButton = QtGui.QPushButton(self.wordsOfWorshipPage)
|
u'wordsOfWorshipButtonLayout')
|
||||||
|
self.wordsOfWorshipAddButton = QtGui.QPushButton(
|
||||||
|
self.wordsOfWorshipPage)
|
||||||
self.wordsOfWorshipAddButton.setIcon(openIcon)
|
self.wordsOfWorshipAddButton.setIcon(openIcon)
|
||||||
self.wordsOfWorshipAddButton.setObjectName(u'wordsOfWorshipAddButton')
|
self.wordsOfWorshipAddButton.setObjectName(u'wordsOfWorshipAddButton')
|
||||||
self.wordsOfWorshipButtonLayout.addWidget(self.wordsOfWorshipAddButton)
|
self.wordsOfWorshipButtonLayout.addWidget(self.wordsOfWorshipAddButton)
|
||||||
self.wordsOfWorshipButtonSpacer = QtGui.QSpacerItem(40, 20,
|
self.wordsOfWorshipButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.wordsOfWorshipButtonLayout.addItem(self.wordsOfWorshipButtonSpacer)
|
self.wordsOfWorshipButtonLayout.addItem(self.wordsOfWorshipButtonSpacer)
|
||||||
self.wordsOfWorshipRemoveButton = QtGui.QPushButton(self.wordsOfWorshipPage)
|
self.wordsOfWorshipRemoveButton = QtGui.QPushButton(
|
||||||
|
self.wordsOfWorshipPage)
|
||||||
self.wordsOfWorshipRemoveButton.setIcon(deleteIcon)
|
self.wordsOfWorshipRemoveButton.setIcon(deleteIcon)
|
||||||
self.wordsOfWorshipRemoveButton.setObjectName(u'wordsOfWorshipRemoveButton')
|
self.wordsOfWorshipRemoveButton.setObjectName(
|
||||||
self.wordsOfWorshipButtonLayout.addWidget(self.wordsOfWorshipRemoveButton)
|
u'wordsOfWorshipRemoveButton')
|
||||||
|
self.wordsOfWorshipButtonLayout.addWidget(
|
||||||
|
self.wordsOfWorshipRemoveButton)
|
||||||
self.wordsOfWorshipLayout.addLayout(self.wordsOfWorshipButtonLayout)
|
self.wordsOfWorshipLayout.addLayout(self.wordsOfWorshipButtonLayout)
|
||||||
self.formatStackedWidget.addWidget(self.wordsOfWorshipPage)
|
self.formatStackedWidget.addWidget(self.wordsOfWorshipPage)
|
||||||
# CCLI File import
|
# CCLI File import
|
||||||
|
@ -267,30 +274,43 @@ class Ui_SongImportWizard(object):
|
||||||
# Songs of Fellowship
|
# Songs of Fellowship
|
||||||
self.songsOfFellowshipPage = QtGui.QWidget()
|
self.songsOfFellowshipPage = QtGui.QWidget()
|
||||||
self.songsOfFellowshipPage.setObjectName(u'songsOfFellowshipPage')
|
self.songsOfFellowshipPage.setObjectName(u'songsOfFellowshipPage')
|
||||||
self.songsOfFellowshipLayout = QtGui.QVBoxLayout(self.songsOfFellowshipPage)
|
self.songsOfFellowshipLayout = QtGui.QVBoxLayout(
|
||||||
|
self.songsOfFellowshipPage)
|
||||||
self.songsOfFellowshipLayout.setMargin(0)
|
self.songsOfFellowshipLayout.setMargin(0)
|
||||||
self.songsOfFellowshipLayout.setSpacing(8)
|
self.songsOfFellowshipLayout.setSpacing(8)
|
||||||
self.songsOfFellowshipLayout.setObjectName(u'songsOfFellowshipLayout')
|
self.songsOfFellowshipLayout.setObjectName(u'songsOfFellowshipLayout')
|
||||||
self.songsOfFellowshipFileListWidget = QtGui.QListWidget(self.songsOfFellowshipPage)
|
self.songsOfFellowshipFileListWidget = QtGui.QListWidget(
|
||||||
|
self.songsOfFellowshipPage)
|
||||||
self.songsOfFellowshipFileListWidget.setSelectionMode(
|
self.songsOfFellowshipFileListWidget.setSelectionMode(
|
||||||
QtGui.QAbstractItemView.ExtendedSelection)
|
QtGui.QAbstractItemView.ExtendedSelection)
|
||||||
self.songsOfFellowshipFileListWidget.setObjectName(u'songsOfFellowshipFileListWidget')
|
self.songsOfFellowshipFileListWidget.setObjectName(
|
||||||
self.songsOfFellowshipLayout.addWidget(self.songsOfFellowshipFileListWidget)
|
u'songsOfFellowshipFileListWidget')
|
||||||
|
self.songsOfFellowshipLayout.addWidget(
|
||||||
|
self.songsOfFellowshipFileListWidget)
|
||||||
self.songsOfFellowshipButtonLayout = QtGui.QHBoxLayout()
|
self.songsOfFellowshipButtonLayout = QtGui.QHBoxLayout()
|
||||||
self.songsOfFellowshipButtonLayout.setSpacing(8)
|
self.songsOfFellowshipButtonLayout.setSpacing(8)
|
||||||
self.songsOfFellowshipButtonLayout.setObjectName(u'songsOfFellowshipButtonLayout')
|
self.songsOfFellowshipButtonLayout.setObjectName(
|
||||||
self.songsOfFellowshipAddButton = QtGui.QPushButton(self.songsOfFellowshipPage)
|
u'songsOfFellowshipButtonLayout')
|
||||||
|
self.songsOfFellowshipAddButton = QtGui.QPushButton(
|
||||||
|
self.songsOfFellowshipPage)
|
||||||
self.songsOfFellowshipAddButton.setIcon(openIcon)
|
self.songsOfFellowshipAddButton.setIcon(openIcon)
|
||||||
self.songsOfFellowshipAddButton.setObjectName(u'songsOfFellowshipAddButton')
|
self.songsOfFellowshipAddButton.setObjectName(
|
||||||
self.songsOfFellowshipButtonLayout.addWidget(self.songsOfFellowshipAddButton)
|
u'songsOfFellowshipAddButton')
|
||||||
|
self.songsOfFellowshipButtonLayout.addWidget(
|
||||||
|
self.songsOfFellowshipAddButton)
|
||||||
self.songsOfFellowshipButtonSpacer = QtGui.QSpacerItem(40, 20,
|
self.songsOfFellowshipButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.songsOfFellowshipButtonLayout.addItem(self.songsOfFellowshipButtonSpacer)
|
self.songsOfFellowshipButtonLayout.addItem(
|
||||||
self.songsOfFellowshipRemoveButton = QtGui.QPushButton(self.songsOfFellowshipPage)
|
self.songsOfFellowshipButtonSpacer)
|
||||||
|
self.songsOfFellowshipRemoveButton = QtGui.QPushButton(
|
||||||
|
self.songsOfFellowshipPage)
|
||||||
self.songsOfFellowshipRemoveButton.setIcon(deleteIcon)
|
self.songsOfFellowshipRemoveButton.setIcon(deleteIcon)
|
||||||
self.songsOfFellowshipRemoveButton.setObjectName(u'songsOfFellowshipRemoveButton')
|
self.songsOfFellowshipRemoveButton.setObjectName(
|
||||||
self.songsOfFellowshipButtonLayout.addWidget(self.songsOfFellowshipRemoveButton)
|
u'songsOfFellowshipRemoveButton')
|
||||||
self.songsOfFellowshipLayout.addLayout(self.songsOfFellowshipButtonLayout)
|
self.songsOfFellowshipButtonLayout.addWidget(
|
||||||
|
self.songsOfFellowshipRemoveButton)
|
||||||
|
self.songsOfFellowshipLayout.addLayout(
|
||||||
|
self.songsOfFellowshipButtonLayout)
|
||||||
self.formatStackedWidget.addWidget(self.songsOfFellowshipPage)
|
self.formatStackedWidget.addWidget(self.songsOfFellowshipPage)
|
||||||
# Generic Document/Presentation import
|
# Generic Document/Presentation import
|
||||||
self.genericPage = QtGui.QWidget()
|
self.genericPage = QtGui.QWidget()
|
||||||
|
|
|
@ -404,12 +404,12 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog):
|
||||||
book.publisher = temp_publisher
|
book.publisher = temp_publisher
|
||||||
|
|
||||||
def mergeAuthors(self, old_author):
|
def mergeAuthors(self, old_author):
|
||||||
'''
|
"""
|
||||||
Merges two authors into one author.
|
Merges two authors into one author.
|
||||||
|
|
||||||
``old_author``
|
``old_author``
|
||||||
The author which will be deleted afterwards.
|
The author which will be deleted afterwards.
|
||||||
'''
|
"""
|
||||||
existing_author = self.songmanager.get_object_filtered(Author,
|
existing_author = self.songmanager.get_object_filtered(Author,
|
||||||
and_(Author.first_name == old_author.first_name,
|
and_(Author.first_name == old_author.first_name,
|
||||||
Author.last_name == old_author.last_name,
|
Author.last_name == old_author.last_name,
|
||||||
|
@ -426,12 +426,12 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog):
|
||||||
self.songmanager.delete_object(Author, old_author.id)
|
self.songmanager.delete_object(Author, old_author.id)
|
||||||
|
|
||||||
def mergeTopics(self, old_topic):
|
def mergeTopics(self, old_topic):
|
||||||
'''
|
"""
|
||||||
Merges two topics into one topic.
|
Merges two topics into one topic.
|
||||||
|
|
||||||
``old_topic``
|
``old_topic``
|
||||||
The topic which will be deleted afterwards.
|
The topic which will be deleted afterwards.
|
||||||
'''
|
"""
|
||||||
existing_topic = self.songmanager.get_object_filtered(Topic,
|
existing_topic = self.songmanager.get_object_filtered(Topic,
|
||||||
Topic.name == old_topic.name)
|
Topic.name == old_topic.name)
|
||||||
songs = self.songmanager.get_all_objects(Song,
|
songs = self.songmanager.get_all_objects(Song,
|
||||||
|
@ -446,12 +446,12 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog):
|
||||||
self.songmanager.delete_object(Topic, old_topic.id)
|
self.songmanager.delete_object(Topic, old_topic.id)
|
||||||
|
|
||||||
def mergeBooks(self, old_book):
|
def mergeBooks(self, old_book):
|
||||||
'''
|
"""
|
||||||
Merges two books into one book.
|
Merges two books into one book.
|
||||||
|
|
||||||
``old_book``
|
``old_book``
|
||||||
The book which will be deleted afterwards.
|
The book which will be deleted afterwards.
|
||||||
'''
|
"""
|
||||||
existing_book = self.songmanager.get_object_filtered(Book,
|
existing_book = self.songmanager.get_object_filtered(Book,
|
||||||
and_(Book.name == old_book.name,
|
and_(Book.name == old_book.name,
|
||||||
Book.publisher == old_book.publisher))
|
Book.publisher == old_book.publisher))
|
||||||
|
|
|
@ -72,7 +72,7 @@ def init_schema(url):
|
||||||
``url``
|
``url``
|
||||||
The database to setup
|
The database to setup
|
||||||
"""
|
"""
|
||||||
session, metadata = init_db(url, auto_flush=False)
|
session, metadata = init_db(url)
|
||||||
|
|
||||||
# Definition of the "authors" table
|
# Definition of the "authors" table
|
||||||
authors_table = Table(u'authors', metadata,
|
authors_table = Table(u'authors', metadata,
|
||||||
|
|
Loading…
Reference in New Issue