diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/modinfodialogimages.cpp | 24 | ||||
| -rw-r--r-- | src/modinfodialogimages.h | 2 |
2 files changed, 26 insertions, 0 deletions
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<QHelpEvent*>(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(); |
