From 760bfdcb40915fb9dff0577f0e4186680ab1c169 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 8 Mar 2023 13:59:53 +0000 Subject: [PATCH] Disable find-as-you-type keyboard searches in buffer viewer * This will cause the model to evaluate every data item to search it, which is the exact thing we're trying to avoid with lazy item views. --- qrenderdoc/Widgets/Extended/RDTableView.cpp | 6 ++++++ qrenderdoc/Widgets/Extended/RDTableView.h | 6 ++++++ qrenderdoc/Windows/BufferViewer.cpp | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/qrenderdoc/Widgets/Extended/RDTableView.cpp b/qrenderdoc/Widgets/Extended/RDTableView.cpp index 744bc9d32..123f97734 100644 --- a/qrenderdoc/Widgets/Extended/RDTableView.cpp +++ b/qrenderdoc/Widgets/Extended/RDTableView.cpp @@ -221,6 +221,12 @@ void RDTableView::keyPressEvent(QKeyEvent *e) return QTableView::keyPressEvent(e); } +void RDTableView::keyboardSearch(const QString &search) +{ + if(m_allowKeyboardSearches) + return QTableView::keyboardSearch(search); +} + void RDTableView::paintEvent(QPaintEvent *e) { const int gridWidth = showGrid() ? 1 : 0; diff --git a/qrenderdoc/Widgets/Extended/RDTableView.h b/qrenderdoc/Widgets/Extended/RDTableView.h index 616323b14..cc510e011 100644 --- a/qrenderdoc/Widgets/Extended/RDTableView.h +++ b/qrenderdoc/Widgets/Extended/RDTableView.h @@ -45,6 +45,10 @@ public: void setColumnWidths(const QList &widths); void resizeColumnsToContents(); + void setAllowKeyboardSearches(bool allow) { m_allowKeyboardSearches = allow; } + bool allowKeyboardSearches() const { return m_allowKeyboardSearches; } + void keyboardSearch(const QString &search) override; + void setCustomHeaderSizing(bool sizing) { m_horizontalHeader->setCustomSizing(sizing); } void setItemDelegate(QAbstractItemDelegate *delegate); QAbstractItemDelegate *itemDelegate() const; @@ -74,6 +78,8 @@ private: int m_pinnedColumns = 0; int m_columnGroupRole = 0; + bool m_allowKeyboardSearches = true; + RDHeaderView *m_horizontalHeader; QModelIndex m_currentHoverIndex; diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index 57fc96568..c6e0e4640 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -2221,6 +2221,10 @@ BufferViewer::BufferViewer(ICaptureContext &ctx, bool meshview, QWidget *parent) ui->vsoutData->setCustomHeaderSizing(true); ui->gsoutData->setCustomHeaderSizing(true); + ui->vsinData->setAllowKeyboardSearches(false); + ui->vsoutData->setAllowKeyboardSearches(false); + ui->gsoutData->setAllowKeyboardSearches(false); + QObject::connect(ui->fixedVars, &RDTreeWidget::customContextMenuRequested, this, &BufferViewer::fixedVars_contextMenu);