┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/dolphinview.cpp
diff options
context:
space:
mode:
authorLeo Treloar <[email protected]>2021-12-25 22:38:46 +1100
committerLeo Treloar <[email protected]>2021-12-28 11:48:23 +1100
commit4b224516f4c646b81a1d7842bcedf1c8fbbfc15f (patch)
tree0ae6fefe6fb47c0924f6ea9e731da9b12b16fa30 /src/views/dolphinview.cpp
parente46e982dbd06d1fc44631e6b86a8b6107135306c (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.cpp34
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);
+ }
+ }
+}