X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/4eea1dc5a15f7b8acc3f0f0c2313c7ff2c029b27..5454283008f2:/src/views/tooltips/tooltipmanager.cpp diff --git a/src/views/tooltips/tooltipmanager.cpp b/src/views/tooltips/tooltipmanager.cpp index d19e98c81..9375172eb 100644 --- a/src/views/tooltips/tooltipmanager.cpp +++ b/src/views/tooltips/tooltipmanager.cpp @@ -19,7 +19,7 @@ #include "tooltipmanager.h" -#include "filemetadatatooltip.h" +#include "dolphinfilemetadatawidget.h" #include #include #include @@ -38,8 +38,7 @@ ToolTipManager::ToolTipManager(QWidget* parent) : m_showToolTipTimer(0), m_contentRetrievalTimer(0), m_transientParent(0), - m_fileMetaDataToolTip(0), - m_tooltipWidget(new KToolTipWidget()), + m_fileMetaDataWidget(0), m_toolTipRequested(false), m_metaDataRequested(false), m_appliedWaitCursor(false), @@ -82,10 +81,12 @@ void ToolTipManager::showToolTip(const KFileItem& item, const QRectF& itemRect, // Only start the retrieving of the content, when the mouse has been over this // item for 200 milliseconds. This prevents a lot of useless preview jobs and // meta data retrieval, when passing rapidly over a lot of items. - delete m_fileMetaDataToolTip; - m_fileMetaDataToolTip = new FileMetaDataToolTip(); - connect(m_fileMetaDataToolTip, &FileMetaDataToolTip::metaDataRequestFinished, + delete m_fileMetaDataWidget; + m_fileMetaDataWidget = new DolphinFileMetaDataWidget(); + connect(m_fileMetaDataWidget, &DolphinFileMetaDataWidget::metaDataRequestFinished, this, &ToolTipManager::slotMetaDataRequestFinished); + connect(m_fileMetaDataWidget, &DolphinFileMetaDataWidget::urlActivated, + this, &ToolTipManager::urlActivated); m_contentRetrievalTimer->start(); m_showToolTipTimer->start(); @@ -104,7 +105,9 @@ void ToolTipManager::hideToolTip() m_metaDataRequested = false; m_showToolTipTimer->stop(); m_contentRetrievalTimer->stop(); - m_tooltipWidget->hideLater(); + if (m_tooltipWidget) { + m_tooltipWidget->hideLater(); + } } void ToolTipManager::startContentRetrieval() @@ -113,17 +116,17 @@ void ToolTipManager::startContentRetrieval() return; } - m_fileMetaDataToolTip->setName(m_item.text()); + m_fileMetaDataWidget->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); - m_fileMetaDataToolTip->adjustSize(); + m_fileMetaDataWidget->setItems(KFileItemList() << m_item); + m_fileMetaDataWidget->adjustSize(); // Request a preview of the item - m_fileMetaDataToolTip->setPreview(QPixmap()); + m_fileMetaDataWidget->setPreview(QPixmap()); KIO::PreviewJob* job = new KIO::PreviewJob(KFileItemList() << m_item, QSize(256, 256)); job->setIgnoreMaximumSize(m_item.isLocalFile()); @@ -149,7 +152,7 @@ void ToolTipManager::setPreviewPix(const KFileItem& item, if (pixmap.isNull()) { previewFailed(); } else { - m_fileMetaDataToolTip->setPreview(pixmap); + m_fileMetaDataWidget->setPreview(pixmap); if (!m_showToolTipTimer->isActive()) { showToolTip(); } @@ -163,7 +166,7 @@ void ToolTipManager::previewFailed() } const QPixmap pixmap = QIcon::fromTheme(m_item.iconName()).pixmap(128, 128); - m_fileMetaDataToolTip->setPreview(pixmap); + m_fileMetaDataWidget->setPreview(pixmap); if (!m_showToolTipTimer->isActive()) { showToolTip(); } @@ -190,7 +193,7 @@ void ToolTipManager::showToolTip() m_appliedWaitCursor = false; } - if (m_fileMetaDataToolTip->preview().isNull() || m_metaDataRequested) { + if (m_fileMetaDataWidget->preview().isNull() || m_metaDataRequested) { Q_ASSERT(!m_appliedWaitCursor); QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); m_appliedWaitCursor = true; @@ -198,8 +201,11 @@ void ToolTipManager::showToolTip() } // Adjust the size to get a proper sizeHint() - m_fileMetaDataToolTip->adjustSize(); - m_tooltipWidget->showBelow(m_itemRect, m_fileMetaDataToolTip, m_transientParent); + m_fileMetaDataWidget->adjustSize(); + if (!m_tooltipWidget) { + m_tooltipWidget.reset(new KToolTipWidget()); + } + m_tooltipWidget->showBelow(m_itemRect, m_fileMetaDataWidget, m_transientParent); m_toolTipRequested = false; }