From 08e8714f1dcfb86a65bf318cb8472627d710acc4 Mon Sep 17 00:00:00 2001 From: TheJackiMonster Date: Sat, 27 Nov 2021 23:03:31 +0100 Subject: [PATCH] Delegated export stderr output without exit code zero to warnings and fixed one crash during loading Signed-off-by: TheJackiMonster --- manuskript/exporter/pandoc/__init__.py | 16 ++++++++++------ manuskript/load_save/version_1.py | 21 +++++++++++++-------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/manuskript/exporter/pandoc/__init__.py b/manuskript/exporter/pandoc/__init__.py index a9637e9..b3af62a 100644 --- a/manuskript/exporter/pandoc/__init__.py +++ b/manuskript/exporter/pandoc/__init__.py @@ -99,12 +99,16 @@ class pandocExporter(basicExporter): qApp.restoreOverrideCursor() if stderr or p.returncode != 0: - err = "ERROR on export" + "\n" \ - + "Return code" + ": %d\n" % (p.returncode) \ - + "Command and parameters" + ":\n%s\n" % (p.args) \ - + "Stderr content" + ":\n" + stderr.decode("utf-8") - LOGGER.error(err) - QMessageBox.critical(mainWindow().dialog, qApp.translate("Export", "Error"), err) + err_type = "ERROR" if p.returncode != 0 else "WARNING" + err = "%s on export\n" % err_type \ + + "Return code: %d\n" % p.returncode \ + + "Command and parameters:\n%s\n" % p.args \ + + "Stderr content:\n" + stderr.decode("utf-8") + if p.returncode != 0: + LOGGER.error(err) + QMessageBox.critical(mainWindow().dialog, qApp.translate("Export", "Error"), err) + else: + LOGGER.warning(err) return None return stdout.decode("utf-8") diff --git a/manuskript/load_save/version_1.py b/manuskript/load_save/version_1.py index 617dcd6..e78ecab 100644 --- a/manuskript/load_save/version_1.py +++ b/manuskript/load_save/version_1.py @@ -897,13 +897,13 @@ def addTextItems(mdl, odict, parent=None): @param odict: OrderedDict @return: nothing """ - if parent == None: + if parent is None: parent = mdl.rootItem for k in odict: # In case k is a folder: - if type(odict[k]) == OrderedDict and "folder.txt" in odict[k]: + if (type(odict[k]) == OrderedDict) and ("folder.txt" in odict[k]): # Adds folder LOGGER.debug("{}* Adds {} to {} (folder)".format(" " * parent.level(), k, parent.title())) @@ -913,13 +913,18 @@ def addTextItems(mdl, odict, parent=None): # Read content addTextItems(mdl, odict[k], parent=item) - # k is not a folder - elif type(odict[k]) == str and k != "folder.txt" and not ":lastPath" in k: - LOGGER.debug("{}* Adds {} to {} (file)".format(" " * parent.level(), k, parent.title())) - item = outlineFromMMD(odict[k], parent=parent) - item._lastPath = odict[k + ":lastPath"] + if (":lastPath" in k) or (k == "folder.txt"): + continue - elif not ":lastPath" in k and k != "folder.txt": + # k is not a folder + if type(odict[k]) == str: + try: + LOGGER.debug("{}* Adds {} to {} (file)".format(" " * parent.level(), k, parent.title())) + item = outlineFromMMD(odict[k], parent=parent) + item._lastPath = odict[k + ":lastPath"] + except KeyError: + LOGGER.error("Failed to add file " + str(k)) + else: LOGGER.debug("Strange things in file %s".format(k))