diff --git a/src/Mod/Fem/femsolver/reportdialog.py b/src/Mod/Fem/femsolver/reportdialog.py
index 57a8c13a9c..0315867540 100644
--- a/src/Mod/Fem/femsolver/reportdialog.py
+++ b/src/Mod/Fem/femsolver/reportdialog.py
@@ -31,11 +31,12 @@ __url__ = "https://www.freecad.org"
# it is a Gui only module and should only be imported in Gui mode
# thus no guard is needed
from PySide import QtGui
+from femtools.femutils import getOutputWinColor
-ERROR_COLOR = "red"
-WARNING_COLOR = "#ffaa00"
-INFO_COLOR = "blue"
+ERROR_COLOR = "Error"
+WARNING_COLOR = "Warning"
+INFO_COLOR = "Logging"
class ReportDialog(QtGui.QDialog):
@@ -71,7 +72,9 @@ class ReportDialog(QtGui.QDialog):
text += "%s
" % self._getColoredLine(line, ERROR_COLOR)
return text
- def _getColoredLine(self, text, color):
- return '%s' % (color, text)
+ def _getColoredLine(self, text, outputwin_color_type):
+ return '{}'.format(
+ getOutputWinColor(outputwin_color_type), text
+ )
## @}
diff --git a/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py b/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py
index 2aa2fbf24c..540f112fac 100644
--- a/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py
+++ b/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py
@@ -43,6 +43,7 @@ import FreeCADGui
import FemGui
from femobjects import mesh_gmsh
from femtools.femutils import is_of_type
+from femtools.femutils import getOutputWinColor
class _TaskPanel:
@@ -152,11 +153,25 @@ class _TaskPanel:
index_order = self.form.cb_order.findText(self.order)
self.form.cb_order.setCurrentIndex(index_order)
- def console_log(self, message="", color="#000000"):
+ def console_log(self, message="", outputwin_color_type=None):
self.console_message_gmsh = self.console_message_gmsh + (
- '{0:4.1f}: {2}
'
- .format(time.time() - self.Start, color, message)
+ '{:4.1f}: '.format(
+ getOutputWinColor("Logging"), time.time() - self.Start
+ )
)
+ if outputwin_color_type:
+ if (
+ outputwin_color_type == "#00AA00"
+ ): # Success is not part of output window parameters
+ self.console_message_gmsh += '{}
'.format(
+ outputwin_color_type, message
+ )
+ else:
+ self.console_message_gmsh += '{}
'.format(
+ getOutputWinColor(outputwin_color_type), message
+ )
+ else:
+ self.console_message_gmsh += message + "
"
self.form.te_output.setText(self.console_message_gmsh)
self.form.te_output.moveCursor(QtGui.QTextCursor.End)
@@ -231,11 +246,11 @@ class _TaskPanel:
if error:
FreeCAD.Console.PrintWarning("Gmsh had warnings:\n")
FreeCAD.Console.PrintWarning("{}\n".format(error))
- self.console_log("Gmsh had warnings ...")
- self.console_log(error, "#FF0000")
+ self.console_log("Gmsh had warnings ...", "Warning")
+ self.console_log(error, "Error")
else:
FreeCAD.Console.PrintMessage("Clean run of Gmsh\n")
- self.console_log("Clean run of Gmsh")
+ self.console_log("Clean run of Gmsh", "#00AA00")
self.console_log("Gmsh done!")
self.form.l_time.setText("Time: {0:4.1f}: ".format(time.time() - self.Start))
self.Timer.stop()
diff --git a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py
index 6a32bd8c2f..a467676459 100644
--- a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py
+++ b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py
@@ -40,6 +40,7 @@ import FreeCAD
import FreeCADGui
import FemGui
+from femtools.femutils import getOutputWinColor
def unicode(text, *args):
@@ -186,11 +187,25 @@ class _TaskPanel:
self.form.rb_buckling_analysis.setChecked(True)
return
- def femConsoleMessage(self, message="", color="#000000"):
+ def femConsoleMessage(self, message="", outputwin_color_type=None):
self.fem_console_message = self.fem_console_message + (
- '{0:4.1f}: {2}
'
- .format(time.time() - self.Start, color, message)
+ '{:4.1f}: '.format(
+ getOutputWinColor("Logging"), time.time() - self.Start
+ )
)
+ if outputwin_color_type:
+ if (
+ outputwin_color_type == "#00AA00"
+ ): # Success is not part of output window parameters
+ self.fem_console_message += '{}
'.format(
+ outputwin_color_type, message
+ )
+ else:
+ self.fem_console_message += '{}
'.format(
+ getOutputWinColor(outputwin_color_type), message
+ )
+ else:
+ self.fem_console_message += message + "
"
self.form.textEdit_Output.setText(self.fem_console_message)
self.form.textEdit_Output.moveCursor(QtGui.QTextCursor.End)
@@ -201,7 +216,7 @@ class _TaskPanel:
#
if out.isEmpty():
- self.femConsoleMessage("CalculiX stdout is empty", "#FF0000")
+ self.femConsoleMessage("CalculiX stdout is empty", "Error")
return False
# https://forum.freecad.org/viewtopic.php?f=18&t=39195
@@ -231,11 +246,13 @@ class _TaskPanel:
def calculixError(self, error=""):
print("Error() {}".format(error))
- self.femConsoleMessage("CalculiX execute error: {}".format(error), "#FF0000")
+ self.femConsoleMessage("CalculiX execute error: {}".format(error), "Error")
def calculixNoError(self):
print("CalculiX done without error!")
- self.femConsoleMessage("CalculiX done without error!", "#00AA00")
+ self.femConsoleMessage(
+ "CalculiX done without error!", "#00AA00"
+ ) # Green leaving hard coded
def calculixStarted(self):
# print("calculixStarted()")
@@ -250,7 +267,7 @@ class _TaskPanel:
elif newState == QtCore.QProcess.ProcessState.NotRunning:
self.femConsoleMessage("CalculiX stopped.")
else:
- self.femConsoleMessage("Problems.")
+ self.femConsoleMessage("Problems.", "Error")
def calculixFinished(self, exitCode, exitStatus):
# print("calculixFinished(), exit code: {}".format(exitCode))
@@ -326,7 +343,7 @@ class _TaskPanel:
self.form.pb_edit_inp.setEnabled(True)
self.form.pb_run_ccx.setEnabled(True)
else:
- self.femConsoleMessage("Write .inp file failed!", "#FF0000")
+ self.femConsoleMessage("Write .inp file failed!", "Error")
QApplication.restoreOverrideCursor()
self.form.l_time.setText("Time: {0:4.1f}: ".format(time.time() - self.Start))
diff --git a/src/Mod/Fem/femtools/femutils.py b/src/Mod/Fem/femtools/femutils.py
index 2b18f2b697..fed9b162a0 100644
--- a/src/Mod/Fem/femtools/femutils.py
+++ b/src/Mod/Fem/femtools/femutils.py
@@ -407,3 +407,13 @@ def expandParentObject():
continue
for item in items:
tree.expandItem(item)
+
+
+def getOutputWinColor(type):
+ """
+ type: 'Error', 'Warning', 'Logging', 'Text'
+ """
+ col_int = FreeCAD.ParamGet(
+ "User parameter:BaseApp/Preferences/OutputWindow"
+ ).GetUnsigned("color" + type)
+ return "#{:08X}".format(col_int)[:-2]