Qt4 has reached end of life and does not get ANY bugfixes. Operating systems are also starting to drop Qt4 support or already have done so. So I think migrating Hedgewars to Qt5 is an important long-term goal. See also: https://hedgewars.org/node/6630
Someone has provided some WIP code: http://hedgewars.org/node/6813 I haven't looked at this yet.
Qt 4 will be removed from the next Debian. We must hurry. https://wiki.debian.org/Qt4Removal
The Gentoo Linux distribution is actively removing Qt4 packages from its repository. It seems Hedgewars has been just marked for removal: https://archives.gentoo.org/gentoo-dev/message/5757e3b1628b96ff4305a8d98ab6c04a
The importance of this has climbed even higher due to the gentoo timeline. It might force our hand on the qml migration. QML would be preferable long-term, but unfortunately hacking in a fix for the removed qt4 functionality we are dependent on that was stripped from qt5 and doing the simpler conversion otherwise, might be necessary in the interim. Even if we all worked hard on the qml, seems unlikely could get it tested and reliable in time.
unC0Rr has started qt5transition branch that does mechanical tranformation from Qt 4 to Qt 5. In order to switch to this branch, you need to do: hg up qt5transition On Debian-based systems, you need main Qt 5 development packages but also libqt5svg5-dev and qttools5-dev.
You also need qtbase5-private-dev.
Also qttools5-dev-tools
Created attachment 77 [details] Graph bug Graphs at the end of the round are broken.
Created attachment 78 [details] Scheme settings scaling bug The "No" signs in scheme settings are scaled incorrectly.
unc0rr made this interim branch: https://hg.hedgewars.org/hedgewars/log?rev=branch(qt5transition) It makes use of the fact that while qt5 removed the FileEngine he was using for physfs, it is still available privately, at least for now. https://hg.hedgewars.org/hedgewars/diff/12897/QTfrontend/util/FileEngine.h In testing, it seems fine, apart from qt5 messing up some styling, an old problem with Qt that setting app.setStyle("fusion") in main.cpp seems to fix. Apart from that, I didn't run into any issues. The permanent solution is the: https://hg.hedgewars.org/hedgewars/log?rev=branch(qmlfrontend)
Recent commits by unC0Rr have fixed all the bugs that I've found. Should be good for release.
We're on Qt5 now. Remaining bugs related to the transition are tracked here: https://issues.hedgewars.org/show_bug.cgi?id=591