The implementation of SheetTableView::commitData is
Code: Select all
void SheetTableView::commitData(QWidget* editor)
{
QTableView::commitData(editor);
}
The implementation of SheetTableView::commitData is
Code: Select all
void SheetTableView::commitData(QWidget* editor)
{
QTableView::commitData(editor);
}
Code: Select all
Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.recompute()");
Have you seen the reply to your bug report?Frank Schrüfer wrote: ↑Mon May 09, 2022 2:11 am The bugreport at qt is: https://bugreports.qt.io/browse/QTBUG-103333
I have written a small test application where I simulate a long pending process to update a cell in SheetModel::setData(). When following the procedure I described in the file dialog.cpp it crashes very reliably but may take a while until it does. Sometimes it also prints the warning:Looks like FreeCAD has a threading problem. I need a smaller testcase than the full application.
which means that it's definitely not a threading problem in FreeCAD.QObject::installEventFilter(): Cannot filter events for objects in a different thread.
Thanks, I did as you requested.wmayer wrote: ↑Wed May 11, 2022 12:35 pm Can you forward the ZIP file to the bug report, please? And when you are there could you also ask whether it's a good idea to put the time consuming operation into SheetModel::setData() or if it's better to start a single-shot timer and perform the operation afterwards?
Thanks. So after all it's obviously a bug in Qt.Thanks, I did as you requested.