View Single Post
Old 06-10-2025, 06:24 PM   #1
JimmXinu
Plugin Developer
JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.
 
JimmXinu's Avatar
 
Posts: 6,980
Karma: 4604635
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
Status Bar Show Message

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.
JimmXinu is offline   Reply With Quote