From 37679fc1dbe73edfaa1e6ff1f8d85eafa9fcde5d Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 22 May 2011 14:08:43 +0100 Subject: [PATCH 1/3] Finish slide spltting code --- .../plugins/custom/forms/editcustomslidedialog.py | 13 ++++++++++++- openlp/plugins/custom/forms/editcustomslideform.py | 13 ++++++++++++- openlp/plugins/songs/forms/editversedialog.py | 6 ++++++ openlp/plugins/songs/forms/editverseform.py | 9 +++++++++ 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/custom/forms/editcustomslidedialog.py b/openlp/plugins/custom/forms/editcustomslidedialog.py index d6ebf23ec..7874ed4e2 100644 --- a/openlp/plugins/custom/forms/editcustomslidedialog.py +++ b/openlp/plugins/custom/forms/editcustomslidedialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, SpellTextEdit +from openlp.core.lib import translate, SpellTextEdit, build_icon from openlp.core.lib.ui import create_accept_reject_button_box class Ui_CustomSlideEditDialog(object): @@ -39,9 +39,15 @@ class Ui_CustomSlideEditDialog(object): self.dialogLayout.addWidget(self.slideTextEdit) self.buttonBox = create_accept_reject_button_box(customSlideEditDialog) self.splitButton = QtGui.QPushButton(customSlideEditDialog) + self.splitButton.setIcon(build_icon(u':/general/general_add.png')) self.splitButton.setObjectName(u'splitButton') self.buttonBox.addButton(self.splitButton, QtGui.QDialogButtonBox.ActionRole) + self.insertButton = QtGui.QPushButton(customSlideEditDialog) + self.insertButton.setIcon(build_icon(u':/general/general_add.png')) + self.insertButton.setObjectName(u'insertButton') + self.buttonBox.addButton(self.insertButton, + QtGui.QDialogButtonBox.ActionRole) self.dialogLayout.addWidget(self.buttonBox) self.retranslateUi(customSlideEditDialog) QtCore.QMetaObject.connectSlotsByName(customSlideEditDialog) @@ -50,5 +56,10 @@ class Ui_CustomSlideEditDialog(object): self.splitButton.setText( translate('CustomPlugin.EditCustomForm', 'Split Slide')) self.splitButton.setToolTip( + translate('CustomPlugin.EditCustomForm', 'Split a slide into two ' + 'only if it does not fit on the screen as one slide.')) + self.insertButton.setText( + translate('CustomPlugin.EditCustomForm', 'Insert Slide')) + self.insertButton.setToolTip( translate('CustomPlugin.EditCustomForm', 'Split a slide into two ' 'by inserting a slide splitter.')) diff --git a/openlp/plugins/custom/forms/editcustomslideform.py b/openlp/plugins/custom/forms/editcustomslideform.py index bf775a1f2..cabd33a4e 100644 --- a/openlp/plugins/custom/forms/editcustomslideform.py +++ b/openlp/plugins/custom/forms/editcustomslideform.py @@ -44,6 +44,8 @@ class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog): QtGui.QDialog.__init__(self, parent) self.setupUi(self) # Connecting signals and slots + QtCore.QObject.connect(self.insertButton, + QtCore.SIGNAL(u'clicked()'), self.onInsertButtonPressed) QtCore.QObject.connect(self.splitButton, QtCore.SIGNAL(u'clicked()'), self.onSplitButtonPressed) @@ -65,7 +67,7 @@ class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog): """ return self.slideTextEdit.toPlainText().split(u'\n[===]\n') - def onSplitButtonPressed(self): + def onInsertButtonPressed(self): """ Adds a slide split at the cursor. """ @@ -73,3 +75,12 @@ class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog): self.slideTextEdit.insertPlainText(u'\n') self.slideTextEdit.insertPlainText(u'[===]\n') self.slideTextEdit.setFocus() + + def onSplitButtonPressed(self): + """ + Adds a virtual split at cursor. + """ + if self.slideTextEdit.textCursor().columnNumber() != 0: + self.slideTextEdit.insertPlainText(u'\n') + self.slideTextEdit.insertPlainText(u'[---]') + self.slideTextEdit.setFocus() diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index 09ff7b135..7f1985c7f 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -42,6 +42,10 @@ class Ui_EditVerseDialog(object): self.dialogLayout.addWidget(self.verseTextEdit) self.verseTypeLayout = QtGui.QHBoxLayout() self.verseTypeLayout.setObjectName(u'verseTypeLayout') + self.splitButton = QtGui.QPushButton(editVerseDialog) + self.splitButton.setIcon(build_icon(u':/general/general_add.png')) + self.splitButton.setObjectName(u'splitButton') + self.verseTypeLayout.addWidget(self.splitButton) self.verseTypeLabel = QtGui.QLabel(editVerseDialog) self.verseTypeLabel.setObjectName(u'verseTypeLabel') self.verseTypeLayout.addWidget(self.verseTypeLabel) @@ -84,5 +88,7 @@ class Ui_EditVerseDialog(object): VerseType.TranslatedNames[VerseType.Ending]) self.verseTypeComboBox.setItemText(VerseType.Other, VerseType.TranslatedNames[VerseType.Other]) + self.splitButton.setText( + translate('SongsPlugin.EditVerseForm', '&Split')) self.insertButton.setText( translate('SongsPlugin.EditVerseForm', '&Insert')) diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index c48d37c4f..a6e1b3534 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -51,6 +51,8 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): self.contextMenu) QtCore.QObject.connect(self.insertButton, QtCore.SIGNAL(u'clicked()'), self.onInsertButtonClicked) + QtCore.QObject.connect(self.splitButton, QtCore.SIGNAL(u'clicked()'), + self.onSplitButtonClicked) QtCore.QObject.connect(self.verseTextEdit, QtCore.SIGNAL(u'cursorPositionChanged()'), self.onCursorPositionChanged) @@ -70,6 +72,13 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): (verse_tag, verse_num)) self.verseTextEdit.setFocus() + def onSplitButtonClicked(self): + verse_type_index = self.verseTypeComboBox.currentIndex() + if self.verseTextEdit.textCursor().columnNumber() != 0: + self.verseTextEdit.insertPlainText(u'\n') + self.verseTextEdit.insertPlainText(u'[---]') + self.verseTextEdit.setFocus() + def onInsertButtonClicked(self): verse_type_index = self.verseTypeComboBox.currentIndex() self.insertVerse(VerseType.Tags[verse_type_index], From b544e519b1197caabf059303fb60b13f4f6962ce Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 22 May 2011 19:48:14 +0100 Subject: [PATCH 2/3] Add tolltip and impress debugging --- openlp/plugins/presentations/lib/impresscontroller.py | 6 +++++- openlp/plugins/songs/forms/editversedialog.py | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py index b691c47ce..45a4049f8 100644 --- a/openlp/plugins/presentations/lib/impresscontroller.py +++ b/openlp/plugins/presentations/lib/impresscontroller.py @@ -45,6 +45,7 @@ else: try: import uno from com.sun.star.beans import PropertyValue + from com.sun.star.task import ErrorCodeIOException uno_available = True except ImportError: uno_available = False @@ -270,7 +271,7 @@ class ImpressDocument(PresentationDocument): else: thumbdirurl = uno.systemPathToFileUrl(self.get_temp_folder()) props = [] - props.append(self.create_property(u'FilterName', u'impress_png_Export')) + props.append(self.create_property(u'FilterName', u'impress_jpg_Export')) props = tuple(props) doc = self.document pages = doc.getDrawPages() @@ -286,6 +287,9 @@ class ImpressDocument(PresentationDocument): doc.storeToURL(urlpath, props) self.convert_thumbnail(path, idx + 1) delete_file(path) + except ErrorCodeIOException, exception: + log.exception(u'ERROR! ErrorCodeIOException %d' % + exception.ErrCode) except: log.exception(u'%s - Unable to store openoffice preview' % path) diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index 7f1985c7f..f6b900d8c 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -90,5 +90,11 @@ class Ui_EditVerseDialog(object): VerseType.TranslatedNames[VerseType.Other]) self.splitButton.setText( translate('SongsPlugin.EditVerseForm', '&Split')) + self.splitButton.setToolTip( + translate('SongsPlugin.EditVerseForm', 'Split a slide into two ' + 'only if it does not fit on the screen as one slide.')) self.insertButton.setText( translate('SongsPlugin.EditVerseForm', '&Insert')) + self.insertButton.setToolTip( + translate('SongsPlugin.EditVerseForm', 'Split a slide into two ' + 'by inserting a verse splitter.')) From 50a81cc3c93bf5d7b5bdc177a4be8d42288c78f6 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 22 May 2011 19:50:34 +0100 Subject: [PATCH 3/3] png not jpg --- openlp/plugins/presentations/lib/impresscontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py index 45a4049f8..d192f3438 100644 --- a/openlp/plugins/presentations/lib/impresscontroller.py +++ b/openlp/plugins/presentations/lib/impresscontroller.py @@ -271,7 +271,7 @@ class ImpressDocument(PresentationDocument): else: thumbdirurl = uno.systemPathToFileUrl(self.get_temp_folder()) props = [] - props.append(self.create_property(u'FilterName', u'impress_jpg_Export')) + props.append(self.create_property(u'FilterName', u'impress_png_Export')) props = tuple(props) doc = self.document pages = doc.getDrawPages()