Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Kdenlive Kdenlive
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 447
    • Issues 447
    • List
    • Boards
    • Service Desk
    • Milestones
  • Bugzilla
    • Bugzilla
  • Merge requests 16
    • Merge requests 16
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MultimediaMultimedia
  • KdenliveKdenlive
  • Issues
  • #1003

Qt6 migration

https://www.qt.io/blog/qt6-development-hosts-and-targets
https://doc.qt.io/qt-6/modulechanges.html

Tasks collector when switching to Qt6

  • switch to function onFrameFormatChanged() {} fe2fc194
  • KF6 migration #1111
  • minimum requirements C++17
    • (port source code to C++17? Use clang-tidy modernize-use-override)
    • (gcc >= 11.2, clang >= LLVM 8.0, or MSVC >= 2019)
  • minimum CMake 3.16
  • change some CMake code (replace "Qt5" with "Qt")
  • Porting all QT function to Qt5.15 before update to Qt6 (https://www.youtube.com/watch?v=gbZZEIAXt3c)
  • Solve all depreciation warnings in Qt5.15.
  • Windows compiler: MSVC 2019, MinGW 11.2, packaging/craft@70f18e31
  • Windows Graphics: Direct 3D 11.1, Vulkan 1.0, or OpenGL 2.1 (ANGLE is no longer shipped with Qt in Qt 6).
  • Porting from Qt 5 to Qt 6 using Clazy checks. The checks have to be run against Qt 5, and the fixed code will only compile with Qt 6.
    • https://www.qt.io/blog/porting-from-qt-5-to-qt-6-using-clazy-checks
    • https://doc.qt.io/qt-6/porting-to-qt6-using-clazy.html
  • Port QAudioRecorder (removed in Qt6) to QMediaCaptureSession (added in Qt 6.2)
  • Port away from QtQuickControls 1 (QQC1)
  • Shutcut QT6 integration https://github.com/mltframework/shotcut/pull/1398

Task that can be already done while still using Qt5

  • Replace QRegExp by QRegularExpression (since Qt 5.0)
  • Replace QStringRef by QStringView (since Qt 5.10, feature complete since 5.15) We don't have this in the code. Some are here: 147abbfb
  • First steps to preparing the code if we building against QT6 5cfe5ef0...82b50b0a

Host operating systems in Qt 6.0:

  • Support only Windows 10 2004 (64bit Intel; msvc2019 or mingw11.2/gcc11.2)
    (Apr-22: 11.94% Win7 user https://gs.statcounter.com, 5.8% Win7 user on Kdenlive homepage)
  • macOS only in Version 10.15 (64bit Intel; XCode 11), 64bit.

Linux (https://doc.qt.io/qt-6/linux.html)

  • Ubuntu 20.04 (64bit Intel; gcc9)
  • CentOS 8.1 (64bit Intel; gcc9)
  • SLES 15 (SUSE Linux Enterprise Server, 64bit Intel; gcc10)
  • Open SUSE 15.x (64bit; gcc9)

Links to Qt6 porting documentation:

  • https://doc.qt.io/qt-6/portingguide.html
  • https://doc.qt.io/qt-6/whatsnew60.html
  • https://doc.qt.io/qt-6/qtmultimedia-changes-qt6.html
Edited Feb 26, 2023 by Eugen Mohr
Assignee
Assign to
Time tracking