diff options
Diffstat (limited to 'src/views')
| -rw-r--r-- | src/views/dolphinview.cpp | 34 | ||||
| -rw-r--r-- | src/views/dolphinview.h | 2 |
2 files changed, 34 insertions, 2 deletions
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index bb537b982..573505e76 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -59,6 +59,7 @@ #include <QScrollBar> #include <QSize> #include <QTimer> +#include <QToolTip> #include <QVBoxLayout> DolphinView::DolphinView(const QUrl& url, QWidget* parent) : @@ -918,6 +919,11 @@ bool DolphinView::eventFilter(QObject* watched, QEvent* event) if (watched == m_view) { m_dragging = false; } + break; + + case QEvent::ToolTip: + tryShowNameToolTip(event); + default: break; } @@ -1637,13 +1643,15 @@ void DolphinView::updateViewState() void DolphinView::hideToolTip(const ToolTipManager::HideBehavior behavior) { -#ifdef HAVE_BALOO if (GeneralSettings::showToolTips()) { +#ifdef HAVE_BALOO m_toolTipManager->hideToolTip(behavior); - } #else Q_UNUSED(behavior) #endif + } else if (m_mode == DolphinView::IconsView) { + QToolTip::hideText(); + } } void DolphinView::slotTwoClicksRenamingTimerTimeout() @@ -2158,3 +2166,25 @@ void DolphinView::updatePlaceholderLabel() m_placeholderLabel->setVisible(true); } + +void DolphinView::tryShowNameToolTip(QEvent* event) +{ + if (!GeneralSettings::showToolTips() && m_mode == DolphinView::IconsView) { + QHelpEvent *hoverEvent = reinterpret_cast<QHelpEvent *>(event); + const int index = m_view->itemAt(hoverEvent->pos()); + + if (index == -1) { + return; + } + + // Check whether the filename has been elided + const bool isElided = m_view->isElided(index); + + if(isElided) { + const KFileItem item = m_model->fileItem(index); + const QString text = item.text(); + const QPoint pos = mapToGlobal(hoverEvent->pos()); + QToolTip::showText(pos, text); + } + } +} diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 0f288f942..8566bc100 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -862,6 +862,8 @@ private: void updatePlaceholderLabel(); + void tryShowNameToolTip(QEvent* event); + private: void updatePalette(); void showLoadingPlaceholder(); |
