forwarded 460718 
http://sourceforge.net/tracker/index.php?func=detail&aid=1870009&group_id=183831&atid=906820
thanks

Why so long URLs? Sigh… Giuseppe, you can drop control@ from your
replies, it is only there so that the above is taken into account in the
bug tracking system.


On 14/01/2008, Julien Valroff wrote:
> Hi,

Hi again, Julien. :)

> qtpfsgui cannot retrieve exposure information when the path contains UTF-8
> special chars.

> As an example, if I store my JPEG pictures in "/home/julien/Images
> numériques", qtpfsgui cannot use the EXIF data of the pictures.
> 
> If I rename the folder to "/home/julien/Images numeriques" (ie.
> without the accent), it works OK.

Similar bugreports exist on sourceforge's tracker:
 - 
http://sourceforge.net/tracker/index.php?func=detail&aid=1870009&group_id=183831&atid=906820
 - 
http://sourceforge.net/tracker/index.php?func=detail&aid=1870019&group_id=183831&atid=906820
 (duplicate)

Here is a possible workaround (as in “works for me”), but that might not
be how Giuseppe wants to do things. Furthermore, they are many
occurrences to adapt, so I'm not comfortable with doing so myself and
shipping such a modified version (I don't want to introduce crashes when
trying to limit them).

Patch attached.

Cheers,

-- 
Cyril Brulebois
diff -ur qtpfsgui-1.9.0/src/Exif/exif_operations.cpp 
qtpfsgui.kibi/src/Exif/exif_operations.cpp
--- qtpfsgui-1.9.0/src/Exif/exif_operations.cpp 2007-08-26 16:52:24.000000000 
+0000
+++ qtpfsgui.kibi/src/Exif/exif_operations.cpp  2008-01-16 00:34:25.000000000 
+0000
@@ -23,6 +23,7 @@
 
 #include <image.hpp>
 #include <cmath>
+#include <QFileInfo>
 #include "exif_operations.h"
 
 void ExifOperations::writeExifData(const std::string& filename, const 
std::string& comment) {
@@ -79,9 +80,9 @@
        destimage->writeMetadata();
 }
 
-float ExifOperations::obtain_expotime(const std::string& filename) {
+float ExifOperations::obtain_expotime(const QString& filename) {
 try {
-       Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
+       Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*) 
(QFile::encodeName(filename)));
        image->readMetadata();
        Exiv2::ExifData &exifData = image->exifData();
        if (exifData.empty())
Seulement dans qtpfsgui.kibi/src/Exif: exif_operations.cpp.orig
diff -ur qtpfsgui-1.9.0/src/Exif/exif_operations.h 
qtpfsgui.kibi/src/Exif/exif_operations.h
--- qtpfsgui-1.9.0/src/Exif/exif_operations.h   2007-08-26 16:52:24.000000000 
+0000
+++ qtpfsgui.kibi/src/Exif/exif_operations.h    2008-01-16 00:34:25.000000000 
+0000
@@ -30,7 +30,7 @@
 public:
        static void writeExifData(const std::string& filename, const 
std::string& comment);
        static void copyExifData(const std::string& from, const std::string& 
to, bool dont_overwrite);
-       static float obtain_expotime(const std::string& filename);
+       static float obtain_expotime(const QString& filename);
 private:
 
 };
diff -ur qtpfsgui-1.9.0/src/Threads/hdrInputLoader.cpp 
qtpfsgui.kibi/src/Threads/hdrInputLoader.cpp
--- qtpfsgui-1.9.0/src/Threads/hdrInputLoader.cpp       2007-11-25 
16:45:57.000000000 +0000
+++ qtpfsgui.kibi/src/Threads/hdrInputLoader.cpp        2008-01-16 
00:34:25.000000000 +0000
@@ -40,7 +40,7 @@
                QFileInfo qfi(fname);
 
                //get exposure time, -1 is error
-               float 
expotime=ExifOperations::obtain_expotime(qfi.filePath().toStdString());
+               float expotime=ExifOperations::obtain_expotime(qfi.filePath());
 
                QString extension=qfi.suffix().toUpper(); //get filename 
extension
                //now go and fill the list of image data (real payload)

Attachment: pgp1N18JVIEHi.pgp
Description: PGP signature

Reply via email to