Example #1
0
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);
    }
}
Example #3
0
    //----------------------------------------------------------------------------------------------------------------
    //- 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;
    }