diff options
| author | 2015-05-27 16:32:02 +0200 | |
|---|---|---|
| committer | 2015-07-15 17:51:59 +0200 | |
| commit | 7fd03750bd42419d2b66b4a92897e6bbd21e7ac2 (patch) | |
| tree | a72fe121a92b59fa3ac57cb29c8affeaf1119c3f /src/citra_qt/debugger/graphics_cmdlists.cpp | |
| parent | Merge pull request #928 from JSFernandes/master (diff) | |
| download | yuzu-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.cpp | 30 |
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 | |||
| 344 | void 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 | } | ||