- } else {
- // The preview generation has finished, find out under which circumstances.
- if (m_preview && m_previewIsLate) {
- // We got a preview, but it is late, the tooltip has already been shown.
- // So update the tooltip directly.
- if (m_emptyRenderedKToolTipItem != 0) {
- m_emptyRenderedKToolTipItem->setData(Qt::DecorationRole, KIcon(m_pix));
- }
- return;
- }
+ }
+
+ if (!m_previewPixmap.isNull()) {
+ showToolTip(m_previewPixmap);
+ } else if (!m_hasDefaultIcon) {
+ const QPixmap image(KIcon(m_item.iconName()).pixmap(128, 128));
+ showToolTip(image);
+ m_hasDefaultIcon = true;
+ }
+}
+
+void ToolTipManager::startPreviewJob()
+{
+ m_generatingPreview = true;
+ KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << m_item, 256, 256);
+
+ connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)),
+ this, SLOT(setPreviewPix(const KFileItem&, const QPixmap&)));
+ connect(job, SIGNAL(failed(const KFileItem&)),
+ this, SLOT(previewFailed()));
+}