Skip to content

Commit 28e8db4

Browse files
committed
remove lazy loading of image meta data
1 parent ca4e63a commit 28e8db4

2 files changed

Lines changed: 21 additions & 30 deletions

File tree

src/Image.cpp

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ static QStringList to_string_list(const QByteArrayList& list) {
1616

1717

1818
Image::Image(const QFileInfo& file_info) : m_file_info{file_info} {
19+
load_metadata();
1920
}
2021

2122

@@ -45,61 +46,51 @@ double Image::image_height() const {
4546

4647

4748
QString Image::camera_maker() const {
48-
load_metadata();
4949
return m_camera_maker;
5050
}
5151

5252

5353
QString Image::camera_model() const {
54-
load_metadata();
5554
return m_camera_model;
5655
}
5756

5857

5958
QString Image::lens_maker() const {
60-
load_metadata();
6159
return m_lens_maker;
6260
}
6361

6462

6563
QString Image::lens_model() const {
66-
load_metadata();
6764
return m_lens;
6865
}
6966

7067

7168
double Image::focal_length() const {
72-
load_metadata();
7369
return m_focal_length;
7470
}
7571

7672

7773
double Image::aperture() const {
78-
load_metadata();
7974
return m_aperture;
8075
}
8176

8277

8378
double Image::shutter_speed() const {
84-
load_metadata();
8579
return m_shutter_speed;
8680
}
8781

8882

8983
double Image::iso() const {
90-
load_metadata();
9184
return m_iso;
9285
}
9386

9487

9588
QDateTime Image::date_time_original() const {
96-
load_metadata();
9789
return m_date_time_original;
9890
}
9991

10092

10193
QImage Image::preview() {
102-
load_metadata();
10394
QImage image;
10495
try {
10596
if (supported_raw_file_extensions().contains(m_file_info.suffix(), Qt::CaseInsensitive))
@@ -162,7 +153,7 @@ void Image::load_nonraw(QImage& image) {
162153
}
163154

164155

165-
void Image::load_metadata() const {
156+
void Image::load_metadata() {
166157
if (not m_metadata_loaded) {
167158
m_metadata_loaded = true;
168159
try {
@@ -177,7 +168,7 @@ void Image::load_metadata() const {
177168
}
178169

179170

180-
void Image::load_metadata_raw() const {
171+
void Image::load_metadata_raw() {
181172
LibRaw lib_raw;
182173
if (lib_raw.open_file(m_file_info.absoluteFilePath().toUtf8().toStdString().c_str()) !=
183174
LIBRAW_SUCCESS)
@@ -211,7 +202,7 @@ void Image::load_metadata_raw() const {
211202
}
212203

213204

214-
void Image::load_metadata_nonraw() const {
205+
void Image::load_metadata_nonraw() {
215206
auto image{Exiv2::ImageFactory::open(m_file_info.absoluteFilePath().toLocal8Bit().data())};
216207
image->readMetadata();
217208
auto& exif_data{image->exifData()};

src/Image.hpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ enum class ImageOrientation {
3333
class Image {
3434
public:
3535
Image() = default;
36-
Image(const QFileInfo &file_info);
36+
explicit Image(const QFileInfo &file_info);
3737
const QFileInfo &file_info() const;
3838
QString file_name() const;
3939
double file_size() const;
@@ -55,25 +55,25 @@ class Image {
5555
private:
5656
void load_raw(QImage &image);
5757
void load_nonraw(QImage &image);
58-
void load_metadata() const;
59-
void load_metadata_raw() const;
60-
void load_metadata_nonraw() const;
58+
void load_metadata();
59+
void load_metadata_raw();
60+
void load_metadata_nonraw();
6161

6262
static const QStringList &supported_raw_file_extensions();
6363
static const QStringList &supported_nonraw_file_extensions();
6464

6565
QFileInfo m_file_info;
66-
mutable double m_image_width{0};
67-
mutable double m_image_height{0};
68-
mutable bool m_metadata_loaded{false};
69-
mutable QString m_camera_maker;
70-
mutable QString m_camera_model;
71-
mutable QString m_lens_maker;
72-
mutable QString m_lens;
73-
mutable double m_focal_length{0};
74-
mutable double m_aperture{0};
75-
mutable double m_shutter_speed{0};
76-
mutable double m_iso{0};
77-
mutable QDateTime m_date_time_original;
78-
mutable ImageOrientation m_image_orientation{ImageOrientation::unknown};
66+
double m_image_width{0};
67+
double m_image_height{0};
68+
bool m_metadata_loaded{false};
69+
QString m_camera_maker;
70+
QString m_camera_model;
71+
QString m_lens_maker;
72+
QString m_lens;
73+
double m_focal_length{0};
74+
double m_aperture{0};
75+
double m_shutter_speed{0};
76+
double m_iso{0};
77+
QDateTime m_date_time_original;
78+
ImageOrientation m_image_orientation{ImageOrientation::unknown};
7979
};

0 commit comments

Comments
 (0)