]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/tooltipmanager.cpp
Assure that when requesting the context menu for the column-view, that the correct...
[dolphin.git] / src / tooltipmanager.cpp
index 6af3bb8b603badc4194d2dbc510c92cbdf9381af..5bb1e1a32f75e5ccc71300aa711a2dd5ff5a5ed9 100644 (file)
 
 #include "dolphinmodel.h"
 #include "dolphinsortfilterproxymodel.h"
-#include "ktooltip.h"
-#include "kicon.h"
+
+#include <kformattedballoontipdelegate.h>
+#include <kicon.h>
+#include <ktooltip.h>
 
 #include <QTimer>
 
+K_GLOBAL_STATIC(KFormattedBalloonTipDelegate, g_delegate)
+
 ToolTipManager::ToolTipManager(QAbstractItemView* parent,
                                DolphinSortFilterProxyModel* model) :
     QObject(parent),
@@ -34,10 +38,9 @@ ToolTipManager::ToolTipManager(QAbstractItemView* parent,
     m_proxyModel(model),
     m_timer(0),
     m_item(),
-    m_pos(),
-    m_delegate()
+    m_pos()
 {
-    KToolTip::setToolTipDelegate(&m_delegate);
+    KToolTip::setToolTipDelegate(g_delegate);
 
     m_dolphinModel = static_cast<DolphinModel*>(m_proxyModel->sourceModel());
     connect(parent, SIGNAL(entered(const QModelIndex&)),
@@ -57,6 +60,11 @@ ToolTipManager::~ToolTipManager()
 {
 }
 
+void ToolTipManager::hideTip()
+{
+    hideToolTip();
+}
+
 bool ToolTipManager::eventFilter(QObject* watched, QEvent* event)
 {
     if ((watched == m_view->viewport()) && (event->type() == QEvent::Leave)) {
@@ -68,15 +76,19 @@ bool ToolTipManager::eventFilter(QObject* watched, QEvent* event)
 
 void ToolTipManager::requestToolTip(const QModelIndex& index)
 {
-    KToolTip::hideTip();
+    if (index.column() == DolphinModel::Name) {
+        KToolTip::hideTip();
 
-    const QRect rect = m_view->visualRect(index);
-    m_pos = m_view->viewport()->mapToGlobal(rect.bottomRight());
+        const QRect rect = m_view->visualRect(index);
+        m_pos = m_view->viewport()->mapToGlobal(rect.bottomRight());
 
-    const QModelIndex dirIndex = m_proxyModel->mapToSource(index);
-    m_item = m_dolphinModel->itemForIndex(dirIndex);
+        const QModelIndex dirIndex = m_proxyModel->mapToSource(index);
+        m_item = m_dolphinModel->itemForIndex(dirIndex);
 
-    m_timer->start(500);
+        m_timer->start(500);
+    } else {
+        hideToolTip();
+    }
 }
 
 void ToolTipManager::hideToolTip()