#include "filemetadatatooltip.h"
#include <KIcon>
#include <KIO/PreviewJob>
+#include <KSharedConfig>
#include <QApplication>
#include <QDesktopWidget>
m_fileMetaDataToolTip(0),
m_toolTipRequested(false),
m_metaDataRequested(false),
+ m_appliedWaitCursor(false),
m_item(),
m_itemRect()
{
static FileMetaDataToolTip* sharedToolTip = 0;
- if (sharedToolTip == 0) {
+ if (!sharedToolTip) {
sharedToolTip = new FileMetaDataToolTip();
// TODO: Using K_GLOBAL_STATIC would be preferable to maintain the
// instance, but the cleanup of KFileMetaDataWidget at this stage does
void ToolTipManager::hideToolTip()
{
- QApplication::restoreOverrideCursor();
+ if (m_appliedWaitCursor) {
+ QApplication::restoreOverrideCursor();
+ m_appliedWaitCursor = false;
+ }
m_toolTipRequested = false;
m_metaDataRequested = false;
m_fileMetaDataToolTip->setName(m_item.text());
+ // Request the retrieval of meta-data. The slot
+ // slotMetaDataRequestFinished() is invoked after the
+ // meta-data have been received.
m_metaDataRequested = true;
m_fileMetaDataToolTip->setItems(KFileItemList() << m_item);
- KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << m_item, 256, 256);
+ // Request a preview of the item
+ m_fileMetaDataToolTip->setPreview(QPixmap());
+
+ KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << m_item, QSize(256, 256));
connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)),
this, SLOT(setPreviewPix(const KFileItem&, const QPixmap&)));
void ToolTipManager::showToolTip()
{
Q_ASSERT(m_toolTipRequested);
- QApplication::restoreOverrideCursor();
+ if (m_appliedWaitCursor) {
+ QApplication::restoreOverrideCursor();
+ m_appliedWaitCursor = false;
+ }
if (QApplication::mouseButtons() & Qt::LeftButton) {
return;
}
if (m_fileMetaDataToolTip->preview().isNull() || m_metaDataRequested) {
+ Q_ASSERT(!m_appliedWaitCursor);
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+ m_appliedWaitCursor = true;
return;
}