diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py index 1b3840c77..01398d462 100644 --- a/openlp/plugins/custom/forms/editcustomdialog.py +++ b/openlp/plugins/custom/forms/editcustomdialog.py @@ -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:")) diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py index f218bb295..8cffafc6b 100644 --- a/openlp/plugins/custom/forms/editcustomform.py +++ b/openlp/plugins/custom/forms/editcustomform.py @@ -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) diff --git a/openlp/plugins/custom/lib/custommediaitem.py b/openlp/plugins/custom/lib/custommediaitem.py index 4454ed692..ced56709b 100644 --- a/openlp/plugins/custom/lib/custommediaitem.py +++ b/openlp/plugins/custom/lib/custommediaitem.py @@ -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): diff --git a/openlp/plugins/custom/lib/manager.py b/openlp/plugins/custom/lib/manager.py index d0f821009..be990de8d 100644 --- a/openlp/plugins/custom/lib/manager.py +++ b/openlp/plugins/custom/lib/manager.py @@ -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: diff --git a/resources/forms/editcustomdialog.ui b/resources/forms/editcustomdialog.ui index 2bfabd56b..3fce3f588 100644 --- a/resources/forms/editcustomdialog.ui +++ b/resources/forms/editcustomdialog.ui @@ -17,8 +17,8 @@ :/icon/openlp.org-icon-32.bmp:/icon/openlp.org-icon-32.bmp - - + + @@ -32,10 +32,53 @@ - - + + + + + + + + + + + + + + + :/services/service_up.png:/services/service_up.png + + + + + + + Qt::Vertical + + + + 20 + 128 + + + + + + + + + + + + :/services/service_down.png:/services/service_down.png + + + + + + - + @@ -103,7 +146,7 @@ - + @@ -117,7 +160,7 @@ - + @@ -131,7 +174,7 @@ - + QDialogButtonBox::Cancel|QDialogButtonBox::Ok