It's hard to provide small piece of code but I can first provide the whole project. Few helper conclusions:
  1. Scroll bar positions are remembered in rememberScrollBars();
  2. First two QTableWidgets (ui->tableWidget, ui->tableWidget_2) are being filled with insertLZCSDTableRow()
  3. The third (problematic) QTableWidget is being filled with insertLZSDETableRow() (so LZSDE, not LZCSD)
  4. The QProcess-triggered callbacks that provide data for the tables are: handle_zkiresize_list() for tableWidget&tableWidget_2, handle_zkiresize_consistent() for tableWidget_3
  5. Vertical scroll bar position is restored (comment "RESTORE SCROLL", 3 times in code) via e.g. ui->tableWidget_3->verticalScrollBar()->setValue(...)
  6. I now always call setMaximum() to a large value (two times the expected maximum) before calling setValue(), and this helps


Who knows, maybe someone would like to build this project. CMake can build everything, but there are also .pro files, and one could just fix libraries paths in it. I guess building own libgit2 might not be a great idea, but it's fixable by just changing library reference to an external one, in manager.pro file. To run the project one needs psprint/zkl github repository placed at ~/.zekyll/repos/gh---psprint---zkl---master, and backend "zekyll" (https://github.com/psprint/zekyll) placed at ~/.zekyll/zekyll

The source: