+#if KDE_IS_VERSION(4,5,0)
+void KThumb::queryIntraThumbs(QList <int> missingFrames)
+{
+ foreach (int i, missingFrames) {
+ if (!m_intraFramesQueue.contains(i)) m_intraFramesQueue.append(i);
+ }
+ qSort(m_intraFramesQueue);
+ if (!m_intra.isRunning()) {
+ m_intra = QtConcurrent::run(this, &KThumb::slotGetIntraThumbs);
+ }
+}
+
+void KThumb::slotGetIntraThumbs()
+{
+ const int theight = KdenliveSettings::trackheight();
+ const int frameWidth = (int)(theight * m_ratio + 0.5);
+ const int displayWidth = (int)(theight * m_dar + 0.5);
+ QString path = m_url.path() + "_";
+ bool addedThumbs = false;
+
+ while (!m_intraFramesQueue.isEmpty()) {
+ int pos = m_intraFramesQueue.takeFirst();
+ if (!m_clipManager->pixmapCache->contains(path + QString::number(pos))) {
+ if (m_clipManager->pixmapCache->insertImage(path + QString::number(pos), getProducerFrame(pos, frameWidth, displayWidth, theight))) {
+ addedThumbs = true;
+ }
+ else kDebug()<<"// INSERT FAILD FOR: "<<pos;
+ }
+ m_intraFramesQueue.removeAll(pos);
+ }
+ if (addedThumbs) emit thumbsCached();
+}
+
+QImage KThumb::findCachedThumb(const QString path)
+{
+ QImage img;
+ m_clipManager->pixmapCache->findImage(path, &img);
+ return img;
+}
+#endif