Dialog box for updating old scores unusable when under kde

• Mar 24, 2021 - 18:12
Reported version
3.6
Type
Graphical (UI)
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
won't fix
Regression
Yes
Workaround
Yes
Project

I am running a fedora 33 under kde. With Musescore 3.6.x, the dialog box for converting scores created with Musescore 3.5.x to the new fonts is unusable to me: the text for all checking boxes is written twice, with different font sizes on top of each other, and when I check a box, the button to validate disappears. Everything else runs fine.

I first reported this bug to redhat, see https://bugzilla.redhat.com/show_bug.cgi?id=1930759
There is a screenshot of this problem there.

After some investigation, it turns out that the problem on occurs with a recent version of Qt (fedora has Qt 5.15.2, while the AppImage file on Musescore website, linked against QT 5.9.8, works fine). Also, it only occurs when Qt detects it is running under kde. Then, it tries to look like kde, by loading the library
/usr/lib64/qt5/plugins/platformthemes/KDEPlasmaPlatformTheme.so
Then, depending on the way kde is configured, the bug happens or not. (But for a given configuration, it is reproducible. I don't know how this is possible, but I can make the bug disappear by choosing a dark colour theme instead of a light one.)

A workaround consists in hiding to Qt that we are running under kde. This can be done by clearing three environment variables:
XDG_CURRENT_DESKTOP= KDE_FULL_SESSION= DESKTOP_SESSION= mscore
works fine.

Another workaround consists in imposing a style for quick qt. This can be done in the following way:
QT_QUICK_CONTROLS_STYLE=Base mscore

The advantage of the second workaround is that musescore's file selector (for instance) looks like kde's, while it is qt's plain file selector with the first workaround.

Also, this particular dialog causes qt to spew a lot of warnings; the amount of warnings depending on the value of QT_QUICK_CONTROLS_STYLE. For instance, with QT_QUICK_CONTROLS_STYLE=Base , I have:

qrc:/qml/palettes/StyledButton.qml:26: TypeError: Cannot read property 'font' of null
qrc:/qml/palettes/StyledButton.qml:29: TypeError: Cannot read property 'buttonText' of null
qrc:/qml/palettes/StyledButton.qml:30: TypeError: Cannot read property 'brightText' of null
qrc:/qml/palettes/StyledButton.qml:26: TypeError: Cannot read property 'font' of null
qrc:/qml/palettes/StyledButton.qml:29: TypeError: Cannot read property 'buttonText' of null
qrc:/qml/palettes/StyledButton.qml:30: TypeError: Cannot read property 'brightText' of null
qrc:/qml/migration/ScoreMigrationDialog.qml:156: TypeError: Cannot read property 'button' of null
qrc:/qml/migration/ScoreMigrationDialog.qml:133: TypeError: Cannot read property 'buttonText' of null
qrc:/qml/migration/ScoreMigrationDialog.qml:131: TypeError: Cannot read property 'font' of null
qrc:/qml/migration/TextLabel.qml:47: TypeError: Cannot read property 'link' of null
qrc:/qml/migration/ScoreMigrationDialog.qml:120: TypeError: Cannot read property 'buttonText' of null
qrc:/qml/migration/ScoreMigrationDialog.qml:118: TypeError: Cannot read property 'font' of null
qrc:/qml/migration/TextLabel.qml:47: TypeError: Cannot read property 'link' of null
qrc:/qml/migration/ScoreMigrationDialog.qml:66: TypeError: Cannot read property 'buttonText' of null
qrc:/qml/migration/ScoreMigrationDialog.qml:63: TypeError: Cannot read property 'font' of null
qrc:/qml/migration/TextLabel.qml:47: TypeError: Cannot read property 'link' of null
qrc:/qml/migration/ScoreMigrationDialog.qml:38: TypeError: Cannot read property 'window' of null
qrc:/qml/palettes/StyledButton.qml:51: TypeError: Cannot read property 'button' of null
qrc:/qml/palettes/StyledButton.qml:51: TypeError: Cannot read property 'button' of null
qrc:/qml/migration/CheckBoxControl.qml:14: TypeError: Cannot read property 'button' of null
qrc:/qml/migration/CheckBoxControl.qml:27: TypeError: Cannot read property 'font' of null
qrc:/qml/migration/CheckBoxControl.qml:29: TypeError: Cannot read property 'buttonText' of null
qrc:/qml/migration/CheckBoxControl.qml:14: TypeError: Cannot read property 'button' of null
qrc:/qml/migration/CheckBoxControl.qml:27: TypeError: Cannot read property 'font' of null
qrc:/qml/migration/CheckBoxControl.qml:29: TypeError: Cannot read property 'buttonText' of null
qrc:/qml/migration/CheckBoxControl.qml:14: TypeError: Cannot read property 'button' of null
qrc:/qml/migration/CheckBoxControl.qml:27: TypeError: Cannot read property 'font' of null
qrc:/qml/migration/CheckBoxControl.qml:29: TypeError: Cannot read property 'buttonText' of null
qrc:/qml/migration/CheckBoxControl.qml:14: TypeError: Cannot read property 'button' of null
qrc:/qml/migration/CheckBoxControl.qml:27: TypeError: Cannot read property 'font' of null
qrc:/qml/migration/CheckBoxControl.qml:29: TypeError: Cannot read property 'buttonText' of null

There are many many more warnings with QT_QUICK_CONTROLS_STYLE=Plasma, for instance.

I am classifying this as Major because if a user doesn't know the workaround, he has no easy way to convert an old score to the new and improved typesetting of musescore 3.6


Comments

Status active won't fix

As the AppImage doesn't have this issue, we'd need to close this issue here. The maintainer over at Fedora need to fix it on their port, this can't and won't get done by MuseScore developers.