]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/tooltips/tooltipmanager.cpp
Assure that the enabled plugins for previews are set for the Information Panel and...
[dolphin.git] / src / views / tooltips / tooltipmanager.cpp
index a2b717b91dd476874c761c6dcbc81793d8045c0d..fdf83d13d89d19783177af5e0a2f8082ee5cfb42 100644 (file)
 #include "tooltipmanager.h"
 
 #include "filemetadatatooltip.h"
+#include <KConfigGroup>
 #include <KIcon>
 #include <KIO/PreviewJob>
+#include <KSharedConfig>
 
 #include <QApplication>
 #include <QDesktopWidget>
@@ -43,8 +45,10 @@ ToolTipManager::ToolTipManager(QAbstractItemView* parent,
     m_fileMetaDataToolTip(0),
     m_toolTipRequested(false),
     m_metaDataRequested(false),
+    m_appliedWaitCursor(false),
     m_item(),
-    m_itemRect()
+    m_itemRect(),
+    m_enabledPlugins()
 {
     static FileMetaDataToolTip* sharedToolTip = 0;
     if (sharedToolTip == 0) {
@@ -94,7 +98,10 @@ ToolTipManager::~ToolTipManager()
 
 void ToolTipManager::hideToolTip()
 {
-    QApplication::restoreOverrideCursor();
+    if (m_appliedWaitCursor) {
+        QApplication::restoreOverrideCursor();
+        m_appliedWaitCursor = false;
+    }
 
     m_toolTipRequested = false;
     m_metaDataRequested = false;
@@ -164,7 +171,14 @@ void ToolTipManager::startContentRetrieval()
     // Request a preview of the item
     m_fileMetaDataToolTip->setPreview(QPixmap());
 
-    KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << m_item, 256, 256);
+    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);
 
     connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)),
             this, SLOT(setPreviewPix(const KFileItem&, const QPixmap&)));
@@ -219,14 +233,19 @@ void ToolTipManager::slotMetaDataRequestFinished()
 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;
     }