Make Jamulus iOS compatible with Qt6
Describe the bug
Even though Jamulus can be compiled with Qt6 and it runs, there are multiple UI issues. Also the app hangs and crashes in multiple places.
- The chat window doesn't have the correct proportions. Especially if turning the device around the chat window overflows the screen
- Tapping the chat window Close button hangs and then crashes the app on the next tap.
- Changing the language in settings doesn't apply and the app hangs.
- Further bugs to be investigated
Related: https://github.com/jamulussoftware/jamulus/issues/2711
- Probably the app cannot display the message saying that the app needs a restart: If I remove QMessageBox::information(), the app doesn't hang and after a restart the language is changed correctly.
Operating system
iOS 17
Version of Jamulus
Latest version from main
Additional context
Try compiling Jamulus with Qt6 for iOS.
Pasting https://forum.qt.io/topic/15326/solved-qlayout-items-not-expanding-on-resize/4 here. Maybe related to the crash of the languages change.
@softins do you own an iPad? I'd like to get the app on TestFlight to find further bugs. Then I'd like to test on iPads too.
Yes, and have Testflight on it. iOS 16.7, which I think is the latest it will take (2016 model).
Thanks. I'll try to work out how to get the app on TestFlight in the following days. It would be great if you could confirm if the mentioned issues all also occur on iPadOS
Hotfix for 2 is probably not using the close() signal but hide() instead.
Hotfix for 3 is conditionally getting rid of the warning message on iOS.
Ok. Also the Qt5 build hangs with the language change. So that's not a new bug. Qt5 doesn't even open the about dialog. However, there's no need to turn the screen to get a working, non overflowing screen on Qt5.
Changing the skin to compact, Bar (narrow) makes the app somewhat usable.
Ok. The mixer board issue comes from the "Setup your audio,... message". I'll change it to be brief on iOS.
We could force the GD_SLIMFADER design on iOS... Hiding the text is not so easy. The issue still remains, if .hide() is applied on the text. However, if it is removed from the Qt created code, it's ok. Potentially also the stylesheet for the fancy design could be adapted.
Language bug might be fixable by using a Qt::QueuedConnection.
https://bugreports.qt.io/browse/QTBUG-64577
Further error: 5. The connect window has wrong proportions but can be fixed by turning the screen around
Probably that's related to the same issue as the mixer board: The table might be too wide. It might also be the "show all musicians" checkbox
- Mute myself bar is too wide
AppStore connect requests a usage description for camera access. This could be related to file access of the app.
- The save mixer channel dialog overflows the screen and doesn't use an iOS integrated one - this dialog type doesn't exist on iOS. We'd need to specify a name before saving, I suppose. Then maybe invoke the share sheet?
Concerning the UI issues, I'd like to start with the mixer board.
I think all of the issues are related to some item overflowing and then just stretching the whole window over the device size.
See: https://github.com/user-attachments/assets/50779205-f017-47fa-966c-825256d564a3
If I tap the mute myself button the screen overflows but it can be fixed by rotating.
If VoiceOver is on, the app crashes as soon as the connection dialog is opened
Since the latest build is no longer crashing: https://testflight.apple.com/join/xZRwhf63 as public TestFlight link.