+void StopmotionWidget::slotPrepareThumbs()
+{
+ if (m_filesList.isEmpty()) return;
+ QString path = m_filesList.takeFirst();
+ emit doCreateThumbs(QImage(path), m_currentIndex++);
+
+}
+
+void StopmotionWidget::slotCreateThumbs(QImage img, int ix)
+{
+ if (img.isNull()) {
+ m_future = QtConcurrent::run(this, &StopmotionWidget::slotPrepareThumbs);
+ return;
+ }
+ int height = 90;
+ int width = height * img.width() / img.height();
+ frame_list->setIconSize(QSize(width, height));
+ QPixmap pix = QPixmap::fromImage(img).scaled(width, height);
+ QString nb = QString::number(ix);
+ QPainter p(&pix);
+ QFontInfo finfo(font());
+ p.fillRect(0, 0, finfo.pixelSize() * nb.count() + 6, finfo.pixelSize() + 6, QColor(0, 0, 0, 150));
+ p.setPen(Qt::white);
+ p.drawText(QPoint(3, finfo.pixelSize() + 3), nb);
+ p.end();
+ QIcon icon(pix);
+ QListWidgetItem *item = new QListWidgetItem(icon, QString(), frame_list);
+ item->setData(Qt::UserRole, ix);
+ m_future = QtConcurrent::run(this, &StopmotionWidget::slotPrepareThumbs);
+}
+