39
39
struct Exiv2ImageLoaderPrivate {
40
Exiv2::Image::AutoPtr mImage;
41
QString mErrorMessage;
40
Exiv2::Image::AutoPtr mImage;
41
QString mErrorMessage;
45
44
Exiv2ImageLoader::Exiv2ImageLoader()
46
: d(new Exiv2ImageLoaderPrivate) {
50
Exiv2ImageLoader::~Exiv2ImageLoader() {
55
bool Exiv2ImageLoader::load(const QByteArray& data) {
57
d->mImage = Exiv2::ImageFactory::open((unsigned char*)data.constData(), data.size());
58
d->mImage->readMetadata();
45
: d(new Exiv2ImageLoaderPrivate)
49
Exiv2ImageLoader::~Exiv2ImageLoader()
54
bool Exiv2ImageLoader::load(const QByteArray& data)
57
d->mImage = Exiv2::ImageFactory::open((unsigned char*)data.constData(), data.size());
58
d->mImage->readMetadata();
59
59
#if EXIV2_VERSION >= EXIV2_MAKE_VERSION(0, 14, 0)
60
// For some unknown reason, trying to catch Exiv2::Error fails with Exiv2
61
// >=0.14. For now, just catch std::exception. I would welcome any
63
} catch (const std::exception& error) {
64
d->mErrorMessage = error.what();
60
// For some unknown reason, trying to catch Exiv2::Error fails with Exiv2
61
// >=0.14. For now, just catch std::exception. I would welcome any
63
} catch (const std::exception& error) {
64
d->mErrorMessage = error.what();
66
// In libexiv2 0.12, Exiv2::Error::what() returns an std::string.
67
} catch (const Exiv2::Error& error) {
68
d->mErrorMessage = error.what().c_str();
66
// In libexiv2 0.12, Exiv2::Error::what() returns an std::string.
67
} catch (const Exiv2::Error& error) {
68
d->mErrorMessage = error.what().c_str();
76
QString Exiv2ImageLoader::errorMessage() const {
77
return d->mErrorMessage;
81
Exiv2::Image::AutoPtr Exiv2ImageLoader::popImage() {
75
QString Exiv2ImageLoader::errorMessage() const
77
return d->mErrorMessage;
80
Exiv2::Image::AutoPtr Exiv2ImageLoader::popImage()