Beispiel #1
0
QString InfoFile::addItem(QString tag, QString value)
{
    row++;
    return openItem() +
           "<td><b>" + tag + "</b></td>" +
           "<td>" + value + "</td>" +
           closeItem();
}
Beispiel #2
0
void ListWidget::mousePressEvent (QMouseEvent *event)
{
    if (selectionMode() == QAbstractItemView::SingleSelection)
    {
        if (event->button() == Qt::MidButton)
        {
            QModelIndex index = indexAt (event->pos());
            if (QListWidgetItem *item = itemFromIndex (index)) // index is checked for its validity in QListWidget::itemFromIndex()
                emit closeItem (item);
            else
                emit closeSidePane();
            return;
        }
        else if (event->button() == Qt::RightButton)
            return;
    }
    QListWidget::mousePressEvent (event);
}
Beispiel #3
0
QString InfoFile::getInfo(MediaData md)
{
    QString s;

    // General
    QFileInfo fi(md.filename);

    QString icon;

    switch (md.type) {
    case TYPE_FILE	:

        if (md.novideo)
            icon = "type_audio.png";
        else
            icon = "type_video.png";

        break;
    case TYPE_DVD	:
        icon = "type_dvd.png";
        break;
    case TYPE_VCD	:
        icon = "type_vcd.png";
        break;
    case TYPE_AUDIO_CD	:
        icon = "type_vcd.png";
        break;
    case TYPE_TV	:
        icon = "type_tv.png";
        break;
    case TYPE_STREAM :
        icon = "type_url.png";
        break;
    default 		:
        icon = "type_unknown.png";
    }

    icon = "<img src=\"" + Images::file(icon) + "\"> ";

    if (md.type == TYPE_DVD) {
        DiscData disc_data = DiscName::split(md.filename);
        s += title(icon + disc_data.protocol + "://" + QString::number(disc_data.title));
    } else {
        s += title(icon + md.displayName());
    }

    s += openPar(tr("General"));

    if (fi.exists()) {
        //s += addItem( tr("Path"), fi.dirPath() );
        s += addItem(tr("File"), fi.absoluteFilePath());
        s += addItem(tr("Size"), tr("%1 KB (%2 MB)").arg(fi.size() / 1024)
                     .arg(fi.size() / 1048576));
    } else {
        QString url = md.filename;
        s += addItem(tr("URL"), url);
    }

    s += addItem(tr("Length"), Helper::formatTime((int)md.duration));
    s += addItem(tr("Demuxer"), md.demuxer);
    s += closePar();

    // Clip info
    QString c;

    if (!md.clip_name.isEmpty()) c += addItem(tr("Name"), md.clip_name);

    if (!md.clip_artist.isEmpty()) c += addItem(tr("Artist"), md.clip_artist);

    if (!md.clip_author.isEmpty()) c += addItem(tr("Author"), md.clip_author);

    if (!md.clip_album.isEmpty()) c += addItem(tr("Album"), md.clip_album);

    if (!md.clip_genre.isEmpty()) c += addItem(tr("Genre"), md.clip_genre);

    if (!md.clip_date.isEmpty()) c += addItem(tr("Date"), md.clip_date);

    if (!md.clip_track.isEmpty()) c += addItem(tr("Track"), md.clip_track);

    if (!md.clip_copyright.isEmpty()) c += addItem(tr("Copyright"), md.clip_copyright);

    if (!md.clip_comment.isEmpty()) c += addItem(tr("Comment"), md.clip_comment);

    if (!md.clip_software.isEmpty()) c += addItem(tr("Software"), md.clip_software);

    if (!md.stream_title.isEmpty()) c += addItem(tr("Stream title"), md.stream_title);

    if (!md.stream_url.isEmpty()) c += addItem(tr("Stream URL"), md.stream_url);

    if (!c.isEmpty()) {
        s += openPar(tr("Clip info"));
        s += c;
        s += closePar();
    }

    // Video info
    if (!md.novideo) {
        s += openPar(tr("Video"));
        s += addItem(tr("Resolution"), QString("%1 x %2").arg(md.video_width).arg(md.video_height));
        s += addItem(tr("Aspect ratio"), QString::number(md.video_aspect));
        s += addItem(tr("Format"), md.video_format);
        s += addItem(tr("Bitrate"), tr("%1 kbps").arg(md.video_bitrate / 1000));
        s += addItem(tr("Frames per second"), md.video_fps);
        s += addItem(tr("Selected codec"), md.video_codec);
        s += closePar();
    }

    // Audio info
    s += openPar(tr("Initial Audio Stream"));
    s += addItem(tr("Format"), md.audio_format);
    s += addItem(tr("Bitrate"), tr("%1 kbps").arg(md.audio_bitrate / 1000));
    s += addItem(tr("Rate"), tr("%1 Hz").arg(md.audio_rate));
    s += addItem(tr("Channels"), QString::number(md.audio_nch));
    s += addItem(tr("Selected codec"), md.audio_codec);
    s += closePar();

    // Audio Tracks
    if (md.audios.numItems() > 0) {
        s += openPar(tr("Audio Streams"));
        row++;
        s += openItem();
        s += "<td>" + tr("#", "Info for translators: this is a abbreviation for number") + "</td><td>" +
             tr("Language") + "</td><td>" + tr("Name") + "</td><td>" +
             tr("ID", "Info for translators: this is a identification code") + "</td>";
        s += closeItem();

        for (int n = 0; n < md.audios.numItems(); n++) {
            row++;
            s += openItem();
            QString lang = md.audios.itemAt(n).lang();

            if (lang.isEmpty()) lang = "<i>&lt;" + tr("empty") + "&gt;</i>";

            QString name = md.audios.itemAt(n).name();

            if (name.isEmpty()) name = "<i>&lt;" + tr("empty") + "&gt;</i>";

            s += QString("<td>%1</td><td>%2</td><td>%3</td><td>%4</td>")
                 .arg(n).arg(lang).arg(name)
                 .arg(md.audios.itemAt(n).ID());
            s += closeItem();
        }

        s += closePar();
    }

    // Subtitles
    if (md.subs.numItems() > 0) {
        s += openPar(tr("Subtitles"));
        row++;
        s += openItem();
        s += "<td>" + tr("#", "Info for translators: this is a abbreviation for number") + "</td><td>" +
             tr("Type") + "</td><td>" +
             tr("Language") + "</td><td>" + tr("Name") + "</td><td>" +
             tr("ID", "Info for translators: this is a identification code") + "</td>";
        s += closeItem();

        for (int n = 0; n < md.subs.numItems(); n++) {
            row++;
            s += openItem();
            QString t;

            switch (md.subs.itemAt(n).type()) {
            case SubData::File:
                t = "FILE_SUB";
                break;
            case SubData::Vob:
                t = "VOB";
                break;
            default:
                t = "SUB";
            }

            QString lang = md.subs.itemAt(n).lang();

            if (lang.isEmpty()) lang = "<i>&lt;" + tr("empty") + "&gt;</i>";

            QString name = md.subs.itemAt(n).name();

            if (name.isEmpty()) name = "<i>&lt;" + tr("empty") + "&gt;</i>";

            /*
            s += QString("<td>%1</td><td>%2</td><td>%3</td><td>%4</td><td>%5</td>")
                 .arg(n).arg(t).arg(lang).arg(name)
                 .arg(md.subs.itemAt(n).ID());
            */
            s += "<td>" + QString::number(n) + "</td><td>" + t +
                 "</td><td>" + lang + "</td><td>" + name +
                 "</td><td>" + QString::number(md.subs.itemAt(n).ID()) + "</td>";
            s += closeItem();
        }

        s += closePar();
    }

    return "<html><body bgcolor=\"white\"><font color=\"black\">" + s + "</font></body></html>";
}