From 3e14f499e50dea5acab3488085589efafb25d911 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Tue, 13 Jul 2021 17:35:24 +0200 Subject: [PATCH] Material: matcard writer, print error if no card name is provided on save --- src/Mod/Material/importFCMat.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Mod/Material/importFCMat.py b/src/Mod/Material/importFCMat.py index 28146d506e..25ade51e9a 100644 --- a/src/Mod/Material/importFCMat.py +++ b/src/Mod/Material/importFCMat.py @@ -32,6 +32,10 @@ import FreeCAD from materialtools.cardutils import get_material_template +if FreeCAD.GuiUp: + from PySide import QtGui + + # to distinguish python built-in open function from the one declared below if open.__module__ in ['__builtin__', 'io']: pythonopen = open @@ -185,6 +189,13 @@ def write(filename, dictionary, write_group_section=True): # print(filename) card_name_file = os.path.splitext(os.path.basename(filename))[0] # print(card_name_file) + if "CardName" not in header: + print(header) + error_message = "No card name provided. Card could not be written.".format(header) + FreeCAD.Console.PrintError("{}\n".format(error_message)) + if FreeCAD.GuiUp: + QtGui.QMessageBox.critical(None, "No card name", error_message) + return f = pythonopen(filename, "w") # write header # first five lines are the same in any card file, see comment above read def