Open
Description
Working branch: https://github.com/LMMS/lmms/tree/qt6
As 2023-05-26 is the EOL of Qt 5.15(without subscription licenses), it's worth starting working on Qt 6 support. Since we require C++17 and has helpers for deprecated Qt features, it might be not as hard as adding Qt 5 support.
See here for more information about how to port from Qt5 to Qt6: https://doc.qt.io/qt-6/portingguide.html
I made a checklist for Qt 6 support. Please feel free to suggest something to add.
- Fix build errors/deprecation warnings with Qt 6
- Fix all deprecation warnings with Qt 5.15 (Fix more Qt deprecation warnings #6615)
- Handle removal of Qt X11 extras (Only used in X11 embedding which is disabled er Enabled VSTs on Qt 6 #7273)
- Replace
QRegExp
withQRegularExpression
(Replace QRegExp with QRegularExpression #7133) -
: Removed in Remove MemoryManager #7128MM_OPERATORS
confilcts withgetDefaultCtr
/getCopyCtr
/getMoveCtr
ofQMetaTypeInterface
forSampleBuffer
- Handle removal of
QApplication::desktop
- in
gui_templates.h
: useQWidget
's DPI instead(or entirely remove, if possible) (Font size adjustments #7185) - in
ComboBox.cpp
: useQWidget
's DPI instead(or entirely remove, if possible) (Remove use of QApplication::desktop in ComboBox.cpp #7179)
- in
- Handle signature changes of
QAbstractNativeEventFilter::nativeEventFilter
in Qt 6 (Handle signature changes for nativeEventFilter for qt6 #7254) - Either fix
qt5-x11embed
to support Qt 6 or drop XEmbed support for Qt 6 (dropped in Enabled VSTs on Qt 6 #7273) - Remove usage of Qt5Compat module in hydrogen import plugin (Remove usage of
QTextCodec
in Hydrogen Import plugin #7562)
- Work around no official supports for Qt 6 on 32bit Windows (32 bit is unsupported per consensus)
- Complete Qt 6 TODOs/FIXMEs
- A
QWheelEvent
may have both x and y deltas, potentially breakingSongEditor::wheelEvent
(see Qt deprecation fix #5619 (comment))
- A
- Fix new bugs with Qt 6 builds, if any
-
QComboBox::activated(const QString&)
is renamed totextActivated
in Qt 5.14, breaking signal-slot connections
-
- Add CI builds for Qt 6
- Windows + MSVC
- Windows + MinGW
- macOS
- Linux
- Check if packaging still works
- Windows
- macOS
- Linux
- Update build instructions on Wiki