From fc3ed80d0de220a1aa9d2b459785d47beea5861b Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Tue, 25 Jun 2019 17:58:34 -0400 Subject: tooltip on images --- src/modinfodialogimages.cpp | 24 ++++++++++++++++++++++++ src/modinfodialogimages.h | 2 ++ 2 files changed, 26 insertions(+) (limited to 'src') diff --git a/src/modinfodialogimages.cpp b/src/modinfodialogimages.cpp index deaacd14..08fd5c5b 100644 --- a/src/modinfodialogimages.cpp +++ b/src/modinfodialogimages.cpp @@ -314,6 +314,20 @@ void ImagesTab::thumbnailsMouseEvent(QMouseEvent* e) select(fileAtPos(e->pos())); } +void ImagesTab::showTooltip(QHelpEvent* e) +{ + const auto* f = fileAtPos(e->pos()); + if (!f) { + QToolTip::hideText(); + e->ignore(); + return; + } + + QToolTip::showText( + e->globalPos(), QDir::toNativeSeparators(f->path), + ui->imagesThumbnails); +} + void ImagesTab::onExplore() { if (!m_selection) { @@ -412,6 +426,16 @@ void ImagesThumbnails::mousePressEvent(QMouseEvent* e) } } +bool ImagesThumbnails::event(QEvent* e) +{ + if (e->type() == QEvent::ToolTip) { + m_tab->showTooltip(static_cast(e)); + return true; + } + + return QWidget::event(e); +} + ScalableImage::ScalableImage(QString path) : m_path(std::move(path)), m_border(1) diff --git a/src/modinfodialogimages.h b/src/modinfodialogimages.h index d90f2bfd..bd404801 100644 --- a/src/modinfodialogimages.h +++ b/src/modinfodialogimages.h @@ -34,6 +34,7 @@ public: protected: void paintEvent(QPaintEvent* e) override; void mousePressEvent(QMouseEvent* e) override; + bool event(QEvent* e) override; private: ImagesTab* m_tab = nullptr; @@ -118,6 +119,7 @@ private: void scrollAreaResized(const QSize& s); void paintThumbnails(QPaintEvent* e); void thumbnailsMouseEvent(QMouseEvent* e); + void showTooltip(QHelpEvent* e); void onExplore(); void onFilterChanged(); -- cgit v1.3.1