Draft: Migrate to PyQt6

Daniel Martin requested to merge ninjakiwi/openlp:migrate-to-pyqt6 into master

This is not even close to production ready, and is very experimental. This branch currently works on my linux machine with song lyrics but not much else has been tested.

My attempt to port OpenLP to PyQt6.

Update (Hello again, long time no see): Rebased! I have crossed out the issues which are no longer relevant, either due to commits since my first attempt, or updates to upstream software.

I wanted to see what issues we might run into when we upgrade to PyQt6. This branch has the following known issues on my machine:

  • Preview displays do not work

  • Potential crash due to me missing a enum; that are now all required to be as their extended form in PyQt6. (I used a script, but it did not catch everything)

  • Multiple graphical bugs when running on wayland (which is Qt6's default on wayland environments); XWayland works fine.

    Wayland issues:

    • Title bar flickers and sometimes not visible
    • Display window does not go on designated screen (Update: I added some code to set the display as fullscreen if not using a custom area and it works great.)
    • Window position and size does not sustain over sessions

New things since the rebase

  • HDPI things may act differently due to Qt6; some of the HDPI code was removed as it is not supported/default.
  • Custom display location does not work on my main monitor; this may be due to how gnome handles windows trying to sit on top of the system bar.
  • Tests are still very much broken, I'm having a bit of difficulty getting pytest to run on my new machine.
Edited by Daniel Martin

Merge request reports