diff --git a/qrenderdoc/Widgets/Extended/RDHeaderView.cpp b/qrenderdoc/Widgets/Extended/RDHeaderView.cpp index 1809edaa0..517bdb51d 100644 --- a/qrenderdoc/Widgets/Extended/RDHeaderView.cpp +++ b/qrenderdoc/Widgets/Extended/RDHeaderView.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include "Code/QRDUtils.h" @@ -864,6 +865,28 @@ void RDHeaderView::paintEvent(QPaintEvent *e) } } +bool RDHeaderView::viewportEvent(QEvent *e) +{ + if(e->type() == QEvent::ToolTip) + { + QHelpEvent *h = (QHelpEvent *)e; + int section = logicalIndexAt(h->pos()); + if(section >= 0) + { + QAbstractItemModel *m = this->model(); + + QVariant tooltip = m->headerData(section, orientation(), Qt::ToolTipRole); + if(tooltip.isValid()) + { + QToolTip::showText(h->globalPos(), tooltip.toString(), this); + return true; + } + } + } + + return QHeaderView::viewportEvent(e); +} + void RDHeaderView::paintSection(QPainter *painter, const QRect &rect, int section) const { if(!m_customSizing) diff --git a/qrenderdoc/Widgets/Extended/RDHeaderView.h b/qrenderdoc/Widgets/Extended/RDHeaderView.h index 09f1324a6..af7b047f0 100644 --- a/qrenderdoc/Widgets/Extended/RDHeaderView.h +++ b/qrenderdoc/Widgets/Extended/RDHeaderView.h @@ -79,6 +79,7 @@ protected: void mouseMoveEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; void paintEvent(QPaintEvent *e) override; + bool viewportEvent(QEvent *e) override; void paintSection(QPainter *painter, const QRect &rect, int section) const override; void currentChanged(const QModelIndex ¤t, const QModelIndex &old) override;