From c1beb2ce2041c078674fb0cacafbccb4196cc3bc Mon Sep 17 00:00:00 2001
From: Yuri Kunde Schlesner <yuriks@yuriks.net>
Date: Wed, 19 Aug 2015 05:51:12 -0300
Subject: [PATCH] Shader Debugger: Fix freeze when double-clicking shader
 disassembly

---
 src/citra_qt/debugger/graphics_cmdlists.cpp      |  2 +-
 src/citra_qt/debugger/graphics_vertex_shader.cpp | 10 +---------
 src/citra_qt/debugger/graphics_vertex_shader.h   |  6 ++----
 3 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/src/citra_qt/debugger/graphics_cmdlists.cpp b/src/citra_qt/debugger/graphics_cmdlists.cpp
index 025434687..fa32d24b5 100644
--- a/src/citra_qt/debugger/graphics_cmdlists.cpp
+++ b/src/citra_qt/debugger/graphics_cmdlists.cpp
@@ -359,7 +359,7 @@ void GPUCommandListWidget::CopyAllToClipboard() {
     QClipboard* clipboard = QApplication::clipboard();
     QString text;
 
-    QAbstractItemModel* model = static_cast<QAbstractListModel*>(list_widget->model());
+    QAbstractItemModel* model = static_cast<QAbstractItemModel*>(list_widget->model());
 
     for (int row = 0; row < model->rowCount({}); ++row) {
         for (int col = 0; col < model->columnCount({}); ++col) {
diff --git a/src/citra_qt/debugger/graphics_vertex_shader.cpp b/src/citra_qt/debugger/graphics_vertex_shader.cpp
index 32c48cb6e..a94538874 100644
--- a/src/citra_qt/debugger/graphics_vertex_shader.cpp
+++ b/src/citra_qt/debugger/graphics_vertex_shader.cpp
@@ -27,18 +27,10 @@ using nihstro::Instruction;
 using nihstro::SourceRegister;
 using nihstro::SwizzlePattern;
 
-GraphicsVertexShaderModel::GraphicsVertexShaderModel(GraphicsVertexShaderWidget* parent): QAbstractItemModel(parent), par(parent) {
+GraphicsVertexShaderModel::GraphicsVertexShaderModel(GraphicsVertexShaderWidget* parent): QAbstractTableModel(parent), par(parent) {
 
 }
 
-QModelIndex GraphicsVertexShaderModel::index(int row, int column, const QModelIndex& parent) const {
-    return createIndex(row, column);
-}
-
-QModelIndex GraphicsVertexShaderModel::parent(const QModelIndex& child) const {
-    return QModelIndex();
-}
-
 int GraphicsVertexShaderModel::columnCount(const QModelIndex& parent) const {
     return 3;
 }
diff --git a/src/citra_qt/debugger/graphics_vertex_shader.h b/src/citra_qt/debugger/graphics_vertex_shader.h
index 1b3f1f7ec..d4e93103f 100644
--- a/src/citra_qt/debugger/graphics_vertex_shader.h
+++ b/src/citra_qt/debugger/graphics_vertex_shader.h
@@ -4,7 +4,7 @@
 
 #pragma once
 
-#include <QAbstractListModel>
+#include <QAbstractTableModel>
 
 #include "graphics_breakpoint_observer.h"
 
@@ -17,14 +17,12 @@ class QSpinBox;
 
 class GraphicsVertexShaderWidget;
 
-class GraphicsVertexShaderModel : public QAbstractItemModel {
+class GraphicsVertexShaderModel : public QAbstractTableModel {
     Q_OBJECT
 
 public:
     GraphicsVertexShaderModel(GraphicsVertexShaderWidget* parent);
 
-    QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
-    QModelIndex parent(const QModelIndex& child) const override;
     int columnCount(const QModelIndex& parent = QModelIndex()) const override;
     int rowCount(const QModelIndex& parent = QModelIndex()) const override;
     QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;