From cd06f5cedbd08e9ca9e89246c249ad7f341a7236 Mon Sep 17 00:00:00 2001 From: Lectem Date: Sat, 25 Jul 2015 21:59:17 +0200 Subject: citra-qt/command list: monospace font on windows --- src/citra_qt/debugger/graphics_cmdlists.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/citra_qt/debugger') diff --git a/src/citra_qt/debugger/graphics_cmdlists.cpp b/src/citra_qt/debugger/graphics_cmdlists.cpp index 7ac3ea542..9034b120e 100644 --- a/src/citra_qt/debugger/graphics_cmdlists.cpp +++ b/src/citra_qt/debugger/graphics_cmdlists.cpp @@ -300,7 +300,9 @@ GPUCommandListWidget::GPUCommandListWidget(QWidget* parent) : QDockWidget(tr("Pi list_widget = new QTreeView; list_widget->setModel(model); - list_widget->setFont(QFont("monospace")); + QFont font("monospace"); + font.setStyleHint(QFont::Monospace); // Automatic fallback to a monospace font on on platforms without a font called "monospace" + list_widget->setFont(font); list_widget->setRootIsDecorated(false); list_widget->setUniformRowHeights(true); -- cgit v1.2.3 From e663751f8b6cc6fd469d3974b3e68e434ebee9db Mon Sep 17 00:00:00 2001 From: Lectem Date: Sat, 25 Jul 2015 22:00:40 +0200 Subject: citra-qt/command list: Add mask column --- src/citra_qt/debugger/graphics_cmdlists.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/citra_qt/debugger') diff --git a/src/citra_qt/debugger/graphics_cmdlists.cpp b/src/citra_qt/debugger/graphics_cmdlists.cpp index 9034b120e..0427ebc95 100644 --- a/src/citra_qt/debugger/graphics_cmdlists.cpp +++ b/src/citra_qt/debugger/graphics_cmdlists.cpp @@ -175,29 +175,29 @@ int GPUCommandListModel::rowCount(const QModelIndex& parent) const { } int GPUCommandListModel::columnCount(const QModelIndex& parent) const { - return 3; + return 4; } QVariant GPUCommandListModel::data(const QModelIndex& index, int role) const { if (!index.isValid()) return QVariant(); - const auto& writes = pica_trace.writes; - const Pica::CommandProcessor::CommandHeader cmd{writes[index.row()].Id()}; - const u32 val{writes[index.row()].Value()}; + const auto& write = pica_trace.writes[index.row()]; if (role == Qt::DisplayRole) { QString content; switch ( index.column() ) { case 0: - return QString::fromLatin1(Pica::Regs::GetCommandName(cmd.cmd_id).c_str()); + return QString::fromLatin1(Pica::Regs::GetCommandName(write.cmd_id).c_str()); case 1: - return QString("%1").arg(cmd.cmd_id, 3, 16, QLatin1Char('0')); + return QString("%1").arg(write.cmd_id, 3, 16, QLatin1Char('0')); case 2: - return QString("%1").arg(val, 8, 16, QLatin1Char('0')); + return QString("%1").arg(write.mask, 4, 2, QLatin1Char('0')); + case 3: + return QString("%1").arg(write.value, 8, 16, QLatin1Char('0')); } } else if (role == CommandIdRole) { - return QVariant::fromValue(cmd.cmd_id.Value()); + return QVariant::fromValue(write.cmd_id); } return QVariant(); @@ -213,6 +213,8 @@ QVariant GPUCommandListModel::headerData(int section, Qt::Orientation orientatio case 1: return tr("Register"); case 2: + return tr("Mask"); + case 3: return tr("New Value"); } -- cgit v1.2.3 From b335cce22ee803a1a467425a0cc689e2afbaf878 Mon Sep 17 00:00:00 2001 From: Lectem Date: Sun, 26 Jul 2015 15:03:54 +0200 Subject: citra-qt/command list: Do not recreate a widget after each selection Recreating / replacing a widget is slow since it triggers a layout pass. --- src/citra_qt/debugger/graphics_cmdlists.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src/citra_qt/debugger') diff --git a/src/citra_qt/debugger/graphics_cmdlists.cpp b/src/citra_qt/debugger/graphics_cmdlists.cpp index 0427ebc95..e51a4480f 100644 --- a/src/citra_qt/debugger/graphics_cmdlists.cpp +++ b/src/citra_qt/debugger/graphics_cmdlists.cpp @@ -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,14 +283,15 @@ 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); - delete command_info_widget; - widget()->layout()->addWidget(new_info_widget); - command_info_widget = new_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 @@ -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); -- cgit v1.2.3