Don't crash if a typo is made in the exporter's regular expression.

When a regexp error is thrown, cancel the export and show an info dialog
with the error message to the user. Fixes #488
This commit is contained in:
Youness Alaoui 2019-02-09 14:43:21 -05:00 committed by Curtis Gedak
parent baeb5f4653
commit c7605b5819

View file

@ -2,7 +2,7 @@
# --!-- coding: utf8 --!--
import re
from PyQt5.QtGui import QFont, QTextCharFormat
from PyQt5.QtWidgets import QPlainTextEdit, qApp, QFrame, QFileDialog
from PyQt5.QtWidgets import QPlainTextEdit, qApp, QFrame, QFileDialog, QMessageBox
from manuskript.exporter.basic import basicFormat
from manuskript.functions import mainWindow
@ -41,7 +41,12 @@ class plainText(basicFormat):
def output(self, settingsWidget):
settings = settingsWidget.getSettings()
return self.concatenate(mainWindow().mdlOutline.rootItem, settings)
try:
return self.concatenate(mainWindow().mdlOutline.rootItem, settings)
except re.error as e:
QMessageBox.warning(mainWindow().dialog, qApp.translate("Export", "Error"),
qApp.translate("Export", "Error processing regular expression : \n{}").format(str(e)))
return ""
def getExportFilename(self, settingsWidget, varName=None, filter=None):