]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/tooltips/tooltipmanager.cpp
Merge branch 'Applications/18.08'
[dolphin.git] / src / views / tooltips / tooltipmanager.cpp
index 4c5825635504577bb44c63ffb0b57a29a2f066bb..bb2890138a99a952af19c8b076382d9d8714669f 100644 (file)
@@ -20,7 +20,7 @@
 #include "tooltipmanager.h"
 
 #include "dolphinfilemetadatawidget.h"
-#include <QIcon>
+
 #include <KIO/JobUiDelegate>
 #include <KIO/PreviewJob>
 #include <KJobWidgets>
@@ -28,6 +28,7 @@
 
 #include <QApplication>
 #include <QDesktopWidget>
+#include <QIcon>
 #include <QLayout>
 #include <QStyle>
 #include <QTimer>
 
 ToolTipManager::ToolTipManager(QWidget* parent) :
     QObject(parent),
-    m_showToolTipTimer(0),
-    m_contentRetrievalTimer(0),
-    m_transientParent(0),
-    m_fileMetaDataWidget(0),
-    m_tooltipWidget(new KToolTipWidget()),
+    m_showToolTipTimer(nullptr),
+    m_contentRetrievalTimer(nullptr),
+    m_transientParent(nullptr),
+    m_fileMetaDataWidget(nullptr),
     m_toolTipRequested(false),
     m_metaDataRequested(false),
     m_appliedWaitCursor(false),
@@ -106,7 +106,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()
@@ -127,7 +129,10 @@ void ToolTipManager::startContentRetrieval()
     // Request a preview of the item
     m_fileMetaDataWidget->setPreview(QPixmap());
 
-    KIO::PreviewJob* job = new KIO::PreviewJob(KFileItemList() << m_item, QSize(256, 256));
+    QStringList plugins = KIO::PreviewJob::availablePlugins();
+    KIO::PreviewJob* job = new KIO::PreviewJob(KFileItemList() << m_item,
+                                               QSize(256, 256),
+                                               &plugins);
     job->setIgnoreMaximumSize(m_item.isLocalFile());
     if (job->uiDelegate()) {
         KJobWidgets::setWindow(job, qApp->activeWindow());
@@ -201,6 +206,9 @@ void ToolTipManager::showToolTip()
 
     // Adjust the size to get a proper sizeHint()
     m_fileMetaDataWidget->adjustSize();
+    if (!m_tooltipWidget) {
+        m_tooltipWidget.reset(new KToolTipWidget());
+    }
     m_tooltipWidget->showBelow(m_itemRect, m_fileMetaDataWidget, m_transientParent);
     m_toolTipRequested = false;
 }