Merge lp:~fboucault/thumbnailer/thumbnail_qml_provider_respects_size into lp:thumbnailer

Proposed by Florian Boucault
Status: Merged
Approved by: Jussi Pakkanen
Approved revision: 118
Merged at revision: 118
Proposed branch: lp:~fboucault/thumbnailer/thumbnail_qml_provider_respects_size
Merge into: lp:thumbnailer
Diff against target: 36 lines (+18/-1)
1 file modified
plugins/Ubuntu/Thumbnailer/thumbnailgenerator.cpp (+18/-1)
To merge this branch: bzr merge lp:~fboucault/thumbnailer/thumbnail_qml_provider_respects_size
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Jussi Pakkanen (community) Approve
Review via email: mp+246548@code.launchpad.net

Commit message

QML thumbnail provider: make sure sourceSize (aka requestedSize) is respected by downscaling at loading time if necessary. Makes TN_SIZE_ORIGINAL case much faster.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Jussi Pakkanen (jpakkane) wrote :

The build failure is unrelated. I kicked jenkins for a rebuild.

As far the code is concerned, it looks fine.

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plugins/Ubuntu/Thumbnailer/thumbnailgenerator.cpp'
2--- plugins/Ubuntu/Thumbnailer/thumbnailgenerator.cpp 2015-01-05 09:28:03 +0000
3+++ plugins/Ubuntu/Thumbnailer/thumbnailgenerator.cpp 2015-01-15 10:41:44 +0000
4@@ -21,6 +21,7 @@
5 #include <QDebug>
6 #include <QMimeDatabase>
7 #include <QUrl>
8+#include <QImageReader>
9
10 static const char *DEFAULT_VIDEO_ART = "/usr/share/thumbnailer/icons/video_missing.png";
11 static const char *DEFAULT_ALBUM_ART = "/usr/share/thumbnailer/icons/album_missing.png";
12@@ -61,7 +62,23 @@
13 if(!tgt_path.empty()) {
14 QString tgt(tgt_path.c_str());
15 QImage image;
16- image.load(tgt);
17+ QImageReader reader;
18+ reader.setFileName(tgt);
19+ QSize imageSize = reader.size();
20+ if (!requestedSize.isNull() &&
21+ (imageSize.width() > requestedSize.width() ||
22+ imageSize.height() > requestedSize.height())) {
23+ QSize validRequestedSize = requestedSize;
24+ if (validRequestedSize.width() == 0) {
25+ validRequestedSize.setWidth(imageSize.width());
26+ }
27+ if (validRequestedSize.height() == 0) {
28+ validRequestedSize.setHeight(imageSize.height());
29+ }
30+ imageSize.scale(validRequestedSize, Qt::KeepAspectRatio);
31+ reader.setScaledSize(imageSize);
32+ }
33+ image = reader.read();
34 *realSize = image.size();
35 return image;
36 }

Subscribers

People subscribed via source and target branches

to all changes: