Просмотр исходного кода

citra-qt: Add support for copying the command list contents to clipboard.

Tony Wasserka 11 лет назад
Родитель
Сommit
7fd03750bd
2 измененных файлов с 31 добавлено и 1 удалено
  1. 29 1
      src/citra_qt/debugger/graphics_cmdlists.cpp
  2. 2 0
      src/citra_qt/debugger/graphics_cmdlists.h

+ 29 - 1
src/citra_qt/debugger/graphics_cmdlists.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 // Refer to the license.txt file included.
 
 
+#include <QApplication>
+#include <QClipboard>
 #include <QLabel>
 #include <QLabel>
 #include <QListView>
 #include <QListView>
 #include <QMainWindow>
 #include <QMainWindow>
@@ -304,16 +306,24 @@ GPUCommandListWidget::GPUCommandListWidget(QWidget* parent) : QDockWidget(tr("Pi
             this, SLOT(OnCommandDoubleClicked(const QModelIndex&)));
             this, SLOT(OnCommandDoubleClicked(const QModelIndex&)));
 
 
     toggle_tracing = new QPushButton(tr("Start Tracing"));
     toggle_tracing = new QPushButton(tr("Start Tracing"));
+    QPushButton* copy_all = new QPushButton(tr("Copy All"));
 
 
     connect(toggle_tracing, SIGNAL(clicked()), this, SLOT(OnToggleTracing()));
     connect(toggle_tracing, SIGNAL(clicked()), this, SLOT(OnToggleTracing()));
     connect(this, SIGNAL(TracingFinished(const Pica::DebugUtils::PicaTrace&)),
     connect(this, SIGNAL(TracingFinished(const Pica::DebugUtils::PicaTrace&)),
             model, SLOT(OnPicaTraceFinished(const Pica::DebugUtils::PicaTrace&)));
             model, SLOT(OnPicaTraceFinished(const Pica::DebugUtils::PicaTrace&)));
 
 
+    connect(copy_all, SIGNAL(clicked()), this, SLOT(CopyAllToClipboard()));
+
     command_info_widget = new QWidget;
     command_info_widget = new QWidget;
 
 
     QVBoxLayout* main_layout = new QVBoxLayout;
     QVBoxLayout* main_layout = new QVBoxLayout;
     main_layout->addWidget(list_widget);
     main_layout->addWidget(list_widget);
-    main_layout->addWidget(toggle_tracing);
+    {
+        QHBoxLayout* sub_layout = new QHBoxLayout;
+        sub_layout->addWidget(toggle_tracing);
+        sub_layout->addWidget(copy_all);
+        main_layout->addLayout(sub_layout);
+    }
     main_layout->addWidget(command_info_widget);
     main_layout->addWidget(command_info_widget);
     main_widget->setLayout(main_layout);
     main_widget->setLayout(main_layout);
 
 
@@ -330,3 +340,21 @@ void GPUCommandListWidget::OnToggleTracing() {
         toggle_tracing->setText(tr("Start Tracing"));
         toggle_tracing->setText(tr("Start Tracing"));
     }
     }
 }
 }
+
+void GPUCommandListWidget::CopyAllToClipboard() {
+    QClipboard* clipboard = QApplication::clipboard();
+    QString text;
+
+    QAbstractItemModel* model = (QAbstractListModel*)list_widget->model();
+
+    for (int row = 0; row < model->rowCount({}); ++row) {
+        for (int col = 0; col < model->columnCount({}); ++col) {
+            QModelIndex index = model->index(row, col);
+            text += model->data(index).value<QString>();
+            text += '\t';
+        }
+        text += '\n';
+    }
+
+    clipboard->setText(text);
+}

+ 2 - 0
src/citra_qt/debugger/graphics_cmdlists.h

@@ -49,6 +49,8 @@ public slots:
 
 
     void SetCommandInfo(const QModelIndex&);
     void SetCommandInfo(const QModelIndex&);
 
 
+    void CopyAllToClipboard();
+
 signals:
 signals:
     void TracingFinished(const Pica::DebugUtils::PicaTrace&);
     void TracingFinished(const Pica::DebugUtils::PicaTrace&);