示例#1
0
QVariant MetadataModel::data(const QModelIndex &index, int role) const
{
    QVariant result;
    QmlMetadata* meta = m_list.at(index.row());

    if(meta) {
        switch(role) {
            case Qt::DisplayRole:
            case NameRole:
                result = meta->name();
                break;
            case HiddenRole:
                result = meta->isHidden();
                break;
            case FavoriteRole:
                result = meta->isFavorite();
                break;
            case ServiceRole:
                result = meta->mlt_service();
                break;
            case IsAudioRole:
                result = meta->isAudio();
                break;
            case NeedsGpuRole:
                result = meta->needsGPU();
                break;
            case VisibleRole:
                result = isVisible(index.row());
                break;
        }
    }

    return result;
}
示例#2
0
bool MetadataModel::isVisible(int row) const
{
    QmlMetadata* meta = m_list.at(row);
    if (meta->isHidden()) return false;
    if (meta->needsGPU() && !Settings.playerGPU()) return false;
    if (!meta->needsGPU() && Settings.playerGPU() && !meta->gpuAlt().isEmpty()) return false;
    if (m_filter == FavoritesFilter && !meta->isFavorite()) return false;
    if (m_filter == AudioFilter && !meta->isAudio()) return false;
    if (m_filter == VideoFilter && meta->isAudio()) return false;
    return true;
}