Skip to content

Commit b2e50b7

Browse files
committed
Port away from QtCore5Compat )
Use QStringDecoder instead of the legacy QTextDecoder
1 parent b842860 commit b2e50b7

8 files changed

Lines changed: 23 additions & 17 deletions

File tree

.github/workflows/build-distros.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ jobs:
3434
sed -i 's/^Types: deb/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources
3535
DEBIAN_FRONTEND=noninteractive apt-get -qq update
3636
DEBIAN_FRONTEND=noninteractive apt-get -yqq build-dep mlt
37-
DEBIAN_FRONTEND=noninteractive apt-get -yqq install cmake qt6-base-dev libqt6svg6-dev libqt6core5compat6-dev
37+
DEBIAN_FRONTEND=noninteractive apt-get -yqq install cmake qt6-base-dev libqt6svg6-dev
3838
- name: ubuntu-22.04
3939
image: ubuntu:22.04
4040
setup_script: |
4141
sed -i '/^#\sdeb-src /s/^#//' "/etc/apt/sources.list"
4242
DEBIAN_FRONTEND=noninteractive apt-get -qq update
4343
DEBIAN_FRONTEND=noninteractive apt-get -yqq build-dep mlt
44-
DEBIAN_FRONTEND=noninteractive apt-get -yqq install cmake qt6-base-dev libqt6svg6-dev libqt6core5compat6-dev
44+
DEBIAN_FRONTEND=noninteractive apt-get -yqq install cmake qt6-base-dev libqt6svg6-dev
4545
- name: debian-unstable
4646
image: debian:unstable
4747
setup_script: |
@@ -54,15 +54,15 @@ jobs:
5454
echo 'deb-src http://deb.debian.org/debian testing main' >> /etc/apt/sources.list
5555
apt-get -qq update
5656
apt-get -yqq build-dep mlt
57-
apt-get -yqq install cmake qt6-base-dev libqt6svg6-dev libqt6core5compat6-dev
57+
apt-get -yqq install cmake qt6-base-dev libqt6svg6-dev
5858
- name: debian-stable
5959
image: debian:stable
6060
setup_script: |
6161
echo 'deb-src http://deb.debian.org/debian stable main\ndeb-src http://deb.debian.org/debian stable-updates main' >> /etc/apt/sources.list
6262
echo 'deb http://deb.debian.org/debian bookworm-backports main' >> /etc/apt/sources.list
6363
apt-get -qq update
6464
apt-get -yqq build-dep mlt
65-
apt-get -yqq install cmake qt6-base-dev libqt6svg6-dev libqt6core5compat6-dev
65+
apt-get -yqq install cmake qt6-base-dev libqt6svg6-dev
6666
- name: fedora-42
6767
image: fedora:42
6868
setup_script: |
@@ -71,7 +71,7 @@ jobs:
7171
yasm gavl-devel libsamplerate-devel libxml2-devel \
7272
ladspa-devel jack-audio-connection-kit-devel sox-devel \
7373
SDL2-devel fftw-devel frei0r-devel gtk2-devel libexif-devel \
74-
qt6-qtbase-devel qt6-qt5compat-devel qt6-qtsvg-devel \
74+
qt6-qtbase-devel qt6-qtsvg-devel \
7575
libtheora-devel libvorbis-devel libvdpau-devel \
7676
libsoup-devel liboil-devel python-devel alsa-lib \
7777
pulseaudio-libs-devel gcc-c++ cmake ffmpeg-free-devel \
@@ -84,7 +84,7 @@ jobs:
8484
yasm gavl-devel libsamplerate-devel libxml2-devel \
8585
ladspa-devel jack-audio-connection-kit-devel sox-devel \
8686
SDL2-devel fftw-devel frei0r-devel gtk2-devel libexif-devel \
87-
qt6-qtbase-devel qt6-qt5compat-devel qt6-qtsvg-devel \
87+
qt6-qtbase-devel qt6-qtsvg-devel \
8888
libtheora-devel libvorbis-devel libvdpau-devel \
8989
libsoup-devel liboil-devel python-devel alsa-lib \
9090
pulseaudio-libs-devel gcc-c++ cmake ffmpeg-free-devel \

.github/workflows/build-linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
sudo sed -i '/^#\sdeb-src /s/^#//' "/etc/apt/sources.list"
3939
sudo apt-get -qq update
4040
sudo apt-get -yqq build-dep mlt
41-
sudo apt-get -yqq install qt6-base-dev libqt6svg6-dev libqt6core5compat6-dev
41+
sudo apt-get -yqq install qt6-base-dev libqt6svg6-dev
4242
sudo apt-get -yqq install cmake ninja-build kwalify
4343
cmake -D CMAKE_BUILD_TYPE=Debug -D BUILD_TESTING=ON -D SWIG_PYTHON=ON -S . -B build -G Ninja
4444
cmake --build build

.github/workflows/build-msys2-mingw64.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ jobs:
4949
mingw-w64-x86_64-potrace
5050
mingw-w64-x86_64-python-pip
5151
mingw-w64-x86_64-qt5-base
52-
mingw-w64-x86_64-qt6-5compat
5352
mingw-w64-x86_64-qt6-base
5453
mingw-w64-x86_64-qt6-svg
5554
mingw-w64-x86_64-rubberband

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ endif()
306306
# It is necessary to look for Qt6 before Qt5, otherwise there will
307307
# be a conflict with the targets in case both are enabled
308308
if(MOD_QT6)
309-
find_package(Qt6 REQUIRED COMPONENTS Core Gui Xml SvgWidgets Core5Compat)
309+
find_package(Qt6 REQUIRED COMPONENTS Core Gui Xml SvgWidgets)
310310
list(APPEND MLT_SUPPORTED_COMPONENTS qt6)
311311
endif()
312312

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ FROM base AS build
1111
RUN apt-get install -yqq wget git automake autoconf libtool intltool g++ yasm nasm \
1212
swig libgavl-dev libsamplerate0-dev libxml2-dev ladspa-sdk libjack-dev \
1313
libsox-dev libsdl2-dev libgtk2.0-dev libsoup2.4-dev \
14-
qt6-base-dev qt6-5compat-dev qt6-svg-dev libarchive-dev libmp3lame-dev \
14+
qt6-base-dev qt6-svg-dev libarchive-dev libmp3lame-dev \
1515
libexif-dev libtheora-dev libvorbis-dev python3-dev cmake xutils-dev \
1616
libegl1-mesa-dev libeigen3-dev libfftw3-dev libvdpau-dev meson ninja-build
1717

@@ -29,7 +29,7 @@ FROM base
2929
RUN apt-get install -yqq dumb-init \
3030
libsamplerate0 libxml2 libjack0 \
3131
libsdl2-2.0-0 libgtk2.0-0 libsoup2.4-1 \
32-
libqt6core5compat6 libqt6svgwidgets6 libqt6xml6 qt6-image-formats-plugins libarchive13 \
32+
libqt6svgwidgets6 libqt6xml6 qt6-image-formats-plugins libarchive13 \
3333
libtheora0 libvorbis0a python3 \
3434
libegl1 libfftw3-double3 libvdpau1 \
3535
# Additional runtime libs \

src/modules/qt/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ function(mlt_add_qt_module ARG_TARGET)
6868
if(ARG_QT_VERSION EQUAL 6)
6969
target_link_libraries(${ARG_TARGET} PRIVATE
7070
Qt6::SvgWidgets
71-
Qt6::Core5Compat
7271
)
7372
else()
7473
target_link_libraries(${ARG_TARGET} PRIVATE

src/modules/qt/filter_qtext.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
2929
#include <QTextCodec>
3030
#else
31-
#include <QtCore5Compat/QTextCodec>
31+
#include <QStringDecoder>
3232
#endif
3333

3434
#include "typewriter.h"
@@ -394,10 +394,15 @@ static QTextDocument *get_rich_text(mlt_properties properties, double width, dou
394394
QFile file(resource);
395395
if (file.open(QFile::ReadOnly)) {
396396
QByteArray data = file.readAll();
397-
QTextCodec *codec = QTextCodec::codecForHtml(data);
398397
doc = new QTextDocument;
399398
doc->setPageSize(QSizeF(width, height));
399+
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
400+
QTextCodec *codec = QTextCodec::codecForHtml(data);
400401
doc->setHtml(codec->toUnicode(data));
402+
#else
403+
QStringDecoder decoder = QStringDecoder::decoderForHtml(data);
404+
doc->setHtml(decoder(data));
405+
#endif
401406
mlt_properties_set_data(properties,
402407
"QTextDocument",
403408
doc,

src/modules/qt/producer_qtext.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@
3232
#include <QTextCodec>
3333
#include <QTextDecoder>
3434
#else
35-
#include <QtCore5Compat/QTextCodec>
36-
#include <QtCore5Compat/QTextDecoder>
35+
#include <QStringDecoder>
3736
#endif
3837

3938
static void close_qimg(void *qimg)
@@ -161,12 +160,16 @@ static void generate_qpath(mlt_properties producer_properties)
161160
// Make the path empty
162161
*qPath = QPainterPath();
163162
qPath->setFillRule(Qt::WindingFill);
164-
163+
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
165164
// Get the strings to display
166165
QTextCodec *codec = QTextCodec::codecForName(encoding);
167166
QTextDecoder *decoder = codec->makeDecoder();
168167
QString s = decoder->toUnicode(text);
169168
delete decoder;
169+
#else
170+
auto decoder = QStringDecoder(encoding);
171+
QString s = decoder(text);
172+
#endif
170173
QStringList lines = s.split("\n");
171174

172175
// Configure the font

0 commit comments

Comments
 (0)