From 1083cf38be7fbd0767dcad7344c1caff345c5337 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 29 Jan 2011 20:39:16 +0100 Subject: [PATCH 1/7] started with service order sheet printing --- openlp/core/ui/mainwindow.py | 17 +++++++++++++++-- openlp/core/ui/servicemanager.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index d8bedade3..ea11c7d99 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -175,6 +175,10 @@ class Ui_MainWindow(object): self.FileSaveAsItem = QtGui.QAction(mainWindow) self.FileSaveAsItem.setObjectName(u'FileSaveAsItem') mainWindow.actionList.add_action(self.FileSaveAsItem, u'File') + self.PrintServiceOrderItem = QtGui.QAction(mainWindow) + self.PrintServiceOrderItem.setObjectName(u'PrintServiceItem') + mainWindow.actionList.add_action( + self.PrintServiceOrderItem, u'Print Service Order') self.FileExitItem = QtGui.QAction(mainWindow) self.FileExitItem.setIcon(build_icon(u':/system/system_exit.png')) self.FileExitItem.setObjectName(u'FileExitItem') @@ -302,8 +306,8 @@ class Ui_MainWindow(object): (self.ExportThemeItem, self.ExportLanguageItem)) self.FileMenuActions = (self.FileNewItem, self.FileOpenItem, self.FileSaveItem, self.FileSaveAsItem, None, - self.FileImportMenu.menuAction(), self.FileExportMenu.menuAction(), - self.FileExitItem) + self.PrintServiceOrderItem, None, self.FileImportMenu.menuAction(), + self.FileExportMenu.menuAction(), self.FileExitItem) add_actions(self.ViewModeMenu, (self.ModeDefaultItem, self.ModeSetupItem, self.ModeLiveItem)) add_actions(self.ViewMenu, (self.ViewModeMenu.menuAction(), @@ -381,6 +385,12 @@ class Ui_MainWindow(object): 'Save the current service under a new name.')) self.FileSaveAsItem.setShortcut( translate('OpenLP.MainWindow', 'Ctrl+Shift+S')) + self.PrintServiceOrderItem.setText( + translate('OpenLP.MainWindow', 'Print Service Order')) + self.PrintServiceOrderItem.setStatusTip(translate('OpenLP.MainWindow', + 'Print the current Service Order.')) + self.PrintServiceOrderItem.setShortcut( + translate('OpenLP.MainWindow', 'Ctrl+P')) self.FileExitItem.setText( translate('OpenLP.MainWindow', 'E&xit')) self.FileExitItem.setStatusTip( @@ -567,6 +577,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.FileSaveAsItem, QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.saveFileAs) + QtCore.QObject.connect(self.PrintServiceOrderItem, + QtCore.SIGNAL(u'triggered()'), + self.ServiceManagerContents.printServiceOrder) # i18n set signals for languages QtCore.QObject.connect(self.AutoLanguageItem, QtCore.SIGNAL(u'toggled(bool)'), self.setAutoLanguage) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 22a873855..ce400525e 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1182,3 +1182,31 @@ class ServiceManager(QtGui.QWidget): data_item[u'selected'] = (item == curitem) data.append(data_item) Receiver.send_message(u'servicemanager_list_response', data) + + def printServiceOrder(self): + """ + Print a Service Order Sheet. + """ + # TODO: Add settings, consider footer. If saved service, print service + # file name. + printer = QtGui.QPrinter() + printer.setPaperSize(QtGui.QPrinter.A4) + text = u'

%s

' % translate('OpenLP.ServiceManager', + 'Service Order Sheet') + for item in self.serviceItems: + text += u'

' + item[u'service_item'].title + u'

' + if item[u'service_item'].is_text(): + for slide in item[u'service_item'].get_frames(): + text += u'

' + slide[u'text'] + u'

' + elif item[u'service_item'].is_image(): + # Get child title + pass + else: + # What to do with the other types? + pass + if item[u'service_item'].notes: + text += u'

%s ' % translate('OpenLP.ServiceManager', + 'Notes:') + item[u'service_item'].notes + u'

' + doc = QtGui.QTextDocument() + doc.setHtml(text) + doc.print_(printer) From ce49a8fe20ca5d2212fb56c1f5732358ecc435c3 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 30 Jan 2011 20:19:24 +0100 Subject: [PATCH 2/7] print footer, display plugin icon --- openlp/core/ui/servicemanager.py | 43 ++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index ce400525e..ab1d6b5c8 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1187,26 +1187,31 @@ class ServiceManager(QtGui.QWidget): """ Print a Service Order Sheet. """ - # TODO: Add settings, consider footer. If saved service, print service - # file name. - printer = QtGui.QPrinter() - printer.setPaperSize(QtGui.QPrinter.A4) + # TODO: Add settings. + if not self.serviceItems: + return + printDialog = QtGui.QPrintDialog() + if not printDialog.exec_(): + return text = u'

%s

' % translate('OpenLP.ServiceManager', 'Service Order Sheet') for item in self.serviceItems: - text += u'

' + item[u'service_item'].title + u'

' - if item[u'service_item'].is_text(): - for slide in item[u'service_item'].get_frames(): + item = item[u'service_item'] + text += u'

%s

' % (item.icon, + item.get_display_title()) + if item.is_text(): + for slide in item.get_frames(): text += u'

' + slide[u'text'] + u'

' - elif item[u'service_item'].is_image(): - # Get child title - pass - else: - # What to do with the other types? - pass - if item[u'service_item'].notes: - text += u'

%s ' % translate('OpenLP.ServiceManager', - 'Notes:') + item[u'service_item'].notes + u'

' - doc = QtGui.QTextDocument() - doc.setHtml(text) - doc.print_(printer) + elif item.is_image(): + text += u'
    ' + for slide in range(len(item.get_frames())): + text += u'
  1. %s

  2. ' % item.get_frame_title(slide) + text += u'
' + if item.foot_text: + text += u'

%s

' % item.foot_text + if item.notes: + text += u'

%s %s

' % (translate( + 'OpenLP.ServiceManager', 'Notes:'), item.notes) + serviceDocument = QtGui.QTextDocument() + serviceDocument.setHtml(text) + serviceDocument.print_(printDialog.printer()) From e8dce46cf95a65c144f4d183feac58f3c03f12bf Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 31 Jan 2011 18:00:56 +0100 Subject: [PATCH 3/7] --- openlp/core/lib/mediamanageritem.py | 6 +----- openlp/core/ui/servicemanager.py | 5 +++++ openlp/plugins/media/lib/mediaitem.py | 1 - 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 9565a9b37..7dd74efb0 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -103,7 +103,6 @@ class MediaManagerItem(QtGui.QWidget): self.icon = build_icon(icon) self.toolbar = None self.remoteTriggered = None - self.serviceItemIconName = None self.singleServiceItem = True self.pageLayout = QtGui.QVBoxLayout(self) self.pageLayout.setSpacing(0) @@ -525,10 +524,7 @@ class MediaManagerItem(QtGui.QWidget): Common method for generating a service item """ serviceItem = ServiceItem(self.parent) - if self.serviceItemIconName: - serviceItem.add_icon(self.serviceItemIconName) - else: - serviceItem.add_icon(self.parent.icon_path) + serviceItem.add_icon(self.parent.icon_path) if self.generateSlideData(serviceItem, item, xmlVersion): return serviceItem else: diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index ab1d6b5c8..085644b67 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1197,19 +1197,24 @@ class ServiceManager(QtGui.QWidget): 'Service Order Sheet') for item in self.serviceItems: item = item[u'service_item'] + # add the title text += u'

%s

' % (item.icon, item.get_display_title()) if item.is_text(): + # Add the text of the service item. for slide in item.get_frames(): text += u'

' + slide[u'text'] + u'

' elif item.is_image(): + # Add the image names of the service item. text += u'
    ' for slide in range(len(item.get_frames())): text += u'
  1. %s

  2. ' % item.get_frame_title(slide) text += u'
' if item.foot_text: + # add footer text += u'

%s

' % item.foot_text if item.notes: + # add notes text += u'

%s %s

' % (translate( 'OpenLP.ServiceManager', 'Notes:'), item.notes) serviceDocument = QtGui.QTextDocument() diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index e7beb81a9..c68b11c85 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -57,7 +57,6 @@ class MediaMediaItem(MediaManagerItem): u':/media/media_video.png').toImage() MediaManagerItem.__init__(self, parent, self, icon) self.singleServiceItem = False - self.serviceItemIconName = u':/media/image_clapperboard.png' QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'video_background_replaced'), self.videobackgroundReplaced) From 7b3f61e93b0096c9139f20cd0f3f10dedb69c619 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 31 Jan 2011 20:35:35 +0100 Subject: [PATCH 4/7] added setting --- openlp/core/ui/advancedtab.py | 18 ++++++++++++++++++ openlp/core/ui/generaltab.py | 1 + openlp/core/ui/servicemanager.py | 4 +++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 58b637bc2..10660a914 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -80,6 +80,16 @@ class AdvancedTab(SettingsTab): self.hideMouseCheckBox.setObjectName(u'hideMouseCheckBox') self.hideMouseLayout.addWidget(self.hideMouseCheckBox) self.leftLayout.addWidget(self.hideMouseGroupBox) + self.serviceOrderGroupBox = QtGui.QGroupBox(self.leftColumn) + self.serviceOrderGroupBox.setObjectName(u'serviceOrderGroupBox') + self.serviceOrderLayout = QtGui.QVBoxLayout(self.serviceOrderGroupBox) + self.serviceOrderLayout.setObjectName(u'serviceOrderLayout') + self.detailedServicePrintCheckBox = QtGui.QCheckBox( + self.serviceOrderGroupBox) + self.detailedServicePrintCheckBox.setObjectName( + u'detailedServicePrintCheckBox') + self.serviceOrderLayout.addWidget(self.detailedServicePrintCheckBox) + self.leftLayout.addWidget(self.serviceOrderGroupBox) # self.sharedDirGroupBox = QtGui.QGroupBox(self.leftColumn) # self.sharedDirGroupBox.setObjectName(u'sharedDirGroupBox') # self.sharedDirLayout = QtGui.QFormLayout(self.sharedDirGroupBox) @@ -129,6 +139,10 @@ class AdvancedTab(SettingsTab): 'Mouse Cursor')) self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab', 'Hide the mouse cursor when moved over the display window')) + self.serviceOrderGroupBox.setTitle(translate('OpenLP.AdvancedTab', + 'Service Order Print')) + self.detailedServicePrintCheckBox.setText(translate('OpenLP.AdvancedTab', + 'Included detailed information')) # self.sharedDirGroupBox.setTitle( # translate('AdvancedTab', 'Central Data Store')) # self.sharedCheckBox.setText( @@ -164,6 +178,8 @@ class AdvancedTab(SettingsTab): QtCore.QVariant(True)).toBool()) self.hideMouseCheckBox.setChecked( settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) + self.detailedServicePrintCheckBox.setChecked(settings.value( + u'detailed service print', QtCore.QVariant(False)).toBool()) settings.endGroup() def save(self): @@ -184,6 +200,8 @@ class AdvancedTab(SettingsTab): QtCore.QVariant(self.enableAutoCloseCheckBox.isChecked())) settings.setValue(u'hide mouse', QtCore.QVariant(self.hideMouseCheckBox.isChecked())) + settings.setValue(u'detailed service print', + QtCore.QVariant(self.detailedServicePrintCheckBox.isChecked())) settings.endGroup() # def onSharedCheckBoxChanged(self, checked): diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index edace883f..12353fed8 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -51,6 +51,7 @@ class ValidEdit(QtGui.QLineEdit): else: return self.text() + class GeneralTab(SettingsTab): """ GeneralTab is the general settings tab in the settings dialog. diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index d99ccd2d5..6b0b84472 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1187,7 +1187,6 @@ class ServiceManager(QtGui.QWidget): """ Print a Service Order Sheet. """ - # TODO: Add settings. if not self.serviceItems: return printDialog = QtGui.QPrintDialog() @@ -1200,6 +1199,9 @@ class ServiceManager(QtGui.QWidget): # add the title text += u'

%s

' % (item.icon, item.get_display_title()) + if not QtCore.QSettings().value(u'advanced' + + u'/detailed service print', QtCore.QVariant(True)).toBool(): + continue if item.is_text(): # Add the text of the service item. for slide in item.get_frames(): From 6ac0f162a3522ffbf0015385029f41ad5b9ce961 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 31 Jan 2011 21:39:55 +0100 Subject: [PATCH 5/7] removed white spaces --- openlp/core/lib/toolbar.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py index f2c7f1b0d..b1aa3d96f 100644 --- a/openlp/core/lib/toolbar.py +++ b/openlp/core/lib/toolbar.py @@ -73,13 +73,13 @@ class OpenLPToolbar(QtGui.QToolBar): ``checkable`` If *True* the button has two, *off* and *on*, states. Default is *False*, which means the buttons has only one state. - + ``shortcut`` The primary shortcut for this action - + ``alternate`` The alternate shortcut for this action - + ``context`` Specify the context in which this shortcut is valid """ From cfb263cd821338eff00d336c391aea2d858d0897 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 1 Feb 2011 07:27:19 +0100 Subject: [PATCH 6/7] --- openlp/core/ui/servicemanager.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 6b0b84472..d43e06fe7 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1192,12 +1192,14 @@ class ServiceManager(QtGui.QWidget): printDialog = QtGui.QPrintDialog() if not printDialog.exec_(): return - text = u'

%s

' % translate('OpenLP.ServiceManager', + text = u'

%s

' % translate('OpenLP.ServiceManager', + 'Service Order Sheet') + text += u'%s' % translate('OpenLP.ServiceManager', 'Service Order Sheet') for item in self.serviceItems: item = item[u'service_item'] # add the title - text += u'

%s

' % (item.icon, + text += u'

%s

' % (item.icon, item.get_display_title()) if not QtCore.QSettings().value(u'advanced' + u'/detailed service print', QtCore.QVariant(True)).toBool(): From a31fda9463d270b433a900eba4a88b5fe29a58c4 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 1 Feb 2011 19:22:48 +0100 Subject: [PATCH 7/7] fixed camelCase --- openlp/core/ui/mainwindow.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index ea11c7d99..8477ccc24 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -175,10 +175,10 @@ class Ui_MainWindow(object): self.FileSaveAsItem = QtGui.QAction(mainWindow) self.FileSaveAsItem.setObjectName(u'FileSaveAsItem') mainWindow.actionList.add_action(self.FileSaveAsItem, u'File') - self.PrintServiceOrderItem = QtGui.QAction(mainWindow) - self.PrintServiceOrderItem.setObjectName(u'PrintServiceItem') + self.printServiceOrderItem = QtGui.QAction(mainWindow) + self.printServiceOrderItem.setObjectName(u'printServiceItem') mainWindow.actionList.add_action( - self.PrintServiceOrderItem, u'Print Service Order') + self.printServiceOrderItem, u'Print Service Order') self.FileExitItem = QtGui.QAction(mainWindow) self.FileExitItem.setIcon(build_icon(u':/system/system_exit.png')) self.FileExitItem.setObjectName(u'FileExitItem') @@ -306,7 +306,7 @@ class Ui_MainWindow(object): (self.ExportThemeItem, self.ExportLanguageItem)) self.FileMenuActions = (self.FileNewItem, self.FileOpenItem, self.FileSaveItem, self.FileSaveAsItem, None, - self.PrintServiceOrderItem, None, self.FileImportMenu.menuAction(), + self.printServiceOrderItem, None, self.FileImportMenu.menuAction(), self.FileExportMenu.menuAction(), self.FileExitItem) add_actions(self.ViewModeMenu, (self.ModeDefaultItem, self.ModeSetupItem, self.ModeLiveItem)) @@ -385,11 +385,11 @@ class Ui_MainWindow(object): 'Save the current service under a new name.')) self.FileSaveAsItem.setShortcut( translate('OpenLP.MainWindow', 'Ctrl+Shift+S')) - self.PrintServiceOrderItem.setText( + self.printServiceOrderItem.setText( translate('OpenLP.MainWindow', 'Print Service Order')) - self.PrintServiceOrderItem.setStatusTip(translate('OpenLP.MainWindow', + self.printServiceOrderItem.setStatusTip(translate('OpenLP.MainWindow', 'Print the current Service Order.')) - self.PrintServiceOrderItem.setShortcut( + self.printServiceOrderItem.setShortcut( translate('OpenLP.MainWindow', 'Ctrl+P')) self.FileExitItem.setText( translate('OpenLP.MainWindow', 'E&xit')) @@ -577,7 +577,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.FileSaveAsItem, QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.saveFileAs) - QtCore.QObject.connect(self.PrintServiceOrderItem, + QtCore.QObject.connect(self.printServiceOrderItem, QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.printServiceOrder) # i18n set signals for languages