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