QString InfoFile::addItem(QString tag, QString value) { row++; return openItem() + "<td><b>" + tag + "</b></td>" + "<td>" + value + "</td>" + closeItem(); }
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); }
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><" + tr("empty") + "></i>"; QString name = md.audios.itemAt(n).name(); if (name.isEmpty()) name = "<i><" + tr("empty") + "></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><" + tr("empty") + "></i>"; QString name = md.subs.itemAt(n).name(); if (name.isEmpty()) name = "<i><" + tr("empty") + "></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>"; }