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/customplugin.py b/openlp/plugins/custom/customplugin.py index 63bce3f81..c7fb38e3b 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -59,7 +59,7 @@ class CustomPlugin(Plugin): return CustomTab(self.name, visible_name[u'title']) def getMediaManagerItem(self): - # Create the CustomManagerItem object + # Create the ManagerItem object return CustomMediaItem(self, self, self.icon) def about(self): @@ -76,7 +76,7 @@ class CustomPlugin(Plugin): Returns True if the theme is being used, otherwise returns False. """ - if self.custommanager.get_all_objects(CustomSlide, + if self.manager.get_all_objects(CustomSlide, CustomSlide.theme_name == theme): return True return False @@ -92,11 +92,11 @@ class CustomPlugin(Plugin): ``newTheme`` The new name the plugin should now use. """ - customsUsingTheme = self.custommanager.get_all_objects(CustomSlide, + customsUsingTheme = self.manager.get_all_objects(CustomSlide, CustomSlide.theme_name == oldTheme) for custom in customsUsingTheme: custom.theme_name = newTheme - self.custommanager.save_object(custom) + self.manager.save_object(custom) def setPluginTextStrings(self): """ 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): diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 3fe8a9b0f..9cdcb9ed7 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -140,7 +140,7 @@ class CustomMediaItem(MediaManagerItem): id_list = [(item.data(QtCore.Qt.UserRole)).toInt()[0] for item in self.listView.selectedIndexes()] for id in id_list: - self.parent.custommanager.delete_object(CustomSlide, id) + self.parent.manager.delete_object(CustomSlide, id) for row in row_list: self.listView.takeItem(row) @@ -162,7 +162,7 @@ class CustomMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.AllowsEdit) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) - customSlide = self.parent.custommanager.get_object(CustomSlide, item_id) + customSlide = self.parent.manager.get_object(CustomSlide, item_id) title = customSlide.title credit = customSlide.credits service_item.editId = item_id diff --git a/openlp/plugins/songusage/forms/songusagedeleteform.py b/openlp/plugins/songusage/forms/songusagedeleteform.py index 36eda98b2..45e4e91a9 100644 --- a/openlp/plugins/songusage/forms/songusagedeleteform.py +++ b/openlp/plugins/songusage/forms/songusagedeleteform.py @@ -34,11 +34,11 @@ class SongUsageDeleteForm(QtGui.QDialog, Ui_SongUsageDeleteDialog): """ Class documentation goes here. """ - def __init__(self, songusagemanager, parent): + def __init__(self, manager, parent): """ Constructor """ - self.songusagemanager = songusagemanager + self.manager = manager QtGui.QDialog.__init__(self, parent) self.setupUi(self) @@ -53,6 +53,6 @@ class SongUsageDeleteForm(QtGui.QDialog, Ui_SongUsageDeleteDialog): QtGui.QMessageBox.Cancel) if ret == QtGui.QMessageBox.Ok: deleteDate = self.deleteCalendar.selectedDate().toPyDate() - self.songusagemanager.delete_all_objects(SongUsageItem, + self.manager.delete_all_objects(SongUsageItem, SongUsageItem.usagedate <= deleteDate) self.close() diff --git a/openlp/plugins/songusage/forms/songusagedetailform.py b/openlp/plugins/songusage/forms/songusagedetailform.py index b1668990b..18aa1797f 100644 --- a/openlp/plugins/songusage/forms/songusagedetailform.py +++ b/openlp/plugins/songusage/forms/songusagedetailform.py @@ -76,7 +76,7 @@ class SongUsageDetailForm(QtGui.QDialog, Ui_SongUsageDetailDialog): filename = u'usage_detail_%s_%s.txt' % ( self.fromDate.selectedDate().toString(u'ddMMyyyy'), self.toDate.selectedDate().toString(u'ddMMyyyy')) - usage = self.plugin.songusagemanager.get_all_objects( + usage = self.plugin.manager.get_all_objects( SongUsageItem, and_( SongUsageItem.usagedate >= self.fromDate.selectedDate().toPyDate(), SongUsageItem.usagedate < self.toDate.selectedDate().toPyDate()), diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 8898721c6..124fe2863 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -44,7 +44,7 @@ class SongUsagePlugin(Plugin): Plugin.__init__(self, u'SongUsage', u'1.9.3', plugin_helpers) self.weight = -4 self.icon = build_icon(u':/plugins/plugin_songusage.png') - self.songusagemanager = None + self.manager = None self.songusageActive = False def addToolsMenuItem(self, tools_menu): @@ -115,9 +115,9 @@ class SongUsagePlugin(Plugin): self.settingsSection + u'/active', QtCore.QVariant(False)).toBool() self.SongUsageStatus.setChecked(self.SongUsageActive) - if self.songusagemanager is None: - self.songusagemanager = Manager(u'songusage', init_schema) - self.SongUsagedeleteform = SongUsageDeleteForm(self.songusagemanager, + if self.manager is None: + self.manager = Manager(u'songusage', init_schema) + self.SongUsagedeleteform = SongUsageDeleteForm(self.manager, self.formparent) self.SongUsagedetailform = SongUsageDetailForm(self, self.formparent) self.SongUsageMenu.menuAction().setVisible(True) @@ -148,7 +148,7 @@ class SongUsagePlugin(Plugin): song_usage_item.authors = u'' for author in audit[1]: song_usage_item.authors += author + u' ' - self.songusagemanager.save_object(song_usage_item) + self.manager.save_object(song_usage_item) def onSongUsageDelete(self): self.SongUsagedeleteform.exec_()