Add slide swapping to dialog

Fixed Context menu

bzr-revno: 397
This commit is contained in:
Tim Bentley 2009-03-08 06:36:05 +00:00
parent 036dfef2eb
commit 904212c587
5 changed files with 153 additions and 83 deletions

View File

@ -17,8 +17,8 @@ class Ui_customEditDialog(object):
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icon/openlp.org-icon-32.bmp"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
customEditDialog.setWindowIcon(icon)
self.verticalLayout = QtGui.QVBoxLayout(customEditDialog)
self.verticalLayout.setObjectName("verticalLayout")
self.gridLayout = QtGui.QGridLayout(customEditDialog)
self.gridLayout.setObjectName("gridLayout")
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.TitleLabel = QtGui.QLabel(customEditDialog)
@ -27,10 +27,30 @@ class Ui_customEditDialog(object):
self.TitleEdit = QtGui.QLineEdit(customEditDialog)
self.TitleEdit.setObjectName("TitleEdit")
self.horizontalLayout.addWidget(self.TitleEdit)
self.verticalLayout.addLayout(self.horizontalLayout)
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
self.horizontalLayout_4 = QtGui.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.VerseListView = QtGui.QListWidget(customEditDialog)
self.VerseListView.setObjectName("VerseListView")
self.verticalLayout.addWidget(self.VerseListView)
self.horizontalLayout_4.addWidget(self.VerseListView)
self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.UpButton = QtGui.QPushButton(customEditDialog)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/services/service_up.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.UpButton.setIcon(icon1)
self.UpButton.setObjectName("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)
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(":/services/service_down.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.DownButton.setIcon(icon2)
self.DownButton.setObjectName("DownButton")
self.verticalLayout.addWidget(self.DownButton)
self.horizontalLayout_4.addLayout(self.verticalLayout)
self.gridLayout.addLayout(self.horizontalLayout_4, 1, 0, 1, 1)
self.EditWidget = QtGui.QWidget(customEditDialog)
self.EditWidget.setObjectName("EditWidget")
self.EditLayout = QtGui.QHBoxLayout(self.EditWidget)
@ -40,31 +60,31 @@ class Ui_customEditDialog(object):
self.VerseTextEdit = QtGui.QTextEdit(self.EditWidget)
self.VerseTextEdit.setObjectName("VerseTextEdit")
self.EditLayout.addWidget(self.VerseTextEdit)
self.ButtonWidge = QtGui.QWidget(self.EditWidget)
self.ButtonWidge.setObjectName("ButtonWidge")
self.ButtonLayout = QtGui.QVBoxLayout(self.ButtonWidge)
self.ButtonWidget = QtGui.QWidget(self.EditWidget)
self.ButtonWidget.setObjectName("ButtonWidget")
self.ButtonLayout = QtGui.QVBoxLayout(self.ButtonWidget)
self.ButtonLayout.setSpacing(8)
self.ButtonLayout.setMargin(0)
self.ButtonLayout.setObjectName("ButtonLayout")
self.AddButton = QtGui.QPushButton(self.ButtonWidge)
self.AddButton = QtGui.QPushButton(self.ButtonWidget)
self.AddButton.setObjectName("AddButton")
self.ButtonLayout.addWidget(self.AddButton)
self.EditButton = QtGui.QPushButton(self.ButtonWidge)
self.EditButton = QtGui.QPushButton(self.ButtonWidget)
self.EditButton.setObjectName("EditButton")
self.ButtonLayout.addWidget(self.EditButton)
self.SaveButton = QtGui.QPushButton(self.ButtonWidge)
self.SaveButton = QtGui.QPushButton(self.ButtonWidget)
self.SaveButton.setObjectName("SaveButton")
self.ButtonLayout.addWidget(self.SaveButton)
self.DeleteButton = QtGui.QPushButton(self.ButtonWidge)
self.DeleteButton = QtGui.QPushButton(self.ButtonWidget)
self.DeleteButton.setObjectName("DeleteButton")
self.ButtonLayout.addWidget(self.DeleteButton)
self.ClearButton = QtGui.QPushButton(self.ButtonWidge)
self.ClearButton = QtGui.QPushButton(self.ButtonWidget)
self.ClearButton.setObjectName("ClearButton")
self.ButtonLayout.addWidget(self.ClearButton)
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.ButtonLayout.addItem(spacerItem)
self.EditLayout.addWidget(self.ButtonWidge)
self.verticalLayout.addWidget(self.EditWidget)
self.ButtonLayout.addWidget(self.ClearButton)
spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.ButtonLayout.addItem(spacerItem1)
self.EditLayout.addWidget(self.ButtonWidget)
self.gridLayout.addWidget(self.EditWidget, 2, 0, 1, 1)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.ThemeLabel = QtGui.QLabel(customEditDialog)
@ -73,20 +93,20 @@ class Ui_customEditDialog(object):
self.ThemecomboBox = QtGui.QComboBox(customEditDialog)
self.ThemecomboBox.setObjectName("ThemecomboBox")
self.horizontalLayout.addWidget(self.ThemecomboBox)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.gridLayout.addLayout(self.horizontalLayout, 3, 0, 1, 1)
self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.CreditLabel = QtGui.QLabel(customEditDialog)
self.CreditLabel.setObjectName("CreditLabel")
self.horizontalLayout.addWidget(self.CreditLabel)
self.horizontalLayout_2.addWidget(self.CreditLabel)
self.CreditEdit = QtGui.QLineEdit(customEditDialog)
self.CreditEdit.setObjectName("CreditEdit")
self.horizontalLayout.addWidget(self.CreditEdit)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2.addWidget(self.CreditEdit)
self.gridLayout.addLayout(self.horizontalLayout_2, 4, 0, 1, 1)
self.buttonBox = QtGui.QDialogButtonBox(customEditDialog)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.verticalLayout.addWidget(self.buttonBox)
self.gridLayout.addWidget(self.buttonBox, 5, 0, 1, 1)
self.retranslateUi(customEditDialog)
QtCore.QMetaObject.connectSlotsByName(customEditDialog)
@ -98,7 +118,7 @@ class Ui_customEditDialog(object):
customEditDialog.setTabOrder(self.VerseListView, self.AddButton)
customEditDialog.setTabOrder(self.AddButton, self.DeleteButton)
customEditDialog.setTabOrder(self.DeleteButton, self.buttonBox)
def retranslateUi(self, customEditDialog):
customEditDialog.setWindowTitle(translate("customEditDialog", "Edit Custom Slides"))
self.TitleLabel.setText(translate("customEditDialog", "Title:"))

View File

@ -39,9 +39,14 @@ class EditCustomForm(QtGui.QDialog, Ui_customEditDialog):
QtCore.QObject.connect(self.SaveButton, QtCore.SIGNAL("pressed()"), self.onSaveButtonPressed)
QtCore.QObject.connect(self.DeleteButton, QtCore.SIGNAL("pressed()"), self.onDeleteButtonPressed)
QtCore.QObject.connect(self.ClearButton, QtCore.SIGNAL("pressed()"), self.onClearButtonPressed)
QtCore.QObject.connect(self.TitleEdit, QtCore.SIGNAL("lostFocus()"), self.validate)
QtCore.QObject.connect(self.VerseListView, QtCore.SIGNAL("itemDoubleClicked(QListWidgetItem*)"), self.onVerseListViewSelected)
QtCore.QObject.connect(self.VerseListView, QtCore.SIGNAL("itemClicked(QListWidgetItem*)"), self.onVerseListViewPressed)
QtCore.QObject.connect(self.UpButton, QtCore.SIGNAL("pressed()"), self.onUpButtonPressed)
QtCore.QObject.connect(self.DownButton, QtCore.SIGNAL("pressed()"), self.onDownButtonPressed)
QtCore.QObject.connect(self.TitleEdit, QtCore.SIGNAL("lostFocus()"), self.validate)
QtCore.QObject.connect(self.VerseListView,
QtCore.SIGNAL("itemDoubleClicked(QListWidgetItem*)"), self.onVerseListViewSelected)
QtCore.QObject.connect(self.VerseListView,
QtCore.SIGNAL("itemClicked(QListWidgetItem*)"), self.onVerseListViewPressed)
# Create other objects and forms
self.custommanager = custommanager
self.initialise()
@ -58,14 +63,28 @@ class EditCustomForm(QtGui.QDialog, Ui_customEditDialog):
def rejected(self):
self.close()
def onUpButtonPressed(self):
selectedRow = self.VerseListView.currentRow()
if selectedRow != 0:
qw = self.VerseListView.takeItem(selectedRow)
self.VerseListView.insertItem(selectedRow - 1, qw)
self.VerseListView.setCurrentRow(selectedRow - 1)
def onDownButtonPressed(self):
print "Down"
selectedRow = self.VerseListView.currentRow()
if self.selectedRow != self.VerseListView.count() - 1: # zero base arrays
qw = self.VerseListView.takeItem(selectedRow)
self.VerseListView.insertItem(selectedRow + 1, qw)
self.VerseListView.setCurrentRow(selectedRow + 1)
def onClearButtonPressed(self):
self.VerseTextEdit.clear()
def onVerseListViewPressed(self, item):
self.DeleteButton.setEnabled(True)
self.EditButton.setEnabled(True)
self.selectedRow = self.VerseListView.currentRow()
def onVerseListViewSelected(self, item):
self.VerseTextEdit.setPlainText(item.text())
self.DeleteButton.setEnabled(False)

View File

@ -75,13 +75,7 @@ class CustomMediaItem(MediaManagerItem):
self.CustomWidget.setObjectName('CustomWidget')
self.SearchLayout = QtGui.QGridLayout(self.CustomWidget)
self.SearchLayout.setObjectName('SearchLayout')
self.SearchTypeComboBox = QtGui.QComboBox(self.CustomWidget)
self.SearchTypeComboBox.setObjectName('SearchTypeComboBox')
self.SearchLayout.addWidget(self.SearchTypeComboBox, 0, 1, 1, 2)
self.SearchTypeLabel = QtGui.QLabel(self.CustomWidget)
self.SearchTypeLabel.setObjectName('SearchTypeLabel')
self.SearchTypeLabel.setText('Search Type:')
self.SearchLayout.addWidget(self.SearchTypeLabel, 0, 0, 1, 1)
self.SearchTextLabel = QtGui.QLabel(self.CustomWidget)
self.SearchTextLabel.setObjectName('SearchTextLabel')
self.SearchTextLabel.setText('Search Text:')
@ -103,34 +97,39 @@ class CustomMediaItem(MediaManagerItem):
self.CustomListView.setColumnCount(2)
self.CustomListView.setColumnHidden(0, True)
self.CustomListView.setColumnWidth(1, 240)
#self.CustomListView.setColumnWidth(2, 80)
self.CustomListView.setShowGrid(False)
self.CustomListView.setSortingEnabled(False)
self.CustomListView.setAlternatingRowColors(True)
self.CustomListView.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
self.CustomListView.setHorizontalHeaderLabels(QtCore.QStringList(['', u'Custom Name']))
self.CustomListView.horizontalHeader().setVisible(False)
self.CustomListView.verticalHeader().setVisible(False)
self.CustomListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
self.CustomListView.setObjectName('listView')
self.PageLayout.addWidget(self.CustomListView)
QtCore.QObject.connect(self.SearchTextButton, QtCore.SIGNAL("pressed()"), self.onSearchTextButtonClick)
QtCore.QObject.connect(self.ClearTextButton, QtCore.SIGNAL("pressed()"), self.onClearTextButtonClick)
QtCore.QObject.connect(self.SearchTextEdit, QtCore.SIGNAL("textChanged(const QString&)"), self.onSearchTextEditChanged)
QtCore.QObject.connect(self.CustomListView, QtCore.SIGNAL("itemPressed(QTableWidgetItem * item)"), self.onCustomSelected)
# Signals
QtCore.QObject.connect(self.SearchTextButton,
QtCore.SIGNAL("pressed()"), self.onSearchTextButtonClick)
QtCore.QObject.connect(self.ClearTextButton,
QtCore.SIGNAL("pressed()"), self.onClearTextButtonClick)
QtCore.QObject.connect(self.SearchTextEdit,
QtCore.SIGNAL("textChanged(const QString&)"), self.onSearchTextEditChanged)
QtCore.QObject.connect(self.CustomListView,
QtCore.SIGNAL("itemPressed(QTableWidgetItem * item)"), self.onCustomSelected)
# #define and add the context menu
# self.CustomListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.CustomListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
#
# self.CustomListView.addAction(self.add_to_context_menu(self.CustomListView, ':/Customs/Custom_new.png', "&Edit Custom", self.onCustomEditClick))
# self.CustomListView.addAction(self.add_to_context_separator(self.CustomListView))
# self.CustomListView.addAction(self.add_to_context_menu(self.CustomListView, ':/system/system_preview.png', "&Preview Custom", self.onCustomPreviewClick))
# self.CustomListView.addAction(self.add_to_context_menu(self.CustomListView, ':/system/system_live.png', "&Show Live", self.onCustomLiveClick))
# self.CustomListView.addAction(self.add_to_context_menu(self.CustomListView, ':/system/system_add.png', "&Add to Service", self.onCustomEditClick))
self.CustomListView.addAction(self.contextMenuAction(
self.CustomListView, ':/system/system_preview.png',
"&Preview Custom", self.onCustomPreviewClick))
self.CustomListView.addAction(self.contextMenuAction(
self.CustomListView, ':/system/system_live.png',
"&Show Live", self.onCustomLiveClick))
self.CustomListView.addAction(self.contextMenuAction(
self.CustomListView, ':/system/system_add.png',
"&Add to Service", self.onCustomEditClick))
def onClearTextButtonClick(self):
"""
@ -139,25 +138,14 @@ class CustomMediaItem(MediaManagerItem):
self.SearchTextEdit.clear()
def onSearchTextEditChanged(self, text):
sl = 3
if self.SearchTypeComboBox.currentText() == u'Lyrics':
sl = 7
if len(text) > sl: # only search if > 3 characters
if len(text) > 3: # only search if > 3 characters
self.onSearchTextButtonClick()
def onSearchTextButtonClick(self):
search_keywords = str(self.SearchTextEdit.displayText())
search_results = []
search_type = self.SearchTypeComboBox.currentText()
if search_type == u'Titles':
log.debug("Titles Search")
search_results = self.Custommanager.search_Custom_title(search_keywords)
elif search_type == u'Lyrics':
log.debug("Lyrics Search")
search_results = self.Custommanager.search_Custom_lyrics(search_keywords)
elif search_type == u'Authors':
log.debug("Authors Search")
#searchresults = self.Custommanager.get_Custom_from_author(searchtext)
search_results = self.Custommanager.search_Custom_lyrics(search_keywords)
self._display_results(search_results)
def onCustomSelected(self, item):

View File

@ -91,16 +91,16 @@ class CustomManager():
# else:
# return self.session.query(Song).get(id)
#
# def save_song(self, song):
# """
# Saves a song to the database
# """
# try:
# self.session.add(song)
# self.session.commit()
# return True
# except:
# return False
def save_slides(self, customslide):
"""
Saves a song to the database
"""
try:
self.session.add(customslide)
self.session.commit()
return True
except:
return False
#
# def delete_song(self, song):
# try:

View File

@ -17,8 +17,8 @@
<iconset resource="../images/openlp-2.qrc">
<normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="TitleLabel">
@ -32,10 +32,53 @@
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="VerseListView"/>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QListWidget" name="VerseListView"/>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="UpButton">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../images/openlp-2.qrc">
<normaloff>:/services/service_up.png</normaloff>:/services/service_up.png</iconset>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>128</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="DownButton">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../images/openlp-2.qrc">
<normaloff>:/services/service_down.png</normaloff>:/services/service_down.png</iconset>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<item row="2" column="0">
<widget class="QWidget" name="EditWidget" native="true">
<layout class="QHBoxLayout" name="EditLayout_3">
<property name="spacing">
@ -103,7 +146,7 @@
</layout>
</widget>
</item>
<item>
<item row="3" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="ThemeLabel">
@ -117,7 +160,7 @@
</item>
</layout>
</item>
<item>
<item row="4" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="CreditLabel">
@ -131,7 +174,7 @@
</item>
</layout>
</item>
<item>
<item row="5" column="0">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>