summaryrefslogtreecommitdiff
path: root/src/citra_qt/debugger/graphics_cmdlists.cpp
diff options
context:
space:
mode:
authorGravatar Tony Wasserka2015-05-27 16:32:02 +0200
committerGravatar Tony Wasserka2015-07-15 17:51:59 +0200
commit7fd03750bd42419d2b66b4a92897e6bbd21e7ac2 (patch)
treea72fe121a92b59fa3ac57cb29c8affeaf1119c3f /src/citra_qt/debugger/graphics_cmdlists.cpp
parentMerge pull request #928 from JSFernandes/master (diff)
downloadyuzu-7fd03750bd42419d2b66b4a92897e6bbd21e7ac2.tar.gz
yuzu-7fd03750bd42419d2b66b4a92897e6bbd21e7ac2.tar.xz
yuzu-7fd03750bd42419d2b66b4a92897e6bbd21e7ac2.zip
citra-qt: Add support for copying the command list contents to clipboard.
Diffstat (limited to 'src/citra_qt/debugger/graphics_cmdlists.cpp')
-rw-r--r--src/citra_qt/debugger/graphics_cmdlists.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/citra_qt/debugger/graphics_cmdlists.cpp b/src/citra_qt/debugger/graphics_cmdlists.cpp
index cabf5fe07..2a5b231ba 100644
--- a/src/citra_qt/debugger/graphics_cmdlists.cpp
+++ b/src/citra_qt/debugger/graphics_cmdlists.cpp
@@ -2,6 +2,8 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <QApplication>
6#include <QClipboard>
5#include <QLabel> 7#include <QLabel>
6#include <QListView> 8#include <QListView>
7#include <QMainWindow> 9#include <QMainWindow>
@@ -304,16 +306,24 @@ GPUCommandListWidget::GPUCommandListWidget(QWidget* parent) : QDockWidget(tr("Pi
304 this, SLOT(OnCommandDoubleClicked(const QModelIndex&))); 306 this, SLOT(OnCommandDoubleClicked(const QModelIndex&)));
305 307
306 toggle_tracing = new QPushButton(tr("Start Tracing")); 308 toggle_tracing = new QPushButton(tr("Start Tracing"));
309 QPushButton* copy_all = new QPushButton(tr("Copy All"));
307 310
308 connect(toggle_tracing, SIGNAL(clicked()), this, SLOT(OnToggleTracing())); 311 connect(toggle_tracing, SIGNAL(clicked()), this, SLOT(OnToggleTracing()));
309 connect(this, SIGNAL(TracingFinished(const Pica::DebugUtils::PicaTrace&)), 312 connect(this, SIGNAL(TracingFinished(const Pica::DebugUtils::PicaTrace&)),
310 model, SLOT(OnPicaTraceFinished(const Pica::DebugUtils::PicaTrace&))); 313 model, SLOT(OnPicaTraceFinished(const Pica::DebugUtils::PicaTrace&)));
311 314
315 connect(copy_all, SIGNAL(clicked()), this, SLOT(CopyAllToClipboard()));
316
312 command_info_widget = new QWidget; 317 command_info_widget = new QWidget;
313 318
314 QVBoxLayout* main_layout = new QVBoxLayout; 319 QVBoxLayout* main_layout = new QVBoxLayout;
315 main_layout->addWidget(list_widget); 320 main_layout->addWidget(list_widget);
316 main_layout->addWidget(toggle_tracing); 321 {
322 QHBoxLayout* sub_layout = new QHBoxLayout;
323 sub_layout->addWidget(toggle_tracing);
324 sub_layout->addWidget(copy_all);
325 main_layout->addLayout(sub_layout);
326 }
317 main_layout->addWidget(command_info_widget); 327 main_layout->addWidget(command_info_widget);
318 main_widget->setLayout(main_layout); 328 main_widget->setLayout(main_layout);
319 329
@@ -330,3 +340,21 @@ void GPUCommandListWidget::OnToggleTracing() {
330 toggle_tracing->setText(tr("Start Tracing")); 340 toggle_tracing->setText(tr("Start Tracing"));
331 } 341 }
332} 342}
343
344void GPUCommandListWidget::CopyAllToClipboard() {
345 QClipboard* clipboard = QApplication::clipboard();
346 QString text;
347
348 QAbstractItemModel* model = (QAbstractListModel*)list_widget->model();
349
350 for (int row = 0; row < model->rowCount({}); ++row) {
351 for (int col = 0; col < model->columnCount({}); ++col) {
352 QModelIndex index = model->index(row, col);
353 text += model->data(index).value<QString>();
354 text += '\t';
355 }
356 text += '\n';
357 }
358
359 clipboard->setText(text);
360}