"The insulting commit is d0f909f8dbdd8594b0d950822f0e7ab8728da513 but I don't think it's a problem within Qt but due to the fact that the signals from the horizontal header are blocked when sortByColumn() is called.
This internal implementation behavior was changed and is now in sync with QTreeView::sortByColumn() which always relied on the sortIndicatorChanged() signal from the header.
So don't block the signals from the header and it will work as expected."
Maybe it's best that calibre does not use this function anymore.
Cross-posting a reply from the Qt ticket:
"The insulting commit is d0f909f8dbdd859 4b0d950822f0e7a b8728da513 but I don't think it's a problem within Qt but due to the fact that the signals from the horizontal header are blocked when sortByColumn() is called.
This internal implementation behavior was changed and is now in sync with QTreeView: :sortByColumn( ) which always relied on the sortIndicatorCh anged() signal from the header.
So don't block the signals from the header and it will work as expected."
Maybe it's best that calibre does not use this function anymore.