Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to Qt 6.8 #25016

Draft
wants to merge 18 commits into
base: master
Choose a base branch
from
Draft

Conversation

cbjeukendrup
Copy link
Contributor

@cbjeukendrup cbjeukendrup commented Oct 2, 2024

Resolves: #11244
Resolves: #12467 (probably, according to comment there)
Resolves: #22416
Resolves: #23505
Resolves: #23970
Resolves: #24206
Resolves: #24232
Resolves: #24579
Resolves: #24613
Resolves: #24667
Resolves: #24716
Resolves: #25300
Resolves: #25307
Resolves: #25379

@cbjeukendrup cbjeukendrup force-pushed the qt6/next/6.8 branch 21 times, most recently from e4221e5 to 1f7cbde Compare October 5, 2024 22:05
@cbjeukendrup
Copy link
Contributor Author

Status update:

  • on macOS, it works
  • on Linux, I can't check but I think it works
  • on Windows, CI builds (almost) work, but local builds not, because they can't find Qt DLLs.
    • There are two solutions:
      • letting everyone add Qt library folders to their PATH (for normal targets, Qt Creator does this automatically, but not for "Custom executable" targets; and we have to use the latter, because we always need to use the executable from the install folder)
      • making windeployqt part of the CMake install step (might take long-ish)
        I'm not sure yet which one I'll choose.
  • we finally have VTests to look at!
    • I see no major disasters at a first glance
    • It looks like they refined the BBox calculation for text, seemingly for the better. This causes some texts to land on a different pixel.
      • At lyrics-9-1, you can see that the bbox is now less overestimated.
      • It is beneficial for center/right alignment, see frametext-1.
      • Sometimes, this causes slightly more drastic layout changes, because now some items suddenly fit 'before' something else instead of trying to avoid it by moving up vertically. See for example musejazz-10-1.
    • There are some disappearing texts though:
      • the 'full' text on (old?) bends (bend-1-1)
      • the fret number for fretboard diagrams (harmony-align-1)
      • (in lyrics-11-1, the gliss text appears, because with the new bbox calculation there is now enough space)
  • And then we have the fact that the version of KDDockWidgets that we use is not really compatible with Qt 6.5+, see Qt 6.5+: docks do not open after the last dock on a panel is closed #24866
  • And we'll doubtlessly find more bugs. I already found two:
    • on Windows, the text on the Spash Screen seems to be partially missing
    • the positioning on those big icon+text buttons looks off
      Scherm­afbeelding 2024-10-06 om 01 07 15

Next thing I'm going to try is what happens when we switch to DirectWrite.

which is required for Qt 6.5.0
It was deprecated in Qt 6.4. Basically, just need to specify `globalPos`
It was deprecated during the Qt 6.8 beta phase, but it looks like this deprecation has been postponed to Qt 6.9.

Anyway, there is now a better alternative called `checkStateChanged`, that uses `Qt::CheckState` instead of `int`.
To be sure that we're using a new-enough version for all Qt 6.8 features
I verified that they don't do anything scary, so let's use them, to keep our code in line with the documentation, and to be sure that we're ready to use modern Qt/CMake possibilities.
When an error occurs while creating a component, don't cause even more errors by reading from `null` at `dialogObj.object.objectId`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment