I believe this is due to the calls of self.Timer.start() in file _TaskPanelCfdMesh.py.
The start method is being called with no parameter. The PySide.QtCore docs say:
The docs for interval say:PySide.QtCore.QTimer.start()
This function overloads PySide.QtCore.QTimer.start() .
Starts or restarts the timer with the timeout specified in PySide.QtCore.QTimer.interval() .
I have tried replacing callsPySide.QtCore.QTimer.interval()
Return type: PySide.QtCore.int
This property holds the timeout interval in milliseconds.
The default value for this property is 0. A PySide.QtCore.QTimer with a timeout interval of 0 will time out as soon as all the events in the window system’s event queue have been processed.
Code: Select all
self.Timer.start()
Code: Select all
self.Timer.start(100)
Code: Select all
PySide.QtCore.QTimer.setInterval(msec)
I have only tried this on a Windows system as do not have FreeCAD on a Linux box at this time.
As a further note, the timer in _TaskPanelCfdSolverControl.py is never actually started so the timer update in the GUI is never updated when the solver is running.
Lastly it would be nice if the timer display was in the format h:mm:ss.s rather than s.s as for long runs it is harder to relate to several hundred seconds whereas a few minutes is easy to understand. Using datetime.timedelta() would achieve this partially, though it would show the decimal seconds part with too many decimal places without further processing. Using something like:
Code: Select all
str(timedelta(seconds=time.time() - self.Start))[:-5]