From 669589b3f8fa5255b10e7c4ccd8237984687da3c Mon Sep 17 00:00:00 2001 From: Baldur Karlsson Date: Mon, 12 Mar 2018 14:03:42 +0000 Subject: [PATCH] Preserve mesh tables horiz scroll when picking vertices or syncing views --- qrenderdoc/Windows/BufferViewer.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index 11aa8b62b..c9c113a16 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -2615,9 +2615,13 @@ void BufferViewer::render_clicked(QMouseEvent *e) void BufferViewer::ScrollToRow(BufferItemModel *model, int row) { + int hs = model->view->horizontalScrollBar()->value(); + model->view->scrollTo(model->index(row, 0), QAbstractItemView::PositionAtTop); model->view->clearSelection(); model->view->selectRow(row); + + model->view->horizontalScrollBar()->setValue(hs); } void BufferViewer::ViewBuffer(uint64_t byteOffset, uint64_t byteSize, ResourceId id, @@ -3283,6 +3287,11 @@ void BufferViewer::SyncViews(RDTableView *primary, bool selection, bool scroll) RDTableView *views[] = {ui->vsinData, ui->vsoutData, ui->gsoutData}; + int horizScrolls[ARRAY_COUNT(views)] = {0}; + + for(size_t i = 0; i < ARRAY_COUNT(views); i++) + horizScrolls[i] = views[i]->horizontalScrollBar()->value(); + if(primary == NULL) { for(RDTableView *table : views) @@ -3313,6 +3322,9 @@ void BufferViewer::SyncViews(RDTableView *primary, bool selection, bool scroll) if(scroll) table->verticalScrollBar()->setValue(primary->verticalScrollBar()->value()); } + + for(size_t i = 0; i < ARRAY_COUNT(views); i++) + views[i]->horizontalScrollBar()->setValue(horizScrolls[i]); } void BufferViewer::UpdateHighlightVerts()