From 82aaf11860e785c258200c6905b42766f03a3158 Mon Sep 17 00:00:00 2001 From: Tomas Groth Date: Sat, 28 Dec 2013 18:36:33 +0000 Subject: [PATCH] Fixes for the presentation setting tab --- .../presentations/lib/pdfcontroller.py | 17 ++++++++++------- .../presentations/lib/presentationtab.py | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/openlp/plugins/presentations/lib/pdfcontroller.py b/openlp/plugins/presentations/lib/pdfcontroller.py index 6b2dccfa1..781bd0af4 100644 --- a/openlp/plugins/presentations/lib/pdfcontroller.py +++ b/openlp/plugins/presentations/lib/pdfcontroller.py @@ -41,7 +41,6 @@ from .presentationcontroller import PresentationController, PresentationDocument log = logging.getLogger(__name__) - class PdfController(PresentationController): """ Class to control PDF presentations @@ -61,12 +60,15 @@ class PdfController(PresentationController): if self.check_installed() and self.mudrawbin: self.also_supports = ['xps'] + @staticmethod def check_binary(program_path): """ Function that checks whether a binary is either ghostscript or mudraw or neither. + Is also used from presentationtab.py """ program_type = None runlog = '' + log.debug('testing program_path: %s', program_path) try: runlog = check_output([program_path, '--help'], stderr=STDOUT) except CalledProcessError as e: @@ -75,15 +77,16 @@ class PdfController(PresentationController): runlog = '' # Analyse the output to see it the program is mudraw, ghostscript or neither for line in runlog.splitlines(): - found_mudraw = re.search('usage: mudraw.*', line) + decoded_line = line.decode() + found_mudraw = re.search('usage: mudraw.*', decoded_line) if found_mudraw: program_type = 'mudraw' break - found_gs = re.search('GPL Ghostscript.*', line) + found_gs = re.search('GPL Ghostscript.*', decoded_line) if found_gs: program_type = 'gs' break - log.info('in check_binary, found: ' + program_type) + log.debug('in check_binary, found: %s', program_type) return program_type def check_available(self): @@ -101,11 +104,11 @@ class PdfController(PresentationController): # Use the user defined program if given if (Settings().value('presentations/enable_pdf_program')): pdf_program = Settings().value('presentations/pdf_program') - type = self.check_binary(pdf_program) - if type == 'gs': + program_type = check_binary(pdf_program) + if program_type == 'gs': self.gsbin = pdf_program return True - elif type == 'mudraw': + elif program_type == 'mudraw': self.mudrawbin = pdf_program return True # Fallback to autodetection diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py index cc0cf81e9..5b93bac10 100644 --- a/openlp/plugins/presentations/lib/presentationtab.py +++ b/openlp/plugins/presentations/lib/presentationtab.py @@ -73,7 +73,7 @@ class PresentationTab(SettingsTab): self.override_app_check_box = QtGui.QCheckBox(self.advanced_group_box) self.override_app_check_box.setObjectName('override_app_check_box') self.advanced_layout.addWidget(self.override_app_check_box) - + self.left_layout.addWidget(self.advanced_group_box) # Pdf options self.pdf_group_box = QtGui.QGroupBox(self.left_column) self.pdf_group_box.setObjectName('pdf_group_box') @@ -81,7 +81,7 @@ class PresentationTab(SettingsTab): self.pdf_layout.setObjectName('pdf_layout') self.pdf_program_check_box = QtGui.QCheckBox(self.pdf_group_box) self.pdf_program_check_box.setObjectName('pdf_program_check_box') - self.pdf_layout.addWidget(self.pdf_program_check_box) + self.pdf_layout.addRow(self.pdf_program_check_box) self.pdf_program_path_layout = QtGui.QHBoxLayout() self.pdf_program_path_layout.setObjectName('pdf_program_path_layout') self.pdf_program_path = QtGui.QLineEdit(self.pdf_group_box) @@ -95,13 +95,14 @@ class PresentationTab(SettingsTab): self.pdf_program_browse_button.setEnabled(False) self.pdf_program_path_layout.addWidget(self.pdf_program_browse_button) self.pdf_layout.addRow(self.pdf_program_path_layout) + self.left_layout.addWidget(self.pdf_group_box) + self.left_layout.addStretch() + self.right_column.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) + self.right_layout.addStretch() + # Signals and slots self.pdf_program_path.editingFinished.connect(self.on_pdf_program_path_edit_finished) self.pdf_program_browse_button.clicked.connect(self.on_pdf_program_browse_button_clicked) self.pdf_program_check_box.clicked.connect(self.on_pdf_program_check_box_clicked) - self.left_layout.addWidget(self.advanced_group_box) - self.left_layout.addWidget(self.pdf_group_box) - self.left_layout.addStretch() - self.right_layout.addStretch() def retranslateUi(self): """ @@ -203,10 +204,10 @@ class PresentationTab(SettingsTab): """ After selecting/typing in a program it is validated that it is a actually ghostscript or mudraw """ - type = None + program_type = None if self.pdf_program_path.text() != '': - type = PdfController.check_binary(self.pdf_program_path.text()) - if not type: + program_type = PdfController.check_binary(self.pdf_program_path.text()) + if not program_type: critical_error_message_box(UiStrings().Error, translate('PresentationPlugin.PresentationTab', 'The program is not ghostscript or mudraw which is required.')) self.pdf_program_path.setFocus()