#include "filemetadatatooltip.h"
#include <KIcon>
+#include <KIO/JobUiDelegate>
#include <KIO/PreviewJob>
+#include <KJobWidgets>
#include <QApplication>
#include <QDesktopWidget>
m_itemRect()
{
if (parent) {
- m_margin = qMax(m_margin, parent->style()->pixelMetric(QStyle::PM_ToolTipLabelFrameWidth));
+ m_margin = qMax(m_margin, parent->style()->pixelMetric(QStyle::PM_ToolTipLabelFrameWidth));
}
-
+
m_showToolTipTimer = new QTimer(this);
m_showToolTipTimer->setSingleShot(true);
m_showToolTipTimer->setInterval(500);
if (m_fileMetaDataToolTip) {
m_fileMetaDataToolTip->hide();
- delete m_fileMetaDataToolTip;
+ // Do not delete the tool tip immediately to prevent crashes when
+ // QCoreApplication tries to deliver an 'Enter' event to it, see bug 310579.
+ m_fileMetaDataToolTip->deleteLater();
m_fileMetaDataToolTip = 0;
}
}
// Request a preview of the item
m_fileMetaDataToolTip->setPreview(QPixmap());
- KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << m_item, QSize(256, 256));
+ KIO::PreviewJob* job = new KIO::PreviewJob(KFileItemList() << m_item, QSize(256, 256));
+ job->setIgnoreMaximumSize(m_item.isLocalFile());
+ if (job->ui()) {
+ KJobWidgets::setWindow(job, qApp->activeWindow());
+ }
connect(job, SIGNAL(gotPreview(KFileItem,QPixmap)),
this, SLOT(setPreviewPix(KFileItem,QPixmap)));