Menu

#1691 Use of QString::back() inconsistent with published list of dependencies

None
open
nobody
None
5
2024-06-05
2024-06-04
Ambrose Li
No

The official Get Dependencies page lists the minimum qt5 version as 5.1.0, but the current version of Rosegarden (23.xx) uses QString::back(), which apparently did not exist until QT 5.10 (even though the current QT docs do not say so). As a result Rosegarden would fail to compile on, for example, a system with QT 5.4, even though 5.4 should meet the minimum requirements.

Discussion

  • Ambrose Li

    Ambrose Li - 2024-06-04

    There are more inconsistencies. For example, the code uses QString::asprintf, which did not exist until QT 5.5. However, both back() and asprintf() can be worked around fairly easily.

    QWheelEvent would be much harder to work around. The official docs say it also did not exist until QT 5.5. The <qwheelevent> header does exist in QT 5.4, but it’s an alias of <qevent.h>, which does not have .source or .inverted.</qevent.h></qwheelevent>

    There might be more inconsistencies I find as I try to compile the current version with QT 5.4.

    I think it looks like the official list of dependencies needs an update, with a note that says something like beginning with 23.xx we need QT 5.10.

     

    Last edit: Ambrose Li 2024-06-04
  • Ted Felix

    Ted Felix - 2024-06-05

    Thanks for testing with various versions of Qt. I only have 5.15. Really interested in your opinion on this in terms of how it might impact potential users.

    • Should we work towards supporting versions prior to Qt 5.10? How many actual users is this likely to impact?
    • Should we just update the dependencies list to say Qt 5.10? That's easiest for me. I should probably just do that for now.
    • When should we drop Qt5 support? Support ended 26 May 2023. I'm not sure that we care since it works fine.
     
  • Ambrose Li

    Ambrose Li - 2024-06-05

    I only have QT 5.4 on my main computer (which I cannot upgrade until I can figure out how; I also have QT6.4 on my Pi) so I’m biased. But I’d say updating the dependencies list now sounds fair.

    I do have Rosegarden (14.12) so the page was correct at one point. How has that list been maintained? Did we just up the min versions as the code evolved, or did we try to make the code consistent with the list?

     
  • Ted Felix

    Ted Felix - 2024-06-05

    We usually just forget about it and wait for someone to complain. Then we fix rg to be compatible with the older Qt that they are running. We rarely ever get complaints.

    So, if it's easy to get it working with 5.5 or whatever works for you, we should probably pursue that and you can make sure we're honest in the future.

     
  • Ambrose Li

    Ambrose Li - 2024-06-05

    Ok, let me see if I can make it work and get back to you. I’m not really a QT programmer so this will take some time.

     

Log in to post a comment.