Application: dolphin (1.5) KDE Platform Version: 4.4.92 (KDE 4.4.92 (KDE 4.5 RC2)) Qt Version: 4.7.0 Operating System: Linux 2.6.32-24-generic x86_64 Distribution: Ubuntu 10.04.1 LTS -- Information about the crash: I was using Dolphin, managing my photo gallery and when I wanted to cut and paste files from dir A to dir B I mistook the shortcut and copy them instead, then I pasted the files in dir B and realised that those files remained in dir A, so I cut them correctly and paste them in dir B again, I expected to receive the overwrite dialog to say yes but in that moment, Dolphin crashed. I tried this twice all in the same order, with the same result. The crash can be reproduced every time. -- Backtrace: Application: Dolphin (dolphin), signal: Segmentation fault [Current thread is 1 (Thread 0x7ffa330e4760 (LWP 3534))] Thread 3 (Thread 0x7ffa1dd74710 (LWP 3537)): #0 0x00007ffa2cacb3f5 in __pthread_mutex_lock (mutex=0x17c0238) at pthread_mutex_lock.c:61 #1 0x00007ffa2a54082b in g_main_context_acquire () from /lib/libglib-2.0.so.0 #2 0x00007ffa2a542295 in ?? () from /lib/libglib-2.0.so.0 #3 0x00007ffa2a5428fc in g_main_context_iteration () from /lib/libglib-2.0.so.0 #4 0x00007ffa2edc2bd6 in QEventDispatcherGlib::processEvents (this=0x1d1d600, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007ffa2ed957b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007ffa2ed95b9c in QEventLoop::exec (this=0x7ffa1dd73db0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007ffa2eca123d in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490 #8 0x00007ffa2ed756d8 in QInotifyFileSystemWatcherEngine::run (this=0x1d11190) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007ffa2eca41be in QThreadPrivate::start (arg=0x1d11190) at thread/qthread_unix.cpp:266 #10 0x00007ffa2cac89ca in start_thread (arg=<value optimized out>) at pthread_create.c:300 #11 0x00007ffa329cc6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #12 0x0000000000000000 in ?? () Thread 2 (Thread 0x7ffa1cd72710 (LWP 3548)): [KCrash Handler] #6 0x0000000000001550 in ?? () #7 0x00007ffa1ac6dad3 in JpegEndAnalyzer::analyze (this=<value optimized out>, ar=<value optimized out>, in=0x20b7020) at /build/buildd/strigi-0.7.2/src/streamanalyzer/endplugins/jpegendanalyzer.cpp:256 #8 0x00007ffa2baf1172 in Strigi::StreamAnalyzerPrivate::analyze (this=0x1fae340, idx=..., input=0x20b7020) at /build/buildd/strigi-0.7.2/src/streamanalyzer/streamanalyzer.cpp:421 #9 0x00007ffa2bad02d8 in Strigi::AnalysisResult::indexChild (this=0x7ffa1cd71930, name=<value optimized out>, mt=1279605550, file=0x7ffa1cd715f0) at /build/buildd/strigi-0.7.2/src/streamanalyzer/analysisresult.cpp:250 #10 0x00007ffa1ac6e462 in JpegEndAnalyzer::analyze (this=<value optimized out>, ar=<value optimized out>, in=<value optimized out>) at /build/buildd/strigi-0.7.2/src/streamanalyzer/endplugins/jpegendanalyzer.cpp:327 #11 0x00007ffa2baf1172 in Strigi::StreamAnalyzerPrivate::analyze (this=0x1fae340, idx=..., input=0x20350d0) at /build/buildd/strigi-0.7.2/src/streamanalyzer/streamanalyzer.cpp:421 #12 0x00007ffa30c975e5 in KFileMetaInfoPrivate::init (this=0x1f879f0, stream=<value optimized out>, url=<value optimized out>, mtime=<value optimized out>, w=<value optimized out>) at ../../kio/kio/kfilemetainfo.cpp:210 #13 0x00007ffa30c992f3 in KFileMetaInfo (this=0x7ffa1cd71cf0, path=..., w=<value optimized out>) at ../../kio/kio/kfilemetainfo.cpp:237 #14 0x00007ffa30d83212 in KLoadFileMetaDataThread::run (this=<value optimized out>) at ../../kio/kfile/kloadfilemetadatathread.cpp:124 #15 0x00007ffa2eca41be in QThreadPrivate::start (arg=0x1eee580) at thread/qthread_unix.cpp:266 #16 0x00007ffa2cac89ca in start_thread (arg=<value optimized out>) at pthread_create.c:300 #17 0x00007ffa329cc6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #18 0x0000000000000000 in ?? () Thread 1 (Thread 0x7ffa330e4760 (LWP 3534)): #0 0x00007ffa329bff83 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007ffa28d9729a in ?? () from /usr/lib/libxcb.so.1 #2 0x00007ffa28d977d7 in ?? () from /usr/lib/libxcb.so.1 #3 0x00007ffa28d97a85 in xcb_writev () from /usr/lib/libxcb.so.1 #4 0x00007ffa2dd3d6fa in _XSend () from /usr/lib/libX11.so.6 #5 0x00007ffa2dd3dc45 in _XFlush () from /usr/lib/libX11.so.6 #6 0x00007ffa2d4cf1cc in XRenderComposite () from /usr/lib/libXrender.so.1 #7 0x00007ffa2fbf51b9 in QX11PaintEngine::drawTiledPixmap (this=<value optimized out>, r=<value optimized out>, pixmap=<value optimized out>, p=<value optimized out>) at painting/qpaintengine_x11.cpp:2164 #8 0x00007ffa2fb44594 in QPainter::drawTiledPixmap (this=0x7fff64fb3be0, r=..., pixmap=..., sp=...) at painting/qpainter.cpp:6704 #9 0x00007ffa25ef4d44 in Oxygen::TileSet::render(QRect const&, QPainter*, QFlags<Oxygen::TileSet::Tile>) const () from /usr/lib/liboxygenstyle.so.4 #10 0x00007ffa26183336 in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so #11 0x00007ffa261555f6 in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so #12 0x00007ffa2fa3627e in QWidget::event (this=0x1ac3f10, event=0x7fff64fb44b0) at kernel/qwidget.cpp:8303 #13 0x00007ffa261558bd in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so #14 0x00007ffa2f9e0cdc in QApplicationPrivate::notify_helper (this=0x17269d0, receiver=0x1ac3f10, e=0x7fff64fb44b0) at kernel/qapplication.cpp:4389 #15 0x00007ffa2f9e67cd in QApplication::notify (this=0x7fff64fb8ab0, receiver=0x1ac3f10, e=0x7fff64fb44b0) at kernel/qapplication.cpp:4270 #16 0x00007ffa30735926 in KApplication::notify (this=0x7fff64fb8ab0, receiver=0x1ac3f10, event=0x7fff64fb44b0) at ../../kdeui/kernel/kapplication.cpp:309 #17 0x00007ffa2ed96a8c in QCoreApplication::notifyInternal (this=0x7fff64fb8ab0, receiver=0x1ac3f10, event=0x7fff64fb44b0) at kernel/qcoreapplication.cpp:732 #18 0x00007ffa2fa3cd8d in QCoreApplication::sendSpontaneousEvent (this=0x1ac3f80, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x1aadfa0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218 #19 QWidgetPrivate::drawWidget (this=0x1ac3f80, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5390 #20 0x00007ffa2fa3da28 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=14, rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5597 #21 0x00007ffa2fa3caea in QWidgetPrivate::drawWidget (this=0x1a95330, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5443 #22 0x00007ffa2fa3da28 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=4, rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5597 #23 0x00007ffa2fa3caea in QWidgetPrivate::drawWidget (this=0x1a931f0, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5443 #24 0x00007ffa2fa3da28 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=4, rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5597 #25 0x00007ffa2fa3caea in QWidgetPrivate::drawWidget (this=0x1a6d740, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5443 #26 0x00007ffa2fa3da28 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=0, rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5597 #27 0x00007ffa2fa3caea in QWidgetPrivate::drawWidget (this=0x192a780, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5443 #28 0x00007ffa2fa3da28 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=3, rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5597 #29 0x00007ffa2fa3caea in QWidgetPrivate::drawWidget (this=0x1b6d0e0, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5443 #30 0x00007ffa2fa3da28 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=11, rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5597 #31 0x00007ffa2fa3caea in QWidgetPrivate::drawWidget (this=0x17177c0, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x1aadfa0) at kernel/qwidget.cpp:5443 #32 0x00007ffa2fc0d4f8 in QWidgetBackingStore::sync (this=0x1aadfa0) at painting/qbackingstore.cpp:1328 #33 0x00007ffa2fa30300 in QWidgetPrivate::syncBackingStore (this=0x17177c0) at kernel/qwidget.cpp:1775 #34 0x00007ffa2fa36945 in QWidget::event (this=0x184d930, event=0x1fb2650) at kernel/qwidget.cpp:8450 #35 0x00007ffa2fe167cb in QMainWindow::event (this=0x184d930, event=0x1fb2650) at widgets/qmainwindow.cpp:1417 #36 0x00007ffa30850283 in KXmlGuiWindow::event (this=0x7fff64fb3480, ev=0x1) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:130 #37 0x00007ffa2f9e0cdc in QApplicationPrivate::notify_helper (this=0x17269d0, receiver=0x184d930, e=0x1fb2650) at kernel/qapplication.cpp:4389 #38 0x00007ffa2f9e67cd in QApplication::notify (this=0x7fff64fb8ab0, receiver=0x184d930, e=0x1fb2650) at kernel/qapplication.cpp:4270 #39 0x00007ffa30735926 in KApplication::notify (this=0x7fff64fb8ab0, receiver=0x184d930, event=0x1fb2650) at ../../kdeui/kernel/kapplication.cpp:309 #40 0x00007ffa2ed96a8c in QCoreApplication::notifyInternal (this=0x7fff64fb8ab0, receiver=0x184d930, event=0x1fb2650) at kernel/qcoreapplication.cpp:732 #41 0x00007ffa2ed999b2 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x16fda60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #42 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x16fda60) at kernel/qcoreapplication.cpp:1373 #43 0x00007ffa2edc3043 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #44 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276 #45 0x00007ffa2a53e8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #46 0x00007ffa2a542748 in ?? () from /lib/libglib-2.0.so.0 #47 0x00007ffa2a5428fc in g_main_context_iteration () from /lib/libglib-2.0.so.0 #48 0x00007ffa2edc2b83 in QEventDispatcherGlib::processEvents (this=0x16fd560, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 #49 0x00007ffa2fa927ee in QGuiEventDispatcherGlib::processEvents (this=0x7fff64fb3480, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #50 0x00007ffa2ed957b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #51 0x00007ffa2ed95b9c in QEventLoop::exec (this=0x7fff64fb6f30, flags=) at kernel/qeventloop.cpp:201 #52 0x00007ffa2feccdce in QDialog::exec (this=0x7fff64fb6fe0) at dialogs/qdialog.cpp:546 #53 0x00007ffa30c4e143 in KIO::JobUiDelegate::askFileRename (this=<value optimized out>, job=0x1d98c60, caption=..., src=..., dest=<value optimized out>, mode=<value optimized out>, newDest=..., sizeSrc=349378, sizeDest=349378, ctimeSrc=1279605550, ctimeDest=1279745385, mtimeSrc=1279605550, mtimeDest=1279605550) at ../../kio/kio/jobuidelegate.cpp:83 #54 0x00007ffa30c19950 in KIO::CopyJobPrivate::slotResultRenaming (this=<value optimized out>, job=<value optimized out>) at ../../kio/kio/copyjob.cpp:1903 #55 0x00007ffa30c11ec7 in KIO::CopyJob::qt_metacall (this=0x1d98c60, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff64fb78b0) at ./copyjob.moc:121 #56 0x00007ffa2edae7a7 in QMetaObject::activate (sender=0x1c8c4b0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280 #57 0x00007ffa2f470702 in KJob::result (this=0x7fff64fb3480, _t1=0x1c8c4b0) at ./kjob.moc:194 #58 0x00007ffa2f4709a0 in KJob::emitResult (this=0x1c8c4b0) at ../../kdecore/jobs/kjob.cpp:312 #59 0x00007ffa30c428a3 in KIO::SimpleJob::slotFinished (this=0x1c8c4b0) at ../../kio/kio/job.cpp:522 #60 0x00007ffa30c40c76 in KIO::SimpleJob::slotError (this=0x1c8c4b0, err=<value optimized out>, errorText=...) at ../../kio/kio/job.cpp:534 #61 0x00007ffa30c40db8 in KIO::SimpleJob::qt_metacall (this=0x1c8c4b0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff64fb7b80) at ./jobclasses.moc:170 #62 0x00007ffa2edae7a7 in QMetaObject::activate (sender=0x1aad960, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280 #63 0x00007ffa30cef936 in KIO::SlaveInterface::error (this=0x7fff64fb3480, _t1=112, _t2=<value optimized out>) at ./slaveinterface.moc:159 #64 0x00007ffa30cf2c6a in KIO::SlaveInterface::dispatch (this=0x1aad960, _cmd=102, rawdata=...) at ../../kio/kio/slaveinterface.cpp:208 #65 0x00007ffa30cefc33 in KIO::SlaveInterface::dispatch (this=0x1aad960) at ../../kio/kio/slaveinterface.cpp:91 #66 0x00007ffa30ce37e6 in KIO::Slave::gotInput (this=0x1aad960) at ../../kio/kio/slave.cpp:344 #67 0x00007ffa30ce39cc in KIO::Slave::qt_metacall (this=0x1aad960, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff64fb7fa0) at ./slave.moc:82 #68 0x00007ffa2edae7a7 in QMetaObject::activate (sender=0x1bb0800, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280 #69 0x00007ffa30c0f4b7 in KIO::ConnectionPrivate::dequeue (this=0x1c36c90) at ../../kio/kio/connection.cpp:82 #70 0x00007ffa30c0f5dd in KIO::Connection::qt_metacall (this=0x1bb0800, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x1e5a910) at ./connection.moc:79 #71 0x00007ffa2eda887e in QObject::event (this=0x1bb0800, e=0x7fff64fb3480) at kernel/qobject.cpp:1219 #72 0x00007ffa2f9e0cdc in QApplicationPrivate::notify_helper (this=0x17269d0, receiver=0x1bb0800, e=0x1c9eac0) at kernel/qapplication.cpp:4389 #73 0x00007ffa2f9e67cd in QApplication::notify (this=0x7fff64fb8ab0, receiver=0x1bb0800, e=0x1c9eac0) at kernel/qapplication.cpp:4270 #74 0x00007ffa30735926 in KApplication::notify (this=0x7fff64fb8ab0, receiver=0x1bb0800, event=0x1c9eac0) at ../../kdeui/kernel/kapplication.cpp:309 #75 0x00007ffa2ed96a8c in QCoreApplication::notifyInternal (this=0x7fff64fb8ab0, receiver=0x1bb0800, event=0x1c9eac0) at kernel/qcoreapplication.cpp:732 #76 0x00007ffa2ed999b2 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x16fda60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #77 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x16fda60) at kernel/qcoreapplication.cpp:1373 #78 0x00007ffa2edc3043 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #79 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276 #80 0x00007ffa2a53e8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #81 0x00007ffa2a542748 in ?? () from /lib/libglib-2.0.so.0 #82 0x00007ffa2a5428fc in g_main_context_iteration () from /lib/libglib-2.0.so.0 #83 0x00007ffa2edc2b83 in QEventDispatcherGlib::processEvents (this=0x16fd560, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 #84 0x00007ffa2fa927ee in QGuiEventDispatcherGlib::processEvents (this=0x7fff64fb3480, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #85 0x00007ffa2ed957b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #86 0x00007ffa2ed95b9c in QEventLoop::exec (this=0x7fff64fb89f0, flags=) at kernel/qeventloop.cpp:201 #87 0x00007ffa2ed99c4b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 #88 0x00007ffa32cb4dbf in kdemain (argc=<value optimized out>, argv=<value optimized out>) at ../../../../apps/dolphin/src/main.cpp:98 #89 0x00007ffa32904c4d in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>, init=<value optimized out>, fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fff64fb8fc8) at libc-start.c:226 #90 0x00000000004006b9 in _start () Reported using DrKonqi
It seems that the crash is related to the file analyzer ("strigi") and a specific JPG file. Can you still reproduce the crash ? Can you identify the culprit JPG file? If you can, and if the file doesn't contain private data it could be useful to debug the file analyzer. Regards
Thanks for the report, this issue has been fixed in KDE SC 4.5.0
*** Bug 262111 has been marked as a duplicate of this bug. ***
Hi, I'm reopening this bug as it was just reported with digikam and KDE 4.5.4 (see the dupe 262111). The description is pretty much the same - trying to overwrite images (jpeg) in the same folder.
Would it be possible to attach the JPG where the crash occurs? As mentioned in comment #1 this seems to be an issue in Strigi and we'd need the image to attach it to the bug-report for the Strigi-developers... Thanks!
Git commit d1254968eac95f4d9d8c47552e27f0cc40e6aed9 by Peter Penz. Committed on 27/02/2011 at 20:01. Pushed by ppenz into branch 'master'. KFileMetaDataProvider: Don't crash if a Strigi analyzer crashes Some Strigi analyzers are still unstable and crash under certain circumstances. This patch moves the reading of the meta-data into a custom process instead of doing it in a thread, which assures that a crashing Strigi analyzer does not result in crashing Dolphin or Konqueror when hovering some items. FIXED-IN: 4.7.0 BUG: 257964 BUG: 258715 BUG: 262299 BUG: 263468 BUG: 263502 BUG: 264254 BUG: 234799 BUG: 251462 BUG: 251701 BUG: 258918 BUG: 192377 BUG: 195564 BUG: 199368 BUG: 210841 BUG: 245376 BUG: 246461 BUG: 246901 BUG: 249150 BUG: 261952 BUG: 249876 BUG: 179376 BUG: 179417 BUG: 179420 BUG: 181591 BUG: 183269 BUG: 183722 BUG: 185667 BUG: 188596 BUG: 191864 BUG: 193112 BUG: 205813 BUG: 244621 BUG: 245451 BUG: 248214 BUG: 249655 BUG: 249876 BUG: 265549 BUG: 267079 M +11 -1 kio/CMakeLists.txt M +68 -38 kio/kfile/kfilemetadataprovider.cpp M +2 -1 kio/kfile/kfilemetadataprovider_p.h A +174 -0 kio/kfile/kfilemetadatareader.cpp [License: LGPL (v2+)] M +0 -2 kio/kfile/kfilemetadatawidget.cpp D +0 -178 kio/kfile/kloadfilemetadatathread.cpp D +0 -96 kio/kfile/kloadfilemetadatathread_p.h http://commits.kde.org/kdelibs/d1254968eac95f4d9d8c47552e27f0cc40e6aed9