ccbogel / QualCoder

Qualitative data analysis for text, images, audio, video. Cross platform. Python 3.10 or newer and PyQt6.
https://qualcoder.wordpress.com/
MIT License
371 stars 84 forks source link

Splash Screen Can Hide Dialog on Startup #944

Closed kaixxx closed 1 week ago

kaixxx commented 1 week ago

Describe the bug : If a dialog or message box is shown during initialization while the splash screen is still visible, it will be hidden by the splash screen and the app seems to hang (a bad design of QSplashScreen).

To Reproduce : Open a project, then kill the process of the app. On the next start, a message will pop up stating that the project was not closed correctly. This message will be invisible because it is hidden by the splash screen. Press enter to confirm, and the app will continue to load.

Expected behavior : Dialogs in front of splash screen.

Desktop (please complete the following information):

Possible solutions: 1) The splash screen could be closed before a message is shown. I do this already for the AI setup wizard, see line 1163 in __main__ However, we need to do that for every single dialog that might pop up during startup. It's easy to overlook something, so this seems a risky approach. 2) We could replace QSplashScreen with a simple frameless modal window containing the logo. In this case, new dialogs will appear in front of it and are usable. I've tested this already, and it works quite well. My preferred solution. 3) We could get rid of the splash screen altogether. I'm not sure if it's really needed. This is the simplest solution, which is also a plus.

What do you think?

I can implement whatever solution we find.

ccbogel commented 1 week ago

Hmm. I feel the simplest solution is not to use the splashscreen. I think people will be ok with that. Other similar programs such as Nvivo take a while to load up.

kaixxx commented 1 week ago

"Keep it simple" is always a good rule to follow, I'm fine with that. I'll make a pull request that removes the splash screen.