From d670b7e52261c6cb4b53fb7f457f8ab4614ebc30 Mon Sep 17 00:00:00 2001
From: archshift <admin@archshift.com>
Date: Sat, 10 Jan 2015 22:39:00 -0800
Subject: [PATCH] Qt Callstack: Clear the callstack every time it's updated

This fixes the issue that old members of the callstack would stick around, even when the callstack shortened.
---
 src/citra_qt/debugger/callstack.cpp | 11 +++++++++++
 src/citra_qt/debugger/callstack.h   |  3 +++
 2 files changed, 14 insertions(+)

diff --git a/src/citra_qt/debugger/callstack.cpp b/src/citra_qt/debugger/callstack.cpp
index 025a5896b2..9bb22ca2e3 100644
--- a/src/citra_qt/debugger/callstack.cpp
+++ b/src/citra_qt/debugger/callstack.cpp
@@ -33,6 +33,8 @@ void CallstackWidget::OnDebugModeEntered()
     u32 sp = app_core->GetReg(13); //stack pointer
     u32 ret_addr, call_addr, func_addr;
 
+    Clear();
+
     int counter = 0;
     for (u32 addr = 0x10000000; addr >= sp; addr -= 4)
     {
@@ -76,3 +78,12 @@ void CallstackWidget::OnDebugModeLeft()
 {
 
 }
+
+void CallstackWidget::Clear()
+{
+    for (int row = 0; row < callstack_model->rowCount(); row++) {
+        for (int column = 0; column < callstack_model->columnCount(); column++) {
+            callstack_model->setItem(row, column, new QStandardItem());
+        }
+    }
+}
diff --git a/src/citra_qt/debugger/callstack.h b/src/citra_qt/debugger/callstack.h
index fb390f5c3c..1a9b6dc816 100644
--- a/src/citra_qt/debugger/callstack.h
+++ b/src/citra_qt/debugger/callstack.h
@@ -21,4 +21,7 @@ public slots:
 private:
     Ui::CallStack ui;
     QStandardItemModel* callstack_model;
+
+    /// Clears the callstack widget while keeping the column widths the same
+    void Clear();
 };