Version: (using KDE 4.2.4) OS: Linux Installed from: SuSE RPMs Hi, I've added about 200 tif-files to a new batch queue. I've assigned three tools: 1) resize to 1600px 2) simple sharp 10% 3) convert to jpg with 90% After starting the process I put the batch queue manager window in the background. A while later digikam crashes. The crash is not related to a certain file or number of images in the queue. It occurs most of the time at a random time. A high number of images in the queue does increase the possibility of a crash, of course. Here is the crash log: Anwendung: digiKam (digikam), Signal SIGSEGV [?1034h[Thread debugging using libthread_db enabled] [Current thread is 1 (Thread 0xb456c700 (LWP 5519))] Thread 14 (Thread 0xb2fa3b90 (LWP 5521)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb5574c35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb5606872 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #3 0x083593d9 in Digikam::ScanController::run (this=0x85da450) at /home/guenni/tmp/kde4/graphics/digikam/digikam/scancontroller.cpp:499 #4 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #5 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #6 0xb53b43ae in clone () from /lib/libc.so.6 Thread 13 (Thread 0xb1a67b90 (LWP 5525)): #0 0xb5573cc6 in __pthread_mutex_unlock_usercnt () from /lib/libpthread.so.0 #1 0xb4df3d54 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #2 0xb4df4124 in ?? () from /usr/lib/libglib-2.0.so.0 #3 0xb4df45d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #4 0xb571ffd7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #5 0xb56f401a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #6 0xb56f41da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #7 0xb5602559 in QThread::exec() () from /usr/lib/libQtCore.so.4 #8 0xb6ee81d3 in Digikam::ImageFilterModelWorker::Thread::run (this=0x86538d0) at /home/guenni/tmp/kde4/graphics/digikam/libs/models/imagefiltermodelthreads.h:66 #9 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #10 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #11 0xb53b43ae in clone () from /lib/libc.so.6 Thread 12 (Thread 0xb2268b90 (LWP 5526)): #0 0xb4e803da in clock_gettime () from /lib/librt.so.1 #1 0xb5721beb in ?? () from /usr/lib/libQtCore.so.4 #2 0xb5721dc1 in ?? () from /usr/lib/libQtCore.so.4 #3 0xb57235bc in ?? () from /usr/lib/libQtCore.so.4 #4 0xb5720198 in ?? () from /usr/lib/libQtCore.so.4 #5 0xb4df3d60 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #6 0xb4df4124 in ?? () from /usr/lib/libglib-2.0.so.0 #7 0xb4df45d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #8 0xb571ffd7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #9 0xb56f401a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #10 0xb56f41da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #11 0xb5602559 in QThread::exec() () from /usr/lib/libQtCore.so.4 #12 0xb6ee81d3 in Digikam::ImageFilterModelWorker::Thread::run (this=0x8665ea0) at /home/guenni/tmp/kde4/graphics/digikam/libs/models/imagefiltermodelthreads.h:66 #13 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #14 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #15 0xb53b43ae in clone () from /lib/libc.so.6 Thread 11 (Thread 0xafcb7b90 (LWP 5527)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb5574c35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb5606872 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #3 0xb7130931 in Digikam::LoadSaveThread::run (this=0x869efe0) at /home/guenni/tmp/kde4/graphics/digikam/libs/threadimageio/loadsavethread.cpp:136 #4 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #5 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #6 0xb53b43ae in clone () from /lib/libc.so.6 Thread 10 (Thread 0xaf4b6b90 (LWP 5528)): #0 0xb4e803da in clock_gettime () from /lib/librt.so.1 #1 0xb5721beb in ?? () from /usr/lib/libQtCore.so.4 #2 0xb5721dc1 in ?? () from /usr/lib/libQtCore.so.4 #3 0xb57235bc in ?? () from /usr/lib/libQtCore.so.4 #4 0xb5720198 in ?? () from /usr/lib/libQtCore.so.4 #5 0xb4df3d60 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #6 0xb4df4124 in ?? () from /usr/lib/libglib-2.0.so.0 #7 0xb4df45d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #8 0xb571ffd7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #9 0xb56f401a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #10 0xb56f41da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #11 0xb5602559 in QThread::exec() () from /usr/lib/libQtCore.so.4 #12 0x0834e01d in Digikam::MetadataManagerWorker::Thread::run (this=0x86c31e0) at /home/guenni/tmp/kde4/graphics/build/digikam/digikam/../../../digikam/digikam/metadatamanager_p.h:145 #13 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #14 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #15 0xb53b43ae in clone () from /lib/libc.so.6 Thread 9 (Thread 0xaecb5b90 (LWP 5529)): #0 0xb4e803da in clock_gettime () from /lib/librt.so.1 #1 0xb5721beb in ?? () from /usr/lib/libQtCore.so.4 #2 0xb5721dc1 in ?? () from /usr/lib/libQtCore.so.4 #3 0xb57235bc in ?? () from /usr/lib/libQtCore.so.4 #4 0xb5720198 in ?? () from /usr/lib/libQtCore.so.4 #5 0xb4df3d60 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #6 0xb4df4124 in ?? () from /usr/lib/libglib-2.0.so.0 #7 0xb4df45d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #8 0xb571ffd7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #9 0xb56f401a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #10 0xb56f41da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #11 0xb5602559 in QThread::exec() () from /usr/lib/libQtCore.so.4 #12 0x0834e01d in Digikam::MetadataManagerWorker::Thread::run (this=0x86682d0) at /home/guenni/tmp/kde4/graphics/build/digikam/digikam/../../../digikam/digikam/metadatamanager_p.h:145 #13 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #14 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #15 0xb53b43ae in clone () from /lib/libc.so.6 Thread 8 (Thread 0xae4b4b90 (LWP 5530)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb5574c35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb5606872 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #3 0xb7130931 in Digikam::LoadSaveThread::run (this=0xb2332ef8) at /home/guenni/tmp/kde4/graphics/digikam/libs/threadimageio/loadsavethread.cpp:136 #4 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #5 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #6 0xb53b43ae in clone () from /lib/libc.so.6 Thread 7 (Thread 0xab3aab90 (LWP 5531)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb5574f62 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xac553721 in ?? () from /usr/lib/libxine.so.1 #3 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #4 0xb53b43ae in clone () from /lib/libc.so.6 Thread 6 (Thread 0xaa744b90 (LWP 5532)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb5574f62 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xac5621ae in ?? () from /usr/lib/libxine.so.1 #3 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #4 0xb53b43ae in clone () from /lib/libc.so.6 Thread 5 (Thread 0xa9f43b90 (LWP 5533)): #0 0xb4e803da in clock_gettime () from /lib/librt.so.1 #1 0xb5721beb in ?? () from /usr/lib/libQtCore.so.4 #2 0xb5721dc1 in ?? () from /usr/lib/libQtCore.so.4 #3 0xb57235bc in ?? () from /usr/lib/libQtCore.so.4 #4 0xb5720198 in ?? () from /usr/lib/libQtCore.so.4 #5 0xb4df3d60 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #6 0xb4df4124 in ?? () from /usr/lib/libglib-2.0.so.0 #7 0xb4df45d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #8 0xb571ffd7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #9 0xb56f401a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #10 0xb56f41da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #11 0xb5602559 in QThread::exec() () from /usr/lib/libQtCore.so.4 #12 0xac5aa8f9 in ?? () from /usr/lib/kde4/plugins/phonon_backend/phonon_xine.so #13 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #14 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #15 0xb53b43ae in clone () from /lib/libc.so.6 Thread 4 (Thread 0xa9354b90 (LWP 5535)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb5574c35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xac565f43 in ?? () from /usr/lib/libxine.so.1 #3 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #4 0xb53b43ae in clone () from /lib/libc.so.6 Thread 3 (Thread 0xa5cffb90 (LWP 5552)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb5574c35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb5606872 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #3 0xb7130931 in Digikam::LoadSaveThread::run (this=0x9313990) at /home/guenni/tmp/kde4/graphics/digikam/libs/threadimageio/loadsavethread.cpp:136 #4 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #5 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #6 0xb53b43ae in clone () from /lib/libc.so.6 Thread 2 (Thread 0xa8b37b90 (LWP 5638)): [KCrash Handler] #6 0xb5cf9b5b in ?? () from /usr/lib/libQtGui.so.4 #7 0xb5cfbf96 in ?? () from /usr/lib/libQtGui.so.4 #8 0xb5cfc4bc in ?? () from /usr/lib/libQtGui.so.4 #9 0xb5d00101 in QRegion::operator+=(QRegion const&) () from /usr/lib/libQtGui.so.4 #10 0xb5d70aa4 in ?? () from /usr/lib/libQtGui.so.4 #11 0xb5d70d4c in ?? () from /usr/lib/libQtGui.so.4 #12 0xb5d70f23 in QWidget::update() () from /usr/lib/libQtGui.so.4 #13 0xb5ef356b in ?? () from /usr/lib/libQtGui.so.4 #14 0xb5f9d3ae in QSpinBox::setValue(int) () from /usr/lib/libQtGui.so.4 #15 0xb67aa9ca in KIntNumInput::setValue(int) () from /usr/lib/libkdeui.so.5 #16 0xb774bc26 in KDcrawIface::RIntNumInput::setValue (this=0x87bbe50, v=10) at /home/guenni/tmp/kde4/kdegraphics/libs/libkdcraw/libkdcraw/rnuminput.cpp:115 #17 0x0825023f in Digikam::Sharpen::assignSettings2Widget (this=0x9af8dc0) at /home/guenni/tmp/kde4/graphics/digikam/utilities/queuemanager/basetools/enhance/sharpen.cpp:251 #18 0x0824448a in Digikam::BatchTool::setSettings (this=0x9af8dc0, settings=@0xa8b372cc) at /home/guenni/tmp/kde4/graphics/digikam/utilities/queuemanager/batchtool.cpp:175 #19 0x0821eb06 in Digikam::ActionThread::run (this=0x879bfb8) at /home/guenni/tmp/kde4/graphics/digikam/utilities/queuemanager/actionthread.cpp:191 #20 0xb560585e in ?? () from /usr/lib/libQtCore.so.4 #21 0xb55711b5 in start_thread () from /lib/libpthread.so.0 #22 0xb53b43ae in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb456c700 (LWP 5519)): [KCrash Handler] #6 0xb53517d0 in ?? () from /lib/libc.so.6 #7 0xb535388c in malloc () from /lib/libc.so.6 #8 0xb5533147 in operator new(unsigned int) () from /usr/lib/libstdc++.so.6 #9 0xb5cfca8e in QRegion::copy() const () from /usr/lib/libQtGui.so.4 #10 0xb5cfcc35 in QRegion::detach() () from /usr/lib/libQtGui.so.4 #11 0xb5cfd14e in QRegion::translate(int, int) () from /usr/lib/libQtGui.so.4 #12 0xb5cfd222 in QRegion::translated(int, int) const () from /usr/lib/libQtGui.so.4 #13 0xb5bfec35 in QWidgetPrivate::getOpaqueSiblings(QRegion const&) const () from /usr/lib/libQtGui.so.4 #14 0xb5bfec51 in QWidgetPrivate::getOpaqueSiblings(QRegion const&) const () from /usr/lib/libQtGui.so.4 #15 0xb5bfef1c in QWidgetPrivate::subtractOpaqueSiblings(QRegion&, QPoint const&) const () from /usr/lib/libQtGui.so.4 #16 0xb5d70ca7 in ?? () from /usr/lib/libQtGui.so.4 #17 0xb5d70e75 in QWidget::update(QRect const&) () from /usr/lib/libQtGui.so.4 #18 0xb60a9f48 in ?? () from /usr/lib/libQtGui.so.4 #19 0xb60bb4d2 in QTreeView::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtGui.so.4 #20 0xb60f3e1a in QTreeWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtGui.so.4 #21 0x08223f08 in Digikam::AssignedListView::qt_metacall (this=0x9befa10, _c=QMetaObject::InvokeMetaMethod, _id=87, _a=0xbfed7788) at /home/guenni/tmp/kde4/graphics/build/digikam/digikam/assignedlist.moc:81 #22 0xb570a580 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #23 0xb570b302 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #24 0xb60c47b9 in QItemSelectionModel::currentChanged(QModelIndex const&, QModelIndex const&) () from /usr/lib/libQtGui.so.4 #25 0xb60c495d in QItemSelectionModel::setCurrentIndex(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/libQtGui.so.4 #26 0xb6076f06 in QAbstractItemView::setCurrentIndex(QModelIndex const&) () from /usr/lib/libQtGui.so.4 #27 0xb60f19d9 in QTreeWidget::setCurrentItem(QTreeWidgetItem*, int) () from /usr/lib/libQtGui.so.4 #28 0xb60f1a1c in QTreeWidget::setCurrentItem(QTreeWidgetItem*) () from /usr/lib/libQtGui.so.4 #29 0x0822129d in Digikam::AssignedListView::setCurrentTool (this=0x9befa10, index=2) at /home/guenni/tmp/kde4/graphics/digikam/utilities/queuemanager/assignedlist.cpp:161 #30 0x0822f1db in Digikam::QueueMgrWindow::slotAction (this=0x9726b98, ad=@0xa475d108) at /home/guenni/tmp/kde4/graphics/digikam/utilities/queuemanager/queuemgrwindow.cpp:903 #31 0x082350ab in Digikam::QueueMgrWindow::qt_metacall (this=0x9726b98, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0xa129f338) at /home/guenni/tmp/kde4/graphics/build/digikam/digikam/queuemgrwindow.moc:122 #32 0xb570371b in QMetaCallEvent::placeMetaCall(QObject*) () from /usr/lib/libQtCore.so.4 #33 0xb5705281 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4 #34 0xb5c05114 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #35 0xb5f57ff7 in QMainWindow::event(QEvent*) () from /usr/lib/libQtGui.so.4 #36 0xb679f917 in KMainWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5 #37 0xb67e430c in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5 #38 0x08234ed9 in Digikam::QueueMgrWindow::event (this=0x9726b98, e=0xa475cb48) at /home/guenni/tmp/kde4/graphics/digikam/utilities/queuemanager/queuemgrwindow.cpp:1168 #39 0xb5bad8fc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #40 0xb5bb582a in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #41 0xb66c407d in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #42 0xb56f5961 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #43 0xb56f65d5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4 #44 0xb56f67cd in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQtCore.so.4 #45 0xb572036f in ?? () from /usr/lib/libQtCore.so.4 #46 0xb4df0e28 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #47 0xb4df4453 in ?? () from /usr/lib/libglib-2.0.so.0 #48 0xb4df45d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #49 0xb571ffb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #50 0xb5c467c5 in ?? () from /usr/lib/libQtGui.so.4 #51 0xb56f401a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #52 0xb56f41da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #53 0xb56f6895 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #54 0xb5bad777 in QApplication::exec() () from /usr/lib/libQtGui.so.4 #55 0x083fd3b9 in main (argc=5, argv=0xbfed8514) at /home/guenni/tmp/kde4/graphics/digikam/digikam/main.cpp:186 Regards, Guenther
Sorry forgot to mention the version: Version 1.0.0-beta5 (rev.: 1029402) compiled from svn.
Mh, weird, the backtrace has two KCrash handlers Anyways they seem to be Qt4 related issues. - What is your Qt4 version ? Thanks
Thread 2 is the problem: Accessing a widget must never happen from non-UI thread! Gilles, is this a single bug or are more parts of BQM affected?
Marcel, I have see the pb in trace, but if i remember, tool settings is passed from GUI threads to tool thread using a simple container... Look BatchToolSet class... Gilles
The ActionThread calls BatchTool::setSettings from the thread. From there assignSettings2Widget() is called. The name of this method implies that a widget is accessed. Which is the best way to solve this: 1) Changing a widget is not needed at all when called from the thread - remove the call from setSettings() and add this call where appropriate 2) Changing the widget is necessary - emit a signal to a slot assignSettings2Widget().
(In reply to comment #2) > Mh, weird, the backtrace has two KCrash handlers > Anyways they seem to be Qt4 related issues. - What is your Qt4 version ? > Thanks Hi, My qt4 version is 4.4.3 Guenther
Marcel, Right. The solution 2/ sound like the best for me... Gilles
Marcel, If i use BatchTool::signalSettingsChanged(const BatchToolSettings&) and connect it to new pure virtual void BatchTool::slotAssignSettings2Widget(const BatchToolSettings&), will be enough ? Of course, if this case, BatchTool::assignSettings2Widget() method is removed everywhere, and not called from batch thread... Gilles
Yes this will be fine.
SVN commit 1031352 by cgilles: use internal signal and slot connection to dispatch Batch tool settings to settings widget from children thread to gui thread Note: I cannot reproduce the original crash here. Please test thisp patch and report if all is fine... CCBUGS: 209225 M +1 -2 basetools/convert/convert2jp2.cpp M +1 -1 basetools/convert/convert2jp2.h M +1 -2 basetools/convert/convert2jpeg.cpp M +1 -1 basetools/convert/convert2jpeg.h M +1 -2 basetools/convert/convert2pgf.cpp M +1 -1 basetools/convert/convert2pgf.h M +1 -2 basetools/convert/convert2png.cpp M +1 -1 basetools/convert/convert2png.h M +1 -2 basetools/convert/convert2tiff.cpp M +1 -1 basetools/convert/convert2tiff.h M +1 -2 basetools/decorate/watermark.cpp M +2 -8 basetools/decorate/watermark.h M +1 -2 basetools/enhance/autocorrection.cpp M +1 -1 basetools/enhance/autocorrection.h M +1 -2 basetools/enhance/restoration.cpp M +1 -1 basetools/enhance/restoration.h M +1 -2 basetools/enhance/sharpen.cpp M +3 -3 basetools/enhance/sharpen.h M +1 -2 basetools/metadata/assigntemplate.cpp M +1 -1 basetools/metadata/assigntemplate.h M +1 -1 basetools/transform/flip.cpp M +1 -1 basetools/transform/flip.h M +1 -1 basetools/transform/resize.cpp M +1 -1 basetools/transform/resize.h M +1 -1 basetools/transform/rotate.cpp M +1 -1 basetools/transform/rotate.h M +6 -1 batchtool.cpp M +5 -5 batchtool.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1031352
(In reply to comment #10) > Please test thisp patch and > report if all is fine... > Yes this looks good. I've done now about a thousand files in a few batch tool runs without a crash. Tried to minimize the window, put it in background, doing editing in parallel - everything is stable. Thanks, Guenther