From 51b566869164b53f76f915959e9298b5dcb31bb3 Mon Sep 17 00:00:00 2001 From: Dan Dennedy Date: Wed, 7 Aug 2013 23:55:16 -0700 Subject: [PATCH] Add support for Qt 5, drop support for Qt 3 and KDE 3. --- src/modules/qimage/Makefile | 4 - src/modules/qimage/configure | 106 +++++++++---------- src/modules/qimage/consumer_qglsl.cpp | 6 +- src/modules/qimage/kdenlivetitle_wrapper.cpp | 48 ++++----- src/modules/qimage/qimage_wrapper.cpp | 44 ++------ src/modules/qimage/transition_vqm.cpp | 9 +- 6 files changed, 91 insertions(+), 126 deletions(-) diff --git a/src/modules/qimage/Makefile b/src/modules/qimage/Makefile index eedfc615..7b9e71bf 100644 --- a/src/modules/qimage/Makefile +++ b/src/modules/qimage/Makefile @@ -21,10 +21,6 @@ CXXFLAGS += $(CFLAGS) $(QTCXXFLAGS) $(EXIFCXXFLAGS) $(KDECXXFLAGS) -Wno-deprecat LDFLAGS += $(QTLIBS) $(EXIFLIBS) $(KDELIBS) -ifdef USE_KDE3 -LDFLAGS += -lkio -endif - SRCS := $(OBJS:.o=.c) $(CPPOBJS:.o=.cpp) all: $(TARGET) diff --git a/src/modules/qimage/configure b/src/modules/qimage/configure index a9ec7f81..efd10db4 100755 --- a/src/modules/qimage/configure +++ b/src/modules/qimage/configure @@ -5,9 +5,8 @@ then cat << EOF QImage options: - --force-qt3 - Force compile against Qt3 if Qt4 is present on the system - --qimage-libdir - Location of QT lib directory [/usr/lib/qt4 or /usr/lib/qt3] - --qimage-includedir - Location of QT include directory [/usr/include/qt4 or /usr/include/qt3] + --qimage-libdir - Location of QT lib directory [/usr/lib/qt4] + --qimage-includedir - Location of QT include directory [/usr/include/qt4] --kde-libdir - Location of KDE lib directory [/usr/lib] --kde-includedir - Location of KDE include directory [/usr/include/kde] --exif-libdir - Location of libexif lib directory [/usr/lib] @@ -41,8 +40,6 @@ else qimage_libdir="$QTDIR/lib" fi - export force_qt3= - export qt4_found= export without_kde= for i in "$@" @@ -54,7 +51,6 @@ else --kde-includedir=* ) kde_includedir="${i#--kde-includedir=}" ;; --exif-libdir=* ) exif_libdir="${i#--exif-libdir=}" ;; --exif-includedir=* ) exif_includedir="${i#--exif-includedir=}" ;; - --force-qt3 ) force_qt3="true" ;; --without-kde ) without_kde="true" ;; esac done @@ -65,85 +61,79 @@ else pkg-config --exists 'libexif' if [ $? -eq 0 ] then - echo "Libexif found, enabling auto rotate" - echo "#define USE_EXIF" >> config.h - echo "USE_EXIF=1" >> config.mak - echo EXIFCXXFLAGS=$(pkg-config --cflags libexif ) >> config.mak - echo EXIFLIBS=$(pkg-config --libs libexif) >> config.mak + echo "- Libexif found, enabling auto rotate" + echo "#define USE_EXIF" >> config.h + echo "USE_EXIF=1" >> config.mak + echo EXIFCXXFLAGS=$(pkg-config --cflags libexif ) >> config.mak + echo EXIFLIBS=$(pkg-config --libs libexif) >> config.mak elif [ -d "$exif_libdir" -a -d "$exif_includedir" ] then # test if we have a libexif if [ -f "$exif_libdir/exif-data.h" ] then - echo "Libexif found, enabling auto rotate" + echo "- Libexif found, enabling auto rotate" echo "#define USE_EXIF" >> config.h echo "USE_EXIF=1" >> config.mak echo EXIFCXXFLAGS=-I$exif_includedir >> config.mak - echo EXIFLIBS=-L$exif_libdir lexif >> config.mak + echo EXIFLIBS=-L$exif_libdir lexif >> config.mak else - echo "Libexif not found, disabling exif features (auto rotate)" + echo "- Libexif not found, disabling exif features (auto rotate)" fi fi if [ -d "$qimage_libdir" -a -d "$qimage_includedir" ] then - # test if we have a Qt3 or Qt4 - if [ -f "$qimage_libdir/libQtCore.so" ] || [ -d "$qimage_libdir/QtGui.framework" ] || [ -f "$qimage_libdir/libQtCore4.a" ] && [ "$force_qt3" = "" ] + # test if we have a Qt5 or Qt4 + if [ -f "$qimage_libdir/libQt5Core.so" ] then - echo "Qt version 4.x detected, will compile Qt4 qimage producer" - qt4_found=true + echo "- Qt version 5.x detected" + # TODO re-enable KDE support when KDE Frameworks 5 widely available + without_kde=true + elif [ -f "$qimage_libdir/libQtCore.so" ] || [ -d "$qimage_libdir/QtGui.framework" ] || [ -f "$qimage_libdir/libQtCore4.a" ] && [ "$force_qt3" = "" ] + then + echo "- Qt version 4.x detected" else - echo "Qt version 3.x detected, will compile Qt3 qimage producer" + echo "- Qt not found: disabling" + touch ../disable-qimage + exit 0 fi - echo "Include directory: " $qimage_includedir + echo "- Include directory: " $qimage_includedir - if [ "$qt4_found" != "" ] && [ "$force_qt3" = "" ] + if [ -f "$qimage_libdir/libQt5Core.so" ] then - echo "#define USE_QT4" >> config.h - echo "USE_QT4=1" >> config.mak - if [ -d "$qimage_libdir/QtGui.framework" ] - then - echo QTCXXFLAGS=$(pkg-config --cflags QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak - echo QTLIBS=$(pkg-config --libs QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak - elif [ -f "$qimage_libdir/libQtCore4.a" ] - then - echo QTCXXFLAGS=-I$qimage_includedir >> config.mak - echo QTLIBS=-Wl,-enable-auto-import -L$qimage_libdir -lQtCore4 -lQtGui4 -lQtXml4 -lQtSvg4 -lQtOpenGL4 >> config.mak - else - echo QTCXXFLAGS=-I$qimage_includedir >> config.mak - echo QTLIBS=-L$qimage_libdir -lQtCore -lQtGui -lQtXml -lQtSvg -lQtOpenGL >> config.mak - fi + echo QTCXXFLAGS=-I$qimage_includedir -I$qimage_includedir/QtCore -I$qimage_includedir/QtGui -I$qimage_includedir/QtXml -I$qimage_includedir/QtSvg -I$qimage_includedir/QtOpenGL -I$qimage_includedir/QtWidgets >> config.mak + echo QTLIBS=-Wl,-rpath-link,"$qimage_includedir" -L"$qimage_libdir" -lQt5Core -lQt5Gui -lQt5Xml -lQt5Svg -lQt5OpenGL -lQt5Widgets >> config.mak + elif [ -d "$qimage_libdir/QtGui.framework" ] + then + echo QTCXXFLAGS=$(pkg-config --cflags QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak + echo QTLIBS=$(pkg-config --libs QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak + elif [ -f "$qimage_libdir/libQtCore4.a" ] + then + echo QTCXXFLAGS=-I$qimage_includedir -I$qimage_includedir/QtCore -I$qimage_includedir/QtGui -I$qimage_includedir/QtXml -I$qimage_includedir/QtSvg -I$qimage_includedir/QtOpenGL >> config.mak + echo QTLIBS=-Wl,-enable-auto-import -L$qimage_libdir -lQtCore4 -lQtGui4 -lQtXml4 -lQtSvg4 -lQtOpenGL4 >> config.mak else - if [ "$without_kde" = "" ] && [ -d "$kde_includedir" ] - then - echo "#define USE_KDE3" >> config.h - echo "USE_KDE3=1" >> config.mak - echo "#define USE_QT3" >> config.h - echo "USE_QT3=1" >> config.mak - echo QTCXXFLAGS=-I$qimage_includedir -I$kde_includedir -DQT_THREAD_SUPPORT >> config.mak - echo QTLIBS=-L$qimage_libdir -L$kde_libdir -lqt-mt >> config.mak - else - echo "qimage: KDE environment not found or disabled by request - disabling extra image formats" - echo "#define USE_QT3" >> config.h - echo "USE_QT3=1" >> config.mak - echo QTCXXFLAGS=-I$qimage_includedir -DQT_THREAD_SUPPORT>> config.mak - echo QTLIBS=-L$qimage_libdir -lqt-mt >> config.mak - fi + echo QTCXXFLAGS=-I$qimage_includedir -I$qimage_includedir/QtCore -I$qimage_includedir/QtGui -I$qimage_includedir/QtXml -I$qimage_includedir/QtSvg -I$qimage_includedir/QtOpenGL >> config.mak + echo QTLIBS=-L$qimage_libdir -lQtCore -lQtGui -lQtXml -lQtSvg -lQtOpenGL >> config.mak fi else pkg-config --exists 'QtGui >= 4' - if [ $? -eq 0 ] && [ "$force_qt3" = "" ] + if [ $? -eq 0 ] then - echo "Qt version 4.x detected, will compile Qt4 qimage producer" - qt4_found=true - echo "#define USE_QT4" >> config.h - echo "USE_QT4=1" >> config.mak + echo "- Qt version 4.x detected" echo QTCXXFLAGS=$(pkg-config --cflags QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak echo QTLIBS=$(pkg-config --libs QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak else - echo "qimage: QT environment not found - disabling" - touch ../disable-qimage + pkg-config --exists 'Qt5Gui' + if [ $? -eq 0 ] + then + echo "- Qt version 5.x detected" + echo QTCXXFLAGS=$(pkg-config --cflags Qt5Core Qt5Gui Qt5Xml Qt5Svg Qt5OpenGL Qt5Widgets) >> config.mak + echo QTLIBS=$(pkg-config --libs Qt5Core Qt5Gui Qt5Xml Qt5Svg Qt5OpenGL Qt5Widgets) >> config.mak + else + echo "- Qt not found - disabling" + touch ../disable-qimage + fi fi fi @@ -163,7 +153,7 @@ else fi if [ -d "$kde_includedir" ] && [ -d "$kde_libdir" ] then - echo "KDE version 4.x detected, will enable extra image formats" + echo "- KDE version 4.x detected, will enable extra image formats" echo "#define USE_KDE4" >> config.h echo "USE_KDE4=1" >> config.mak echo KDECXXFLAGS=-I$kde_includedir >> config.mak diff --git a/src/modules/qimage/consumer_qglsl.cpp b/src/modules/qimage/consumer_qglsl.cpp index d87a7b75..660bb3b5 100644 --- a/src/modules/qimage/consumer_qglsl.cpp +++ b/src/modules/qimage/consumer_qglsl.cpp @@ -18,9 +18,9 @@ */ #include -#include -#include -#include +#include +#include +#include static void onThreadStarted(mlt_properties owner, mlt_consumer consumer) { diff --git a/src/modules/qimage/kdenlivetitle_wrapper.cpp b/src/modules/qimage/kdenlivetitle_wrapper.cpp index 1f701f1b..2d5bc4d6 100755 --- a/src/modules/qimage/kdenlivetitle_wrapper.cpp +++ b/src/modules/qimage/kdenlivetitle_wrapper.cpp @@ -20,31 +20,31 @@ #include "kdenlivetitle_wrapper.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include #include #if QT_VERSION >= 0x040600 -#include -#include -#include +#include +#include +#include #endif static QApplication *app = NULL; @@ -260,7 +260,7 @@ void loadFromXml( mlt_producer producer, QGraphicsScene *scene, const char *temp if (base64.isEmpty()){ img.load(url); }else{ - img.loadFromData(QByteArray::fromBase64(base64.toAscii())); + img.loadFromData(QByteArray::fromBase64(base64.toLatin1())); } ImageItem *rec = new ImageItem(img); scene->addItem( rec ); @@ -275,7 +275,7 @@ void loadFromXml( mlt_producer producer, QGraphicsScene *scene, const char *temp rec = new QGraphicsSvgItem(url); }else{ rec = new QGraphicsSvgItem(); - QSvgRenderer *renderer= new QSvgRenderer(QByteArray::fromBase64(base64.toAscii()), rec ); + QSvgRenderer *renderer= new QSvgRenderer(QByteArray::fromBase64(base64.toLatin1()), rec ); rec->setSharedRenderer(renderer); } if (rec){ diff --git a/src/modules/qimage/qimage_wrapper.cpp b/src/modules/qimage/qimage_wrapper.cpp index 18a0c9f2..fc871e6c 100644 --- a/src/modules/qimage/qimage_wrapper.cpp +++ b/src/modules/qimage/qimage_wrapper.cpp @@ -23,29 +23,17 @@ #include "qimage_wrapper.h" -#ifdef USE_QT3 -#include -#include - -#ifdef USE_KDE3 -#include -#include -#endif -#endif - #ifdef USE_KDE4 #include #endif -#ifdef USE_QT4 -#include -#include -#include -#include -#include -#include -#include -#endif +#include +#include +#include +#include +#include +#include +#include #ifdef USE_EXIF #include @@ -61,8 +49,6 @@ extern "C" { #ifdef USE_KDE4 static KComponentData *instance = 0L; -#elif USE_KDE3 -static KInstance *instance = 0L; #endif static QApplication *app = NULL; @@ -72,7 +58,7 @@ static void qimage_delete( void *data ) QImage *image = ( QImage * )data; delete image; image = NULL; -#if defined(USE_KDE3) || defined(USE_KDE4) +#if defined(USE_KDE4) if (instance) delete instance; instance = 0L; #endif @@ -85,11 +71,6 @@ void init_qimage() if ( !instance ) { instance = new KComponentData( "qimage_prod" ); } -#elif defined(USE_KDE3) - if ( !instance ) { - instance = new KInstance( "qimage_prod" ); - KImageIO::registerFormats(); - } #endif } @@ -278,7 +259,6 @@ void refresh_image( producer_qimage self, mlt_frame frame, mlt_image_format form || strcmp( interps, "bicubic" ) == 0 ) interp = 1; -#ifdef USE_QT4 // Note - the original qimage is already safe and ready for destruction if ( qimage->depth() == 1 ) { @@ -290,14 +270,6 @@ void refresh_image( producer_qimage self, mlt_frame frame, mlt_image_format form QImage scaled = interp == 0 ? qimage->scaled( QSize( width, height ) ) : qimage->scaled( QSize(width, height), Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); int has_alpha = scaled.hasAlphaChannel(); -#endif - -#ifdef USE_QT3 - // Note - the original qimage is already safe and ready for destruction - QImage scaled = interp == 0 ? qimage->scale( width, height, QImage::ScaleFree ) : - qimage->smoothScale( width, height, QImage::ScaleFree ); - self->has_alpha = 1; -#endif // Store width and height self->current_width = width; diff --git a/src/modules/qimage/transition_vqm.cpp b/src/modules/qimage/transition_vqm.cpp index d08a3086..c926b165 100644 --- a/src/modules/qimage/transition_vqm.cpp +++ b/src/modules/qimage/transition_vqm.cpp @@ -22,7 +22,14 @@ #include #include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include static QApplication *app = 0; -- 2.39.2