Skip to content

Commit

Permalink
Add support for Qt 5, drop support for Qt 3 and KDE 3.
Browse files Browse the repository at this point in the history
  • Loading branch information
ddennedy committed Aug 8, 2013
1 parent 45e92ef commit 51b5668
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 126 deletions.
4 changes: 0 additions & 4 deletions src/modules/qimage/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
106 changes: 48 additions & 58 deletions src/modules/qimage/configure
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down Expand Up @@ -41,8 +40,6 @@ else
qimage_libdir="$QTDIR/lib"
fi

export force_qt3=
export qt4_found=
export without_kde=

for i in "$@"
Expand All @@ -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
Expand All @@ -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

Expand All @@ -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
Expand Down
6 changes: 3 additions & 3 deletions src/modules/qimage/consumer_qglsl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
*/

#include <framework/mlt.h>
#include <QtGui/QApplication>
#include <QtCore/QLocale>
#include <QtOpenGL/QGLWidget>
#include <QApplication>
#include <QLocale>
#include <QGLWidget>

static void onThreadStarted(mlt_properties owner, mlt_consumer consumer)
{
Expand Down
48 changes: 24 additions & 24 deletions src/modules/qimage/kdenlivetitle_wrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,31 +20,31 @@

#include "kdenlivetitle_wrapper.h"

#include <QtGui/QImage>
#include <QtGui/QPainter>
#include <QtCore/QDebug>
#include <QtGui/QApplication>
#include <QtCore/QMutex>
#include <QtGui/QGraphicsScene>
#include <QtGui/QGraphicsTextItem>
#include <QtSvg/QGraphicsSvgItem>
#include <QtSvg/QSvgRenderer>
#include <QtGui/QTextCursor>
#include <QtGui/QTextDocument>
#include <QtGui/QStyleOptionGraphicsItem>

#include <QtCore/QString>

#include <QtXml/QDomElement>
#include <QtCore/QRectF>
#include <QtGui/QColor>
#include <QtGui/QWidget>
#include <QImage>
#include <QPainter>
#include <QDebug>
#include <QApplication>
#include <QMutex>
#include <QGraphicsScene>
#include <QGraphicsTextItem>
#include <QGraphicsSvgItem>
#include <QSvgRenderer>
#include <QTextCursor>
#include <QTextDocument>
#include <QStyleOptionGraphicsItem>

#include <QString>

#include <QDomElement>
#include <QRectF>
#include <QColor>
#include <QWidget>
#include <framework/mlt_log.h>

#if QT_VERSION >= 0x040600
#include <QtGui/QGraphicsEffect>
#include <QtGui/QGraphicsBlurEffect>
#include <QtGui/QGraphicsDropShadowEffect>
#include <QGraphicsEffect>
#include <QGraphicsBlurEffect>
#include <QGraphicsDropShadowEffect>
#endif

static QApplication *app = NULL;
Expand Down Expand Up @@ -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 );
Expand All @@ -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){
Expand Down
44 changes: 8 additions & 36 deletions src/modules/qimage/qimage_wrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,29 +23,17 @@

#include "qimage_wrapper.h"

#ifdef USE_QT3
#include <qimage.h>
#include <qmutex.h>

#ifdef USE_KDE3
#include <kinstance.h>
#include <kimageio.h>
#endif
#endif

#ifdef USE_KDE4
#include <kcomponentdata.h>
#endif

#ifdef USE_QT4
#include <QtGui/QImage>
#include <QtCore/QSysInfo>
#include <QtGui/QApplication>
#include <QtCore/QMutex>
#include <QtCore/QtEndian>
#include <QtCore/QTemporaryFile>
#include <QtCore/QLocale>
#endif
#include <QImage>
#include <QSysInfo>
#include <QApplication>
#include <QMutex>
#include <QtEndian>
#include <QTemporaryFile>
#include <QLocale>

#ifdef USE_EXIF
#include <libexif/exif-data.h>
Expand All @@ -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;
Expand All @@ -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
Expand All @@ -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

}
Expand Down Expand Up @@ -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 )
{
Expand All @@ -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;
Expand Down
9 changes: 8 additions & 1 deletion src/modules/qimage/transition_vqm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,14 @@
#include <string.h>
#include <math.h>
#include <stdio.h>
#include <QtGui/QtGui>
#include <QApplication>
#include <QImage>
#include <QColor>
#include <QLocale>
#include <QPainter>
#include <QPalette>
#include <QFont>
#include <QString>

static QApplication *app = 0;

Expand Down

0 comments on commit 51b5668

Please sign in to comment.