mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	citra-qt/command list: Do not recreate a widget after each selection
Recreating / replacing a widget is slow since it triggers a layout pass.
This commit is contained in:
		
							parent
							
								
									e663751f8b
								
							
						
					
					
						commit
						b335cce22e
					
				
					 1 changed files with 10 additions and 10 deletions
				
			
		|  | @ -262,7 +262,7 @@ void GPUCommandListWidget::OnCommandDoubleClicked(const QModelIndex& index) { | |||
| } | ||||
| 
 | ||||
| void GPUCommandListWidget::SetCommandInfo(const QModelIndex& index) { | ||||
|     QWidget* new_info_widget; | ||||
|     QWidget* new_info_widget = nullptr; | ||||
| 
 | ||||
|     const unsigned int command_id = list_widget->model()->data(index, GPUCommandListModel::CommandIdRole).toUInt(); | ||||
|     if (COMMAND_IN_RANGE(command_id, texture0) || | ||||
|  | @ -283,15 +283,16 @@ void GPUCommandListWidget::SetCommandInfo(const QModelIndex& index) { | |||
|         auto info = Pica::DebugUtils::TextureInfo::FromPicaRegister(config, format); | ||||
|         u8* src = Memory::GetPhysicalPointer(config.GetPhysicalAddress()); | ||||
|         new_info_widget = new TextureInfoWidget(src, info); | ||||
|     } else { | ||||
|         new_info_widget = new QWidget; | ||||
|     } | ||||
| 
 | ||||
|     widget()->layout()->removeWidget(command_info_widget); | ||||
|     if (command_info_widget) { | ||||
|         delete command_info_widget; | ||||
|         command_info_widget = nullptr; | ||||
|     } | ||||
|     if (new_info_widget) { | ||||
|         widget()->layout()->addWidget(new_info_widget); | ||||
|         command_info_widget = new_info_widget; | ||||
|     } | ||||
| } | ||||
| #undef COMMAND_IN_RANGE | ||||
| 
 | ||||
| GPUCommandListWidget::GPUCommandListWidget(QWidget* parent) : QDockWidget(tr("Pica Command List"), parent) { | ||||
|  | @ -328,7 +329,7 @@ GPUCommandListWidget::GPUCommandListWidget(QWidget* parent) : QDockWidget(tr("Pi | |||
| 
 | ||||
|     connect(copy_all, SIGNAL(clicked()), this, SLOT(CopyAllToClipboard())); | ||||
| 
 | ||||
|     command_info_widget = new QWidget; | ||||
|     command_info_widget = nullptr; | ||||
| 
 | ||||
|     QVBoxLayout* main_layout = new QVBoxLayout; | ||||
|     main_layout->addWidget(list_widget); | ||||
|  | @ -338,7 +339,6 @@ GPUCommandListWidget::GPUCommandListWidget(QWidget* parent) : QDockWidget(tr("Pi | |||
|         sub_layout->addWidget(copy_all); | ||||
|         main_layout->addLayout(sub_layout); | ||||
|     } | ||||
|     main_layout->addWidget(command_info_widget); | ||||
|     main_widget->setLayout(main_layout); | ||||
| 
 | ||||
|     setWidget(main_widget); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue