diff options
-rw-r--r-- | archivecontroller.cpp | 2 | ||||
-rw-r--r-- | helper.cpp | 24 |
2 files changed, 21 insertions, 5 deletions
diff --git a/archivecontroller.cpp b/archivecontroller.cpp index c0ecb0c..234eab4 100644 --- a/archivecontroller.cpp +++ b/archivecontroller.cpp @@ -187,7 +187,9 @@ void ArchiveController::showPreview(){ if(!fi.exists()){ pv->setFile(); }else if(sel.first().data(ArchiveFilesModel::FileTypeRole).toInt() == ArchiveFilesModel::Movie){ + mArchiveFiles->setCursor(Qt::BusyCursor); QPixmap preview = Helper::preview(first); + mArchiveFiles->setCursor(Qt::ArrowCursor); if(!preview.isNull()){ pv->setPixmap(preview); pv->show(); @@ -260,13 +260,15 @@ namespace Helper { retval.fill(Qt::transparent); QPainter p(&retval); QImage img1 = snapshot(path, 20); - p.drawImage(0, 0, img1); + int yOff = (480 - img1.height()) / 2; + yOff = yOff < 0 ? 0 : yOff; + p.drawImage(0, yOff, img1); QImage img2 = snapshot(path, interval * 2); - p.drawImage(680, 0, img2); + p.drawImage(680, yOff, img2); QImage img3 = snapshot(path, interval * 3); - p.drawImage(0, 520, img3); + p.drawImage(0, 520 + yOff, img3); QImage img4 = snapshot(path, secs - 60); - p.drawImage(680, 520, img4); + p.drawImage(680, 520 + yOff, img4); QPixmap pmretval = QPixmap::fromImage(retval); return pmretval; } @@ -287,7 +289,19 @@ namespace Helper { ffproc.waitForFinished(); } QImage retval(tf.fileName()); - return retval.scaledToWidth(640); + retval = retval.scaledToWidth(640); + Duration dur(where); + QFont font("courier", 10); + QFontMetrics fm(font); + int width = fm.width(dur.toString()); + int height = fm.height(); + QPainter p(&retval); + p.setBrush(QBrush(QColor(255, 255, 255, 70))); + QRect durRect(640 / 2 - width / 2 - 4, retval.height() - height - 8, width + 4, height + 4); + p.drawRect(durRect); + p.setPen(Qt::black); + p.drawText(durRect, Qt::AlignCenter, dur.toString()); + return retval; } QVariant picSize(const QString &path){ |