Bug 257590 - gwenview unable to crop a picpure
Summary: gwenview unable to crop a picpure
Status: RESOLVED FIXED
Alias: None
Product: gwenview
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Gwenview Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-22 12:21 UTC by p92
Modified: 2012-10-19 13:26 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
the image that cannot be cropped and crashes gwenview upon save after crop (55.16 KB, image/png)
2010-11-22 12:22 UTC, p92
Details

Note You need to log in before you can comment on or make changes to this bug.
Description p92 2010-11-22 12:21:01 UTC
Application: gwenview (2.5.2)
KDE Platform Version: 4.5.3 (KDE 4.5.3)
Qt Version: 4.7.0
Operating System: Linux 2.6.36-020636-generic x86_64
Distribution: Ubuntu 10.10

-- Information about the crash:
I tried other pictures and this is the only one that crashes gwenview.

open the png picture with gwenview
select tool -> crop (the last in the list at the bottom to crop the image)
select a frame to suppress the grey background
clic on crop

the picpure becomes unreadable
click save -> crash

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fb1767e8760 (LWP 16674))]

Thread 3 (Thread 0x7fb162c5d710 (LWP 16679)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb175796e3b in wait (this=<value optimized out>, mutex=0x127c8d8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x127c8d8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fb176133d75 in Gwenview::SemanticInfoThread::run (this=0x127c8c0) at ../../../gwenview/lib/semanticinfo/nepomuksemanticinfobackend.cpp:135
#4  0x00007fb17579627e in QThreadPrivate::start (arg=0x127c8c0) at thread/qthread_unix.cpp:266
#5  0x00007fb17135b971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#6  0x00007fb1734dc94d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fb15bfff710 (LWP 16712)):
#0  0x00007fb17135d665 in __pthread_mutex_lock (mutex=0x1bd1bf8) at pthread_mutex_lock.c:61
#1  0x00007fb16f1eaa43 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#2  0x00007fb16f1eae78 in ?? () from /lib/libglib-2.0.so.0
#3  0x00007fb16f1eb45c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0x00007fb1758b61e6 in QEventDispatcherGlib::processEvents (this=0x1b13fe0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#5  0x00007fb175888a02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#6  0x00007fb175888dec in QEventLoop::exec (this=0x7fb15bffedb0, flags=) at kernel/qeventloop.cpp:201
#7  0x00007fb1757932fd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#8  0x00007fb1758685f8 in QInotifyFileSystemWatcherEngine::run (this=0x1bdfc80) at io/qfilesystemwatcher_inotify.cpp:248
#9  0x00007fb17579627e in QThreadPrivate::start (arg=0x1bdfc80) at thread/qthread_unix.cpp:266
#10 0x00007fb17135b971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#11 0x00007fb1734dc94d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fb1767e8760 (LWP 16674)):
[KCrash Handler]
#6  QObject::setProperty (this=0x0, name=0x7fb17613d7d3 "oldUrl", value=...) at kernel/qobject.cpp:3400
#7  0x00007fb1760d8623 in Gwenview::Document::save (this=0x1c87780, url=..., format=<value optimized out>) at ../../../gwenview/lib/document/document.cpp:228
#8  0x00000000004265b9 in Gwenview::GvCore::saveAs (this=0x12a2cd0, url=<value optimized out>) at ../../../gwenview/app/gvcore.cpp:219
#9  0x0000000000427523 in Gwenview::GvCore::slotSaveResult (this=0x12a2cd0, _job=<value optimized out>) at ../../../gwenview/app/gvcore.cpp:247
#10 0x0000000000421444 in Gwenview::GvCore::qt_metacall (this=0x12a2cd0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff76b08fe0) at moc_gvcore.cpp:89
#11 0x00007fb1758a1b27 in QMetaObject::activate (sender=0x1c49960, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x1b51570) at kernel/qobject.cpp:3280
#12 0x00007fb173ba19a2 in KJob::result (this=0x0, _t1=0x1c49960) at ./kjob.moc:194
#13 0x00007fb173ba1c40 in KJob::emitResult (this=0x1c49960) at ../../kdecore/jobs/kjob.cpp:312
#14 0x00007fb1760e12b0 in emitResult (this=0x1c49960) at ../../../gwenview/lib/../lib/document/documentjob.h:77
#15 Gwenview::SaveJob::finishSave (this=0x1c49960) at ../../../gwenview/lib/document/savejob.cpp:134
#16 0x00007fb1760cd40c in Gwenview::SaveJob::qt_metacall (this=0x1c49960, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff76b09180) at moc_savejob.cpp:77
#17 0x00007fb1758a1b27 in QMetaObject::activate (sender=0x1c45d40, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x1b51570) at kernel/qobject.cpp:3280
#18 0x00007fb175788237 in QFutureWatcherBase::event (this=<value optimized out>, event=0x1bf8e40) at concurrent/qfuturewatcher.cpp:344
#19 0x00007fb174101fdc in QApplicationPrivate::notify_helper (this=0x1173090, receiver=0x1c45d40, e=0x1bf8e40) at kernel/qapplication.cpp:4396
#20 0x00007fb174107aed in QApplication::notify (this=0x7fff76b09ae0, receiver=0x1c45d40, e=0x1bf8e40) at kernel/qapplication.cpp:4277
#21 0x00007fb174e55526 in KApplication::notify (this=0x7fff76b09ae0, receiver=0x1c45d40, event=0x1bf8e40) at ../../kdeui/kernel/kapplication.cpp:310
#22 0x00007fb175889cdc in QCoreApplication::notifyInternal (this=0x7fff76b09ae0, receiver=0x1c45d40, event=0x1bf8e40) at kernel/qcoreapplication.cpp:732
#23 0x00007fb17588cc22 in sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x115ab90) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#24 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x115ab90) at kernel/qcoreapplication.cpp:1373
#25 0x00007fb1758b6653 in sendPostedEvents (s=0x1176bf0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#26 postEventSourceDispatch (s=0x1176bf0) at kernel/qeventdispatcher_glib.cpp:277
#27 0x00007fb16f1e7342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#28 0x00007fb16f1eb2a8 in ?? () from /lib/libglib-2.0.so.0
#29 0x00007fb16f1eb45c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#30 0x00007fb1758b6193 in QEventDispatcherGlib::processEvents (this=0x115a280, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#31 0x00007fb1741b4a4e in QGuiEventDispatcherGlib::processEvents (this=0x0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#32 0x00007fb175888a02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#33 0x00007fb175888dec in QEventLoop::exec (this=0x7fff76b09a00, flags=) at kernel/qeventloop.cpp:201
#34 0x00007fb17588cebb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#35 0x00000000004417a5 in main (argc=<value optimized out>, argv=<value optimized out>) at ../../../gwenview/app/main.cpp:139

Reported using DrKonqi
Comment 1 p92 2010-11-22 12:22:42 UTC
Created attachment 53628 [details]
the image that cannot be cropped and crashes gwenview upon save after crop
Comment 2 Matthias Fuchs 2011-01-26 22:39:35 UTC
Crash is fixed in bug 263164 not the cropping issue though.
Comment 3 Matthias Fuchs 2011-01-26 22:50:50 UTC
--Way to reproduce:
Cropping a picture with a restricted color space (e.g. 255 colors)
Comment 4 Matthias Fuchs 2011-01-26 23:33:20 UTC
SVN commit 1217378 by mfuchs:

Cropping pictures that use a small palette (e.g. 256 entries) works now.
QImage::copy(QRect) also preserves the EXIF-Tag.
BUG:257590
BUG:236318
BUG:250473
CCBUG:203109

 M  +2 -7      cropimageoperation.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1217378
Comment 5 Matthias Fuchs 2011-01-26 23:37:00 UTC
SVN commit 1217379 by mfuchs:

Backport r1217378
Cropping pictures that use a small palette (e.g. 256 entries) works now.
QImage::copy(QRect) also preserves the EXIF-Tag.
CCBUG:257590
CCBUG:236318
CCBUG:250473
CCBUG:203109

 M  +2 -7      cropimageoperation.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1217379