My plugins use
self.gui.status_bar.show_message(msg) in a number of places to indicate what's going on without throwing up a dialog. Things like "Fetching email..." and "Get stuff from web page..." and frequently a matching "Finished Fetching whatever" message when it's done, with a timeout of a few seconds.
I know that all worked when I put them in--and I admit that was a long time ago.
I've noticed more recently that the 'Finished' messages appear, but not the 'Fetching' messages.
Experimentation indicates that
status_bar.show_message() calls don't update the GUI until my action/function returns back to Qt/Calibre. If I turn on notifications, I do get all the messages there.
So I suspect that Qt is not updating the status_bar widget until the GUI thread gets back to it's control.
I can brute-force it by calling
status_bar.repaint() in my code, or adding a repaint call in src/calibre/gui2/init.py:237. (In both cases, the timeout isn't honored anymore.)
Kovid, would you accept a PR add repaint() like that? Is there a better fix?
FYI, I'm using Cal 8.4 on Win10.