]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/tooltips/tooltipmanager.h
Fix visual artefacts for tooltips, if compositing has been disabled. Thanks to Maciej...
[dolphin.git] / src / tooltips / tooltipmanager.h
index e9b5cac6e4072116ba57e1c0a03ff4d2adaae558..24e72f28be3ed24c404f4a984c967e3bb934ed0e 100644 (file)
 
 class DolphinModel;
 class DolphinSortFilterProxyModel;
+class FileMetaDataToolTip;
 class QAbstractItemView;
 class QModelIndex;
 class QTimer;
-class KToolTipItem;
 
 /**
  * @brief Manages the tooltips for an item view.
@@ -66,17 +66,36 @@ private slots:
     void startPreviewJob();
     void setPreviewPix(const KFileItem& item, const QPixmap& pix);
     void previewFailed();
-
+    void showToolTip();
+    
 private:
-    void showToolTip(const QIcon& icon, const QString& text);
+    void showToolTipDelayed(const QPixmap& pixmap);
 
+private:
     QAbstractItemView* m_view;
     DolphinModel* m_dolphinModel;
     DolphinSortFilterProxyModel* m_proxyModel;
 
-    QTimer* m_timer;
-    QTimer* m_previewTimer;
+    /// Timeout from requesting a tooltip until the tooltip is shown
+    QTimer* m_prepareToolTipTimer;
+    
+    /// Timeout from requesting a tooltip until starting a job to
+    /// create a preview pixmap. The preview job is started before
+    /// m_prepareToolTipTimer has been exceeded, to have the preview
+    /// pixmap ideally before the tooltip will be shown.
+    QTimer* m_startPreviewJobTimer;
+    
+    /// Don't show the tooltip, before the preview has been received. The
+    /// time indicates the interval, when the check for a received
+    /// is done.
     QTimer* m_waitOnPreviewTimer;
+    
+    /// The tooltip is shown slightly delayed to prevent a flickering
+    /// because of layouting the content.
+    QTimer* m_showToolTipDelayedTimer;
+
+    FileMetaDataToolTip* m_fileMetaDataToolTip;
+
     KFileItem m_item;
     QRect m_itemRect;
     bool m_generatingPreview;