void ImageView::LoadAlbumRunnable::run() { while (!m_dirList.empty()) { ThumbItem *dir = m_dirList.takeFirst(); ThumbList children; GalleryUtil::LoadDirectory(children, dir->GetPath(), GalleryFilter(m_sortorder != 0), false, NULL, NULL); { QMutexLocker guard(&m_isAliveLock); if (!m_isAlive) { break; } } // The first images should not always come from the first directory. if (m_slideshow_sequencing > 1) { std::random_shuffle(children.begin(), children.end()); } ThumbList fileList; filterDirectories(children, fileList, m_dirList); if (!fileList.empty()) { m_parent->AddItems(fileList); } } }