Summary: | Images are sometimes not correctly displayed after rotation | ||
---|---|---|---|
Product: | [Applications] kphotoalbum | Reporter: | Johannes Zarl-Zierl <johannes> |
Component: | Annotation Dialog | Assignee: | KPhotoAlbum Bugs <kpabugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | tl |
Priority: | NOR | ||
Version: | GIT master | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Johannes Zarl-Zierl
2014-06-11 19:22:25 UTC
In AnnotationDialog/ImagePreview.cpp, in ImagePreview::reload(), if one comments out the if (_preloader.has(_info.fileName())) and the else if (_lastImage.has(_info.fileName())) block and always uses the else { } block, the error does not occur. With the default code, when the image isn't rotated correctly, the _lastImage.has block is executed. So perhaps, it's only _lastImage's QImage that is not rotated correctly? I think I could fix it. The problem is that PreviewImage::has() only checks if the filename matches and there _is_ an image. It does not take the angle into account. When adding the correct angle information to the class and also checking against that, the error does not occur anymore. I pushed the fix to the "positionable tags" branch of my fork of KPA, see https://github.com/l3u/kphotoalbum/commit/436efbf8d394f5f5657380520255236b8527ddb6 – the changes of this commit should also work 1:1 on the current master. Git commit 8869495c53f3ac43243a1e0474c4395bd81d209f by Johannes Zarl. Committed on 21/06/2014 at 17:16. Pushed by johanneszarl into branch 'positionable_tags-cleanedup2'. GUI-Changes for implementing positionable tags. Original patchset by Tobias Leupold. This patchset also reimplements handling of image rotation in the AnnotationDialog, fixing bug #336094. Related: bug 292900 M +248 -8 AnnotationDialog/Dialog.cpp M +19 -2 AnnotationDialog/Dialog.h M +281 -26 AnnotationDialog/ImagePreview.cpp M +45 -4 AnnotationDialog/ImagePreview.h M +37 -0 AnnotationDialog/ImagePreviewWidget.cpp M +6 -0 AnnotationDialog/ImagePreviewWidget.h M +53 -5 AnnotationDialog/ListSelect.cpp M +14 -2 AnnotationDialog/ListSelect.h A +420 -0 AnnotationDialog/ResizableFrame.cpp [License: UNKNOWN] * A +60 -0 AnnotationDialog/ResizableFrame.h [License: UNKNOWN] * M +3 -1 CMakeLists.txt M +14 -6 MainWindow/Window.cpp M +1 -0 MainWindow/Window.h M +3 -2 Viewer/ImageDisplay.cpp M +1 -0 Viewer/ImageDisplay.h M +6 -0 Viewer/InfoBox.cpp M +4 -0 Viewer/InfoBox.h A +54 -0 Viewer/TaggedArea.cpp [License: UNKNOWN] * A +33 -0 Viewer/TaggedArea.h [License: UNKNOWN] * M +117 -0 Viewer/ViewerWidget.cpp M +5 -0 Viewer/ViewerWidget.h The files marked with a * at the end have a non valid license. Please read: http://techbase.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page. http://commits.kde.org/kphotoalbum/8869495c53f3ac43243a1e0474c4395bd81d209f Git commit ed792aec09c1df9c4f700e87c356f0a454f5cde6 by Johannes Zarl. Committed on 22/06/2014 at 23:10. Pushed by johanneszarl into branch 'master'. GUI-Changes for implementing positionable tags. Original patchset by Tobias Leupold. This patchset also reimplements handling of image rotation in the AnnotationDialog, fixing bug #336094. Related: bug 292900 M +248 -8 AnnotationDialog/Dialog.cpp M +19 -2 AnnotationDialog/Dialog.h M +283 -26 AnnotationDialog/ImagePreview.cpp M +40 -3 AnnotationDialog/ImagePreview.h M +37 -0 AnnotationDialog/ImagePreviewWidget.cpp M +6 -0 AnnotationDialog/ImagePreviewWidget.h M +53 -5 AnnotationDialog/ListSelect.cpp M +14 -2 AnnotationDialog/ListSelect.h A +420 -0 AnnotationDialog/ResizableFrame.cpp [License: UNKNOWN] * A +60 -0 AnnotationDialog/ResizableFrame.h [License: UNKNOWN] * M +4 -2 CMakeLists.txt M +14 -6 MainWindow/Window.cpp M +1 -0 MainWindow/Window.h M +3 -2 Viewer/ImageDisplay.cpp M +1 -0 Viewer/ImageDisplay.h M +6 -0 Viewer/InfoBox.cpp M +4 -0 Viewer/InfoBox.h A +54 -0 Viewer/TaggedArea.cpp [License: UNKNOWN] * A +33 -0 Viewer/TaggedArea.h [License: UNKNOWN] * M +117 -0 Viewer/ViewerWidget.cpp M +5 -0 Viewer/ViewerWidget.h The files marked with a * at the end have a non valid license. Please read: http://techbase.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page. http://commits.kde.org/kphotoalbum/ed792aec09c1df9c4f700e87c356f0a454f5cde6 |