From f12b8b5ee176c5d1749d1f3e7b37b47931fc6cf9 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 15 May 2018 11:27:12 +0100 Subject: [PATCH] Check resource name cache ID to avoid unnecessary model resets * Prevents annoying focus loss when selecting resources when no name has actually changed --- qrenderdoc/Windows/ResourceInspector.cpp | 13 +++++++++++-- qrenderdoc/Windows/ResourceInspector.h | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Windows/ResourceInspector.cpp b/qrenderdoc/Windows/ResourceInspector.cpp index 563b7d589..f8c9814bf 100644 --- a/qrenderdoc/Windows/ResourceInspector.cpp +++ b/qrenderdoc/Windows/ResourceInspector.cpp @@ -199,7 +199,11 @@ void ResourceInspector::Inspect(ResourceId id) m_Entries.clear(); - m_ResourceModel->reset(); + if(m_ResourceCacheID != m_Ctx.ResourceNameCacheID()) + { + m_ResourceCacheID = m_Ctx.ResourceNameCacheID(); + m_ResourceModel->reset(); + } if(m_Ctx.HasResourceCustomName(id)) ui->resetName->show(); @@ -316,6 +320,7 @@ void ResourceInspector::OnCaptureLoaded() ui->renameResource->setEnabled(true); m_ResourceModel->reset(); + m_ResourceCacheID = m_Ctx.ResourceNameCacheID(); } void ResourceInspector::OnCaptureClosed() @@ -340,7 +345,11 @@ void ResourceInspector::OnEventChanged(uint32_t eventId) { Inspect(m_Resource); - m_ResourceModel->reset(); + if(m_ResourceCacheID != m_Ctx.ResourceNameCacheID()) + { + m_ResourceCacheID = m_Ctx.ResourceNameCacheID(); + m_ResourceModel->reset(); + } } void ResourceInspector::on_renameResource_clicked() diff --git a/qrenderdoc/Windows/ResourceInspector.h b/qrenderdoc/Windows/ResourceInspector.h index a8cd93063..f82c67958 100644 --- a/qrenderdoc/Windows/ResourceInspector.h +++ b/qrenderdoc/Windows/ResourceInspector.h @@ -84,5 +84,6 @@ private: ResourceId m_Resource; ResourceListItemModel *m_ResourceModel; + int m_ResourceCacheID = -1; QSortFilterProxyModel *m_FilterModel; };