[Kde-imaging] extragear/libs/kipi-plugins/slideshow
Markus Leuthold
kusi at forum.titlis.org
Tue Feb 20 14:22:53 CET 2007
Valerio Fuoglio schrieb:
> SVN commit 635564 by vfuoglio:
>
> Added libkdcraw support.
> Thanks to Gilles for the patch.
>
> CCMAIL: kde-imaging at kde.org
> CCMAIL: caulier.gilles at gmail.com
>
>
>
>
>
> M +6 -3 Makefile.am
> M +30 -1 imlibiface.cpp
>
>
> --- trunk/extragear/libs/kipi-plugins/slideshow/Makefile.am #635563:635564
> @@ -1,16 +1,19 @@
> -INCLUDES = $(KIPI_PLUGINS_COMMON_INCLUDE) $(IMLIB2_CFLAGS) $(LIBKIPI_CFLAGS) $(all_includes)
> METASOURCES = AUTO
>
> +INCLUDES = $(KIPI_PLUGINS_COMMON_INCLUDE) $(IMLIB2_CFLAGS) $(LIBKIPI_CFLAGS) \
> + $(LIBKDCRAW_CFLAGS) $(all_includes)
> +
> # Install this plugin in the KDE modules directory
> kde_module_LTLIBRARIES = kipiplugin_slideshow.la
>
> -kipiplugin_slideshow_la_DEPENDENCIES = $(LIBKIPI_LIBS_DEP)
> +kipiplugin_slideshow_la_DEPENDENCIES = $(LIBKIPI_LIBS_DEP) $(LIBKDCRAW_LIBS_DEP)
>
> kipiplugin_slideshow_la_SOURCES = plugin_slideshow.cpp slideshow.cpp \
> slideshowconfig.cpp imlibiface.cpp slideshowgl.cpp toolbar.cpp slideshowconfigbase.ui
>
> #kipiplugin_slideshow_la_LIBADD = -lkdefx $(LIB_IMLIB2) $(GL_LIBS) $(LIBKIPI_LIBS) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT)
> -kipiplugin_slideshow_la_LIBADD = -lkdefx -lImlib2 $(GL_LIBS) $(LIBKIPI_LIBS) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT)
> +kipiplugin_slideshow_la_LIBADD = -lkdefx -lImlib2 $(GL_LIBS) $(LIBKIPI_LIBS) $(LIBKDCRAW_LIBS) \
> + $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT)
>
> kipiplugin_slideshow_la_LDFLAGS = $(KIPI_PLUGINS_COMMON_LDFLAGS) -module $(KDE_PLUGIN) $(all_libraries) -lkipiplugins
>
> --- trunk/extragear/libs/kipi-plugins/slideshow/imlibiface.cpp #635563:635564
> @@ -19,15 +19,27 @@
> *
> * ============================================================ */
>
> +// Qt includes.
> +
> #include <qwidget.h>
> #include <qstring.h>
> #include <qfile.h>
> #include <qfileinfo.h>
> +#include <qimage.h>
> #include <qpixmap.h>
>
> +// LibKDcraw includes.
> +
> +#include <libkdcraw/rawfiles.h>
> +#include <libkdcraw/kdcraw.h>
> +
> +// Imlib2 includes.
> +
> #include <X11/Xlib.h>
> #include <Imlib2.h>
>
> +// Local includes.
> +
> #include "imlibiface.h"
>
> namespace KIPISlideShowPlugin
> @@ -81,7 +93,24 @@
>
> imlib_context_push(imIface_->d->context);
>
> - d->image = imlib_load_image(QFile::encodeName(file).data());
> + QString rawFilesExt(raw_file_extentions);
> +
> + // Check if RAW file.
> + QFileInfo fileInfo(file);
> + if (rawFilesExt.upper().contains( fileInfo.extension(false).upper() ))
> + {
> + QImage rawPreview;
> + KDcrawIface::KDcraw::loadDcrawPreview(rawPreview, file);
> + d->image = imlib_create_image(rawPreview.width(), rawPreview.height());
> + imlib_context_set_image(d->image);
> + DATA32* data = imlib_image_get_data_for_reading_only();
> + memcpy(data, rawPreview.bits(), rawPreview.numBytes());
> + }
> + else
> + {
> + d->image = imlib_load_image(QFile::encodeName(file).data());
> + }
> +
> if (d->image) {
> imlib_context_set_image(d->image);
> d->valid = true;
> _______________________________________________
> Kde-imaging mailing list
> Kde-imaging at kde.org
> https://mail.kde.org/mailman/listinfo/kde-imaging
>
>
That patch is not enough, it doesn't cover the opengl loader. You also
need to patch slideshowgl.cpp (loadImage). Have a look a Gilles patch
(for texture.cpp) for the image viewer from yesterday. It's something like
- image=QImage(fn);
+
+ // Check if RAW file.
+ QString rawFilesExt(raw_file_extentions);
+ QFileInfo fileInfo(fn);
+ if (rawFilesExt.upper().contains( fileInfo.extension(false).upper() ))
+ KDcrawIface::KDcraw::loadDcrawPreview(image, fn);
+ else
+ image=QImage(fn);
plus all the header files.
Kusi
More information about the Kde-imaging
mailing list