diff options
| author | Leo Treloar <[email protected]> | 2021-12-25 22:38:46 +1100 |
|---|---|---|
| committer | Leo Treloar <[email protected]> | 2021-12-28 11:48:23 +1100 |
| commit | 4b224516f4c646b81a1d7842bcedf1c8fbbfc15f (patch) | |
| tree | 0ae6fefe6fb47c0924f6ea9e731da9b12b16fa30 /src/views/dolphinview.cpp | |
| parent | e46e982dbd06d1fc44631e6b86a8b6107135306c (diff) | |
Add name-only tooltip and make logicalHeightHints a pair of qreal and bool
Diffstat (limited to 'src/views/dolphinview.cpp')
| -rw-r--r-- | src/views/dolphinview.cpp | 34 |
1 files changed, 32 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); + } + } +} |
