- if ((m_item.url() != item.url()) || pixmap.isNull()) {
- // an old preview or an invalid preview has been received
- m_generatingPreview = false;
- return;
- }
-
- m_pix = pixmap;
- m_preview = true;
- m_generatingPreview = false;
-}
-
-void ToolTipManager::previewFailed(const KFileItem& item)
-{
- Q_UNUSED(item);
- m_generatingPreview = false;
+ QWidget* tipContent = new QWidget();
+
+ // add pixmap
+ QLabel* pixmapLabel = new QLabel(tipContent);
+ pixmapLabel->setPixmap(pixmap);
+ pixmapLabel->setFixedSize(pixmap.size());
+
+ // add item name
+ QLabel* nameLabel = new QLabel(tipContent);
+ nameLabel->setText(m_item.text());
+ nameLabel->setWordWrap(true);
+ QFont font = nameLabel->font();
+ font.setBold(true);
+ nameLabel->setFont(font);
+ nameLabel->setAlignment(Qt::AlignHCenter);
+ nameLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+
+ // add meta data
+ KMetaDataWidget* metaDataWidget = new KMetaDataWidget(tipContent);
+ metaDataWidget->setModel(new KMetaDataModel(tipContent));
+ metaDataWidget->setForegroundRole(QPalette::ToolTipText);
+ metaDataWidget->setItem(m_item);
+ metaDataWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ metaDataWidget->setReadOnly(true);
+
+ // the stretchwidget allows the metadata widget to be top aligned and fills
+ // the remaining vertical space
+ QWidget* stretchWidget = new QWidget(tipContent);
+ stretchWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
+
+ QWidget* textContainer = new QWidget(tipContent);
+ QVBoxLayout* textLayout = new QVBoxLayout(textContainer);
+ textLayout->addWidget(nameLabel);
+ textLayout->addWidget(new KSeparator());
+ textLayout->addWidget(metaDataWidget);
+ textLayout->addWidget(stretchWidget);
+
+ QHBoxLayout* tipLayout = new QHBoxLayout(tipContent);
+ tipLayout->setMargin(0);
+ tipLayout->addWidget(pixmapLabel);
+ tipLayout->addWidget(textContainer);
+
+ return tipContent;