Amended plugin to use correct stat values

Fixed bible media item to initialise in correct order
Fixed servicemanager to use correct methods on service loading
Sorted out lots of issues tagging the song verses
This commit is contained in:
Tim Bentley 2009-11-27 21:54:37 +00:00
parent 8dc0742e1e
commit ab5b0ee0d5
9 changed files with 178 additions and 160 deletions

View File

@ -31,9 +31,9 @@ class PluginStatus(object):
"""
Defines the status of the plugin
"""
Active = 0
Inactive = 1
Disabled = 2
Active = 1
Inactive = 0
Disabled = -1
class Plugin(QtCore.QObject):
"""

View File

@ -26,7 +26,7 @@ import logging
import os
from PyQt4 import QtCore, QtGui
from PyQt4.phonon import Phonon
#from PyQt4.phonon import Phonon
from openlp.core.lib import Receiver
@ -92,13 +92,13 @@ class MainDisplay(DisplayWidget):
self.layout.setSpacing(0)
self.layout.setMargin(0)
self.layout.setObjectName(u'layout')
self.mediaObject = Phonon.MediaObject(self)
self.video = Phonon.VideoWidget()
self.video.setVisible(False)
self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self.mediaObject)
Phonon.createPath(self.mediaObject, self.video)
Phonon.createPath(self.mediaObject, self.audio)
self.layout.insertWidget(0, self.video)
#self.mediaObject = Phonon.MediaObject(self)
#self.video = Phonon.VideoWidget()
#self.video.setVisible(False)
#self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self.mediaObject)
#Phonon.createPath(self.mediaObject, self.video)
#Phonon.createPath(self.mediaObject, self.audio)
#self.layout.insertWidget(0, self.video)
self.display = QtGui.QLabel(self)
self.display.setScaledContents(True)
self.layout.insertWidget(0, self.display)
@ -116,16 +116,16 @@ class MainDisplay(DisplayWidget):
QtCore.SIGNAL(u'live_slide_hide'), self.hideDisplay)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'live_slide_show'), self.showDisplay)
QtCore.QObject.connect(self.mediaObject,
QtCore.SIGNAL(u'finished()'), self.onMediaFinish)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'media_start'), self.onMediaQueue)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'media_play'), self.onMediaPlay)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'media_pause'), self.onMediaPaws)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'media_stop'), self.onMediaStop)
# QtCore.QObject.connect(self.mediaObject,
# QtCore.SIGNAL(u'finished()'), self.onMediaFinish)
# QtCore.QObject.connect(Receiver.get_receiver(),
# QtCore.SIGNAL(u'media_start'), self.onMediaQueue)
# QtCore.QObject.connect(Receiver.get_receiver(),
# QtCore.SIGNAL(u'media_play'), self.onMediaPlay)
# QtCore.QObject.connect(Receiver.get_receiver(),
# QtCore.SIGNAL(u'media_pause'), self.onMediaPaws)
# QtCore.QObject.connect(Receiver.get_receiver(),
# QtCore.SIGNAL(u'media_stop'), self.onMediaStop)
def setup(self, screenNumber):
"""

View File

@ -86,7 +86,10 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog):
self.VersionNumberLabel.setText(self.activePlugin.version)
self.AboutTextBrowser.setHtml(self.activePlugin.about())
self.programaticChange = True
self.StatusComboBox.setCurrentIndex(int(self.activePlugin.status))
status = 1
if self.activePlugin.status == PluginStatus.Active:
status = 0
self.StatusComboBox.setCurrentIndex(status)
self.StatusComboBox.setEnabled(True)
self.programaticChange = False
@ -108,10 +111,11 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog):
def onStatusComboBoxChanged(self, status):
if self.programaticChange:
return
self.activePlugin.toggle_status(status)
if status == PluginStatus.Active:
if status == 0:
self.activePlugin.toggle_status(PluginStatus.Active)
self.activePlugin.initialise()
else:
self.activePlugin.toggle_status(PluginStatus.Inactive)
self.activePlugin.finalise()
status_text = 'Inactive'
if self.activePlugin.status == PluginStatus.Active:

View File

@ -26,7 +26,7 @@ import time
import os
from PyQt4 import QtCore, QtGui
from PyQt4.phonon import Phonon
#from PyQt4.phonon import Phonon
from openlp.core.lib import OpenLPToolbar, Receiver, str_to_bool, PluginConfig
@ -197,11 +197,11 @@ class SlideController(QtGui.QWidget):
self.Mediabar.addToolbarButton(
u'Media Stop', u':/slides/media_playback_stop.png',
self.trUtf8(u'Start playing media'), self.onMediaStop)
self.volumeSlider = Phonon.VolumeSlider()
self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24))
self.volumeSlider.setObjectName(u'volumeSlider')
self.Mediabar.addToolbarWidget(
u'Audio Volume', self.volumeSlider)
#self.volumeSlider = Phonon.VolumeSlider()
#self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24))
#self.volumeSlider.setObjectName(u'volumeSlider')
#self.Mediabar.addToolbarWidget(
# u'Audio Volume', self.volumeSlider)
self.ControllerLayout.addWidget(self.Mediabar)
# Build the Song Toolbar
if isLive:
@ -236,13 +236,13 @@ class SlideController(QtGui.QWidget):
self.SlideLayout.setSpacing(0)
self.SlideLayout.setMargin(0)
self.SlideLayout.setObjectName(u'SlideLayout')
self.mediaObject = Phonon.MediaObject(self)
self.video = Phonon.VideoWidget()
self.video.setVisible(False)
self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self.mediaObject)
Phonon.createPath(self.mediaObject, self.video)
Phonon.createPath(self.mediaObject, self.audio)
self.SlideLayout.insertWidget(0, self.video)
# self.mediaObject = Phonon.MediaObject(self)
#self.video = Phonon.VideoWidget()
#self.video.setVisible(False)
#self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self.mediaObject)
#Phonon.createPath(self.mediaObject, self.video)
#Phonon.createPath(self.mediaObject, self.audio)
#self.SlideLayout.insertWidget(0, self.video)
# Actual preview screen
self.SlidePreview = QtGui.QLabel(self)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,

View File

@ -276,8 +276,8 @@ class BibleMediaItem(MediaManagerItem):
def initialise(self):
log.debug(u'bible manager initialise')
self.loadBibles()
self.parent.biblemanager.media = self
self.loadBibles()
self.configUpdated()
log.debug(u'bible manager initialise complete')

View File

@ -218,10 +218,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
songXML = SongXMLParser(self.song.lyrics)
verseList = songXML.get_verses()
for verse in verseList:
if verse[0][u'type'] == u'Verse':
variant = verse[0][u'label']
else:
variant = verse[0][u'type']
variant = u'%s:%s' % (verse[0][u'type'], verse[0][u'label'])
item = QtGui.QListWidgetItem(verse[1])
item.setData(QtCore.Qt.UserRole, QtCore.QVariant(variant))
self.VerseListWidget.addItem(item)
@ -328,7 +325,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
self.verse_form.setVerse(tempText, True, verseId)
self.verse_form.exec_()
afterText, verse, subVerse = self.verse_form.getVerse()
data = u'%s%s' %(verse , subVerse)
data = u'%s:%s' %(verse , subVerse)
item.setData(QtCore.Qt.UserRole, QtCore.QVariant(data))
item.setText(afterText)
#number of lines has change
@ -349,9 +346,6 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
for row in range(0, self.VerseListWidget.count()):
item = self.VerseListWidget.item(row)
field = unicode((item.data(QtCore.Qt.UserRole)).toString())
if len(field) <= 2:
verse_list += u'---[v%s]---\n' % field
else:
verse_list += u'---[%s]---\n' % field
verse_list += item.text()
verse_list += u'\n'
@ -477,15 +471,10 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
text = u' '
verse_order = u''
for i in range (0, self.VerseListWidget.count()):
verseId = unicode((item.data(QtCore.Qt.UserRole)).toString()[0])
if len(verseId) <= 2:
type = u'Verse'
value = verseId
else:
type = verseId
value = 0
sxml.add_verse_to_lyrics(type, verseId,
unicode(self.VerseListWidget.item(i).text()))
item = self.VerseListWidget.item(i)
verseId = unicode((item.data(QtCore.Qt.UserRole)).toString())
bits = verseId.split(u':')
sxml.add_verse_to_lyrics(bits[0], bits[1], unicode(item.text()))
text = text + unicode(self.VerseListWidget.item(i).text()) + u' '
verse_order = verse_order + verseId + u' '
count += 1

View File

@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'editversedialog.ui'
#
# Created: Sun Nov 22 13:33:41 2009
# by: PyQt4 UI code generator 4.5.4
# Created: Fri Nov 27 18:35:12 2009
# by: PyQt4 UI code generator 4.6.2
#
# WARNING! All changes made in this file will be lost!
@ -15,7 +15,7 @@ class Ui_EditVerseDialog(object):
EditVerseDialog.resize(492, 494)
EditVerseDialog.setModal(True)
self.widget = QtGui.QWidget(EditVerseDialog)
self.widget.setGeometry(QtCore.QRect(8, 11, 471, 461))
self.widget.setGeometry(QtCore.QRect(9, 12, 471, 471))
self.widget.setObjectName("widget")
self.verticalLayout = QtGui.QVBoxLayout(self.widget)
self.verticalLayout.setObjectName("verticalLayout")
@ -23,35 +23,45 @@ class Ui_EditVerseDialog(object):
self.horizontalLayout.setObjectName("horizontalLayout")
self.VerseListComboBox = QtGui.QComboBox(self.widget)
self.VerseListComboBox.setObjectName("VerseListComboBox")
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem("")
self.VerseListComboBox.setItemText(0, "")
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem(QtCore.QString())
self.VerseListComboBox.addItem("")
self.VerseListComboBox.addItem("")
self.VerseListComboBox.addItem("")
self.horizontalLayout.addWidget(self.VerseListComboBox)
self.SubVerseListComboBox = QtGui.QComboBox(self.widget)
self.SubVerseListComboBox.setObjectName("SubVerseListComboBox")
self.SubVerseListComboBox.addItem(QtCore.QString())
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.setItemText(0, "")
self.SubVerseListComboBox.addItem(QtCore.QString())
self.SubVerseListComboBox.addItem(QtCore.QString())
self.SubVerseListComboBox.addItem(QtCore.QString())
self.SubVerseListComboBox.addItem(QtCore.QString())
self.SubVerseListComboBox.addItem(QtCore.QString())
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.SubVerseListComboBox.addItem("")
self.horizontalLayout.addWidget(self.SubVerseListComboBox)
self.verticalLayout.addLayout(self.horizontalLayout)
self.VerseTextEdit = QtGui.QTextEdit(self.widget)
self.VerseTextEdit.setAcceptRichText(False)
self.VerseTextEdit.setObjectName("VerseTextEdit")
self.verticalLayout.addWidget(self.VerseTextEdit)
self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.addVerse = QtGui.QPushButton(self.widget)
self.addVerse.setObjectName("addVerse")
self.horizontalLayout_2.addWidget(self.addVerse)
self.addChorus = QtGui.QPushButton(self.widget)
self.addChorus.setObjectName("addChorus")
self.horizontalLayout_2.addWidget(self.addChorus)
self.addBridge = QtGui.QPushButton(self.widget)
self.addBridge.setObjectName("addBridge")
self.horizontalLayout_2.addWidget(self.addBridge)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.ButtonBox = QtGui.QDialogButtonBox(self.widget)
self.ButtonBox.setOrientation(QtCore.Qt.Horizontal)
self.ButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save)
@ -65,20 +75,21 @@ class Ui_EditVerseDialog(object):
def retranslateUi(self, EditVerseDialog):
EditVerseDialog.setWindowTitle(QtGui.QApplication.translate("EditVerseDialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(1, QtGui.QApplication.translate("EditVerseDialog", "Chorus", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(2, QtGui.QApplication.translate("EditVerseDialog", "Bridge", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(3, QtGui.QApplication.translate("EditVerseDialog", "1", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(4, QtGui.QApplication.translate("EditVerseDialog", "2", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(5, QtGui.QApplication.translate("EditVerseDialog", "3", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(6, QtGui.QApplication.translate("EditVerseDialog", "4", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(7, QtGui.QApplication.translate("EditVerseDialog", "5", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(8, QtGui.QApplication.translate("EditVerseDialog", "6", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(9, QtGui.QApplication.translate("EditVerseDialog", "7", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(11, QtGui.QApplication.translate("EditVerseDialog", "9", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(10, QtGui.QApplication.translate("EditVerseDialog", "8", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(1, QtGui.QApplication.translate("EditVerseDialog", "a", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(2, QtGui.QApplication.translate("EditVerseDialog", "b", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(3, QtGui.QApplication.translate("EditVerseDialog", "c", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(4, QtGui.QApplication.translate("EditVerseDialog", "d", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(5, QtGui.QApplication.translate("EditVerseDialog", "e", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(1, QtGui.QApplication.translate("EditVerseDialog", "Verse", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(2, QtGui.QApplication.translate("EditVerseDialog", "Chorus", None, QtGui.QApplication.UnicodeUTF8))
self.VerseListComboBox.setItemText(3, QtGui.QApplication.translate("EditVerseDialog", "Bridge", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(1, QtGui.QApplication.translate("EditVerseDialog", "1", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(2, QtGui.QApplication.translate("EditVerseDialog", "1a", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(3, QtGui.QApplication.translate("EditVerseDialog", "1b", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(4, QtGui.QApplication.translate("EditVerseDialog", "2", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(5, QtGui.QApplication.translate("EditVerseDialog", "2a", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(6, QtGui.QApplication.translate("EditVerseDialog", "2b", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(7, QtGui.QApplication.translate("EditVerseDialog", "3", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(8, QtGui.QApplication.translate("EditVerseDialog", "4", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(9, QtGui.QApplication.translate("EditVerseDialog", "5", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(10, QtGui.QApplication.translate("EditVerseDialog", "6", None, QtGui.QApplication.UnicodeUTF8))
self.SubVerseListComboBox.setItemText(11, QtGui.QApplication.translate("EditVerseDialog", "7", None, QtGui.QApplication.UnicodeUTF8))
self.addVerse.setText(QtGui.QApplication.translate("EditVerseDialog", "Verse", None, QtGui.QApplication.UnicodeUTF8))
self.addChorus.setText(QtGui.QApplication.translate("EditVerseDialog", "Chorus", None, QtGui.QApplication.UnicodeUTF8))
self.addBridge.setText(QtGui.QApplication.translate("EditVerseDialog", "Bridge", None, QtGui.QApplication.UnicodeUTF8))

View File

@ -23,7 +23,6 @@
###############################################################################
from PyQt4 import QtCore, QtGui
from editversedialog import Ui_EditVerseDialog
class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog):
@ -36,39 +35,44 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog):
"""
QtGui.QDialog.__init__(self, parent)
self.setupUi(self)
QtCore.QObject.connect(self.VerseListComboBox,
QtCore.SIGNAL(u'activated(int)'), self.onVerseListComboBoxChanged)
QtCore.QObject.connect(self.addVerse,
QtCore.SIGNAL(u'clicked()'), self.onAddVerse)
QtCore.QObject.connect(self.addChorus,
QtCore.SIGNAL(u'clicked()'), self.onAddChorus)
QtCore.QObject.connect(self.addBridge,
QtCore.SIGNAL(u'clicked()'), self.onAddBridge)
def onVerseListComboBoxChanged(self, value):
if unicode(self.VerseListComboBox.currentText()).isdigit():
self.SubVerseListComboBox.setEnabled(True)
else:
self.SubVerseListComboBox.setCurrentIndex(0)
self.SubVerseListComboBox.setEnabled(False)
def onAddBridge(self):
self.VerseTextEdit.insertPlainText(u'---[Bridge:1]---\n')
def setVerse(self, text, single=False, id=0):
def onAddChorus(self):
self.VerseTextEdit.insertPlainText(u'---[Chorus:1]---\n')
def onAddVerse(self):
self.VerseTextEdit.insertPlainText(u'---[Verse:1]---\n')
def setVerse(self, text, single=False, tag=0):
posVerse = 0
posSub = 0
if single:
if len(id) <= 2:
if len(id) == 0:
pass
elif len(id) == 1:
posVerse = self.VerseListComboBox.findText(id, QtCore.Qt.MatchExactly)
else:
id = tag.split(u':')
posVerse = self.VerseListComboBox.findText(id[0], QtCore.Qt.MatchExactly)
posSub = self.SubVerseListComboBox.findText(id[1], QtCore.Qt.MatchExactly)
else:
posVerse = self.VerseListComboBox.findText(id, QtCore.Qt.MatchExactly)
if posVerse == -1:
posVerse = 0
if posSub == -1:
posSub = 0
self.VerseListComboBox.setEnabled(True)
self.SubVerseListComboBox.setEnabled(True)
self.addBridge.setEnabled(False)
self.addChorus.setEnabled(False)
self.addVerse.setEnabled(False)
else:
self.VerseListComboBox.setEnabled(False)
self.SubVerseListComboBox.setEnabled(False)
self.addBridge.setEnabled(True)
self.addChorus.setEnabled(True)
self.addVerse.setEnabled(True)
self.VerseListComboBox.setCurrentIndex(posVerse)
self.SubVerseListComboBox.setCurrentIndex(posSub)
self.VerseTextEdit.setPlainText(text)

View File

@ -19,10 +19,10 @@
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>8</x>
<y>11</y>
<x>9</x>
<y>12</y>
<width>471</width>
<height>461</height>
<height>471</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
@ -50,16 +50,45 @@
<string>Bridge</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QComboBox" name="SubVerseListComboBox">
<item>
<property name="text">
<string/>
</property>
</item>
<item>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>1a</string>
</property>
</item>
<item>
<property name="text">
<string>1b</string>
</property>
</item>
<item>
<property name="text">
<string>2</string>
</property>
</item>
<item>
<property name="text">
<string>2a</string>
</property>
</item>
<item>
<property name="text">
<string>2b</string>
</property>
</item>
<item>
<property name="text">
<string>3</string>
@ -85,50 +114,6 @@
<string>7</string>
</property>
</item>
<item>
<property name="text">
<string>9</string>
</property>
</item>
<item>
<property name="text">
<string>8</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QComboBox" name="SubVerseListComboBox">
<item>
<property name="text">
<string/>
</property>
</item>
<item>
<property name="text">
<string>a</string>
</property>
</item>
<item>
<property name="text">
<string>b</string>
</property>
</item>
<item>
<property name="text">
<string>c</string>
</property>
</item>
<item>
<property name="text">
<string>d</string>
</property>
</item>
<item>
<property name="text">
<string>e</string>
</property>
</item>
</widget>
</item>
</layout>
@ -140,6 +125,31 @@
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="addVerse">
<property name="text">
<string>Verse</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addChorus">
<property name="text">
<string>Chorus</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addBridge">
<property name="text">
<string>Bridge</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="ButtonBox">
<property name="orientation">