1

I am using QFileSystemModel to parse a directory structure with 20,000+ files and subdirectories on a Mac. QFileSystemModel takes around 8-10secs to populate and during that time the UI stalls. As per Qt documentation, the file system parsing is done in a separate thread. So I am wondering if I am doing something wrong to stall the UI or is this a known issue. Please take a look at the stack trace below, which is a snapshot of the main thread while QFileSystemModel was traversing the directory structure and the UI stalled. The Qt libraries being not the debug libraries, I could manage only the stack trace without any debug symbols but hope this might be a clue to find out what might be going wrong here.

0   _ISGetCGImageRefForISImageRef
1   PlotISImageRefInContext
2   PlotIconRefInContext
3   qt_mac_convert_iconref
4   qt_mac_constructQIconFromIconRef    
5   QFileIconProviderPrivate::getMacIcon
6   QFileIconProvider::icon
7   QFileInfoGatherer::getInfo
8   QFileSystemModelPrivate::_q_fileSystemChanged   
9   QFileSystemModel::qt_metacall
10  QObject::event
11  QFileSystemModel::event
12  QApplicationPrivate::notify_helper
13  QApplication::notify
14  QCoreApplication::notifyInternal
15  QCoreApplicationPrivate::sendPostedEvents
16  __CFRunLoopDoSources
17  __CFRunLoopRun
18  CFRunLoopRunSpecific
19  RunCurrentEventLoopInMode
20  ReceiveNextEventCommon
21  BlockUntilNextEventMatchingListInMode
22  _DPSNextEvent
23  -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
24  -[NSApplication run]
25  QEventDispatcherMac::processEvents
26  QEventLoop::processEvents
27  QEventLoop::exec
28  QCoreApplication::exec
29  main    
slugster
  • 49,403
  • 14
  • 95
  • 145
Soumya Das
  • 1,635
  • 2
  • 19
  • 28
  • 1
    Can you add the code where the "file system parsing" is executed? – Cory Klein Jul 11 '13 at 19:05
  • If this is related to [this](http://stackoverflow.com/a/4062623/894321) you could try writing a class derived from `QFileIconProvider` that does nothing and passing it to the `QFileSystemModel` instance. – alexisdm Jul 12 '13 at 23:42

0 Answers0