X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d3496b12310d9fec0e52e537c341e87fcaa2f8b5..41d8b21edef00745ff2f17b6bd54fca29d6cd598:/src/views/tooltips/tooltipmanager.cpp diff --git a/src/views/tooltips/tooltipmanager.cpp b/src/views/tooltips/tooltipmanager.cpp index cb86b3355..f93dd90be 100644 --- a/src/views/tooltips/tooltipmanager.cpp +++ b/src/views/tooltips/tooltipmanager.cpp @@ -20,7 +20,6 @@ #include "tooltipmanager.h" #include "filemetadatatooltip.h" -#include #include #include #include @@ -47,20 +46,8 @@ ToolTipManager::ToolTipManager(QAbstractItemView* parent, m_metaDataRequested(false), m_appliedWaitCursor(false), m_item(), - m_itemRect(), - m_enabledPlugins() + m_itemRect() { - static FileMetaDataToolTip* 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 - // not work. - } - m_fileMetaDataToolTip = sharedToolTip; - connect(m_fileMetaDataToolTip, SIGNAL(metaDataRequestFinished(KFileItemList)), - this, SLOT(slotMetaDataRequestFinished())); - m_dolphinModel = static_cast(m_proxyModel->sourceModel()); connect(parent, SIGNAL(entered(const QModelIndex&)), this, SLOT(requestToolTip(const QModelIndex&))); @@ -88,6 +75,7 @@ ToolTipManager::ToolTipManager(QAbstractItemView* parent, connect(parent->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(hideToolTip())); + Q_ASSERT(m_view); m_view->viewport()->installEventFilter(this); m_view->installEventFilter(this); } @@ -108,9 +96,9 @@ void ToolTipManager::hideToolTip() m_showToolTipTimer->stop(); m_contentRetrievalTimer->stop(); - m_fileMetaDataToolTip->setItems(KFileItemList()); - m_fileMetaDataToolTip->hide(); -} + delete m_fileMetaDataToolTip; + m_fileMetaDataToolTip = 0;} + bool ToolTipManager::eventFilter(QObject* watched, QEvent* event) { @@ -147,6 +135,11 @@ void ToolTipManager::requestToolTip(const QModelIndex& index) // 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. + Q_ASSERT(!m_fileMetaDataToolTip); + m_fileMetaDataToolTip = new FileMetaDataToolTip(m_view); + connect(m_fileMetaDataToolTip, SIGNAL(metaDataRequestFinished(KFileItemList)), + this, SLOT(slotMetaDataRequestFinished())); + m_contentRetrievalTimer->start(); m_showToolTipTimer->start(); m_toolTipRequested = true; @@ -171,14 +164,7 @@ void ToolTipManager::startContentRetrieval() // Request a preview of the item m_fileMetaDataToolTip->setPreview(QPixmap()); - if (m_enabledPlugins.isEmpty()) { - const KConfigGroup globalConfig(KGlobal::config(), "PreviewSettings"); - m_enabledPlugins = globalConfig.readEntry("Plugins", QStringList() - << "directorythumbnail" - << "imagethumbnail" - << "jpegthumbnail"); - } - KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << m_item, 256, 256, true, true, &m_enabledPlugins); + 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&)));