From ed82a6c17eb948276cdd69cb46c87d055ea880f8 Mon Sep 17 00:00:00 2001 From: M2j Date: Fri, 29 Oct 2010 18:08:31 +0200 Subject: [PATCH] enable nested docks preview the next slide content whipe out some UTF8 sins in the custom plugin --- openlp/core/ui/mainwindow.py | 1 + openlp/core/ui/slidecontroller.py | 27 +++++++++++++++++-- openlp/plugins/custom/forms/editcustomform.py | 8 +++--- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 0797a7a3e..a8f3547d9 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -73,6 +73,7 @@ class Ui_MainWindow(object): MainWindow.setSizePolicy(sizePolicy) MainIcon = build_icon(u':/icon/openlp-logo-16x16.png') MainWindow.setWindowIcon(MainIcon) + self.setDockNestingEnabled(True) # Set up the main container, which contains all the other form widgets self.MainContent = QtGui.QWidget(MainWindow) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 4aaa1a5ca..59ae353cc 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -434,8 +434,12 @@ class SlideController(QtGui.QWidget): request = unicode(self.sender().text()) slideno = self.slideList[request] if slideno > self.PreviewListWidget.rowCount(): - self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) + self.PreviewListWidget.selectRow( + self.PreviewListWidget.rowCount() - 1) else: + if slideno + 1 < self.PreviewListWidget.rowCount(): + self.PreviewListWidget.scrollToItem( + self.PreviewListWidget.item(slideno + 1, 0)) self.PreviewListWidget.selectRow(slideno) self.onSlideSelected() @@ -527,6 +531,9 @@ class SlideController(QtGui.QWidget): log.debug(u'addServiceManagerItem live = %s' % self.isLive) # If service item is the same as the current on only change slide if item.__eq__(self.serviceItem): + if slideno + 1 < self.PreviewListWidget.rowCount(): + self.PreviewListWidget.scrollToItem( + self.PreviewListWidget.item(slideno + 1, 0)) self.PreviewListWidget.selectRow(slideno) self.onSlideSelected() return @@ -608,8 +615,12 @@ class SlideController(QtGui.QWidget): self.PreviewListWidget.setColumnWidth(0, self.PreviewListWidget.viewport().size().width()) if slideno > self.PreviewListWidget.rowCount(): - self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) + self.PreviewListWidget.selectRow( + self.PreviewListWidget.rowCount() - 1) else: + if slideno + 1 < self.PreviewListWidget.rowCount(): + self.PreviewListWidget.scrollToItem( + self.PreviewListWidget.item(slideno + 1, 0)) self.PreviewListWidget.selectRow(slideno) self.enableToolBar(serviceItem) # Pass to display for viewing @@ -668,6 +679,9 @@ class SlideController(QtGui.QWidget): [self.serviceItem, self.isLive, index]) self.updatePreview() else: + if index + 1 < self.PreviewListWidget.rowCount(): + self.PreviewListWidget.scrollToItem( + self.PreviewListWidget.item(index + 1, 0)) self.PreviewListWidget.selectRow(index) self.onSlideSelected() @@ -799,6 +813,9 @@ class SlideController(QtGui.QWidget): """ The slide has been changed. Update the slidecontroller accordingly """ + if row + 1 < self.PreviewListWidget.rowCount(): + self.PreviewListWidget.scrollToItem( + self.PreviewListWidget.item(row + 1, 0)) self.PreviewListWidget.selectRow(row) self.updatePreview() Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, @@ -844,6 +861,9 @@ class SlideController(QtGui.QWidget): else: Receiver.send_message('servicemanager_next_item') return + if row + 1 < self.PreviewListWidget.rowCount(): + self.PreviewListWidget.scrollToItem( + self.PreviewListWidget.item(row + 1, 0)) self.PreviewListWidget.selectRow(row) self.onSlideSelected() @@ -867,6 +887,9 @@ class SlideController(QtGui.QWidget): row = self.PreviewListWidget.rowCount() - 1 else: row = 0 + if row + 1 < self.PreviewListWidget.rowCount(): + self.PreviewListWidget.scrollToItem( + self.PreviewListWidget.item(row + 1, 0)) self.PreviewListWidget.selectRow(row) self.onSlideSelected() diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py index 8e5312eac..65a73337a 100644 --- a/openlp/plugins/custom/forms/editcustomform.py +++ b/openlp/plugins/custom/forms/editcustomform.py @@ -162,12 +162,10 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog): sxml.add_verse_to_lyrics(u'custom', unicode(count), unicode(self.slideListView.item(i).text())) count += 1 - self.customSlide.title = unicode(self.titleEdit.displayText(), u'utf-8') + self.customSlide.title = unicode(self.titleEdit.text()) self.customSlide.text = unicode(sxml.extract_xml(), u'utf-8') - self.customSlide.credits = unicode(self.creditEdit.displayText(), - u'utf-8') - self.customSlide.theme_name = unicode(self.themeComboBox.currentText(), - u'utf-8') + self.customSlide.credits = unicode(self.creditEdit.text()) + self.customSlide.theme_name = unicode(self.themeComboBox.currentText()) return self.manager.save_object(self.customSlide) def onUpButtonPressed(self):