X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9d4250e10ada4e2410722951dbd406263b61041c..b8a4e0fac2820ec8fc442c2abeea700ae4947e01:/src/tooltipmanager.cpp diff --git a/src/tooltipmanager.cpp b/src/tooltipmanager.cpp index 6af3bb8b6..5bb1e1a32 100644 --- a/src/tooltipmanager.cpp +++ b/src/tooltipmanager.cpp @@ -21,11 +21,15 @@ #include "dolphinmodel.h" #include "dolphinsortfilterproxymodel.h" -#include "ktooltip.h" -#include "kicon.h" + +#include +#include +#include #include +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(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()