X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/caf49dafa557caa9bd985702a240284348c82b40..3abc4cfcd49df45c856e1b5f01da8de8f970ccb2:/src/views/dolphinview.cpp diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index bb537b982..0cd38c9eb 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -59,6 +59,7 @@ #include #include #include +#include #include 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(event); + const std::optional index = m_view->itemAt(hoverEvent->pos()); + + if (!index.has_value()) { + return; + } + + // Check whether the filename has been elided + const bool isElided = m_view->isElided(index.value()); + + if(isElided) { + const KFileItem item = m_model->fileItem(index.value()); + const QString text = item.text(); + const QPoint pos = mapToGlobal(hoverEvent->pos()); + QToolTip::showText(pos, text); + } + } +}