QVariant TorrentContentModel::data(const QModelIndex& index, int role) const { if (!index.isValid()) return QVariant(); TorrentContentModelItem* item = static_cast<TorrentContentModelItem*>(index.internalPointer()); if ((index.column() == TorrentContentModelItem::COL_NAME) && (role == Qt::DecorationRole)) { if (item->itemType() == TorrentContentModelItem::FolderType) return getDirectoryIcon(); else return getFileIcon(); } if ((index.column() == TorrentContentModelItem::COL_NAME) && (role == Qt::CheckStateRole)) { if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == prio::IGNORED) return Qt::Unchecked; if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == prio::MIXED) return Qt::PartiallyChecked; return Qt::Checked; } if (role == Qt::DisplayRole) return item->data(index.column()); return QVariant(); }
void OpenFileWidget::updateList(QFileInfoList & files) { int count = files.size(); const QFileInfo *fi; QListWidgetItem *item; for(int i = 0; i < count; i++) { fi = &files.at(i); if(fi->isDir()) { item = new QListWidgetItem(m_folderIcon , fi->fileName() , 0, QListWidgetItem::UserType); } else { QString fileName = fi->fileName(); item = new QListWidgetItem(getFileIcon(fileName) , fileName ); m_files.append(fileName); } //item->setFont(m_listItemFont); m_fileList->addItem(item); } }
//---------------------------------------------------------------------------------------------------------------- //- THREAD-SAFETY: must be thread-safe like an int! => no dangling references to this instance! IconLoader getAsyncIconLoader(const Zstring& itemPathImpl) const override //noexcept! { IconLoader wl = {}; wl.getFileIcon = [itemPathImpl](int pixelSize) //noexcept! { try { initComForThread(); //throw FileError return getFileIcon(itemPathImpl, pixelSize); } catch (FileError&) { assert(false); return ImageHolder(); } }; wl.getThumbnailImage = [itemPathImpl](int pixelSize) //noexcept! { try { initComForThread(); //throw FileError return getThumbnailImage(itemPathImpl, pixelSize); } catch (FileError&) { assert(false); return ImageHolder(); } }; return wl; }