From cac4c7f100e47af76748f8666f10502d6ffc0b50 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 10 Nov 2017 13:17:11 +0000 Subject: [PATCH] Locate RDTableView even if it's a parent in slot functions * These slots are called on the item selection view, so the RDTableView is actually the sender's parent. --- qrenderdoc/Windows/BufferViewer.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index 287afe34b..3ab8cf52b 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -2815,13 +2815,21 @@ void BufferViewer::CalcColumnWidth(int maxNumRows) void BufferViewer::data_selected(const QItemSelection &selected, const QItemSelection &deselected) { - m_CurView = qobject_cast(QObject::sender()); + QObject *sender = QObject::sender(); + RDTableView *view = qobject_cast(sender); + if(view == NULL) + view = qobject_cast(sender->parent()); + + if(view == NULL) + return; + + m_CurView = view; if(selected.count() > 0) { UpdateHighlightVerts(); - SyncViews(qobject_cast(QObject::sender()), true, false); + SyncViews(view, true, false); INVOKE_MEMFN(RT_UpdateAndDisplay); } @@ -2829,7 +2837,15 @@ void BufferViewer::data_selected(const QItemSelection &selected, const QItemSele void BufferViewer::data_scrolled(int scrollvalue) { - SyncViews(qobject_cast(QObject::sender()), false, true); + QObject *sender = QObject::sender(); + RDTableView *view = qobject_cast(sender); + if(view == NULL) + view = qobject_cast(sender->parent()); + + if(view == NULL) + return; + + SyncViews(view, false, true); } void BufferViewer::camGuess_changed(double value)