File indexing completed on 2025-03-09 04:10:20

0001 """
0002 SPDX-FileCopyrightText: 2017 Eliakin Costa <eliakim170@gmail.com>
0003 
0004 SPDX-License-Identifier: GPL-2.0-or-later
0005 """
0006 from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem
0007 
0008 
0009 class DebuggerTable(QTableWidget):
0010 
0011     def __init__(self, parent=None):
0012         super(DebuggerTable, self).__init__(parent)
0013 
0014         self.setColumnCount(4)
0015 
0016         tableHeader = [i18n('Scope'), i18n('Name'), i18nc('Value in DebuggerTable', 'Value'), i18n('Type')]
0017         self.setHorizontalHeaderLabels(tableHeader)
0018         self.setEditTriggers(self.NoEditTriggers)
0019 
0020     def updateTable(self, data):
0021         self.clearContents()
0022         self.setRowCount(0)
0023 
0024         if data and not data.get('quit') and not data.get('exception'):
0025             locals_list = data['frame']['locals']
0026             globals_list = data['frame']['globals']
0027 
0028             all_variables = {'locals': locals_list, 'globals': globals_list}
0029 
0030             for scope_key in all_variables:
0031                 for item in all_variables[scope_key]:
0032                     for key, value in item.items():
0033                         row = self.rowCount()
0034                         self.insertRow(row)
0035                         self.setItem(row, 0, QTableWidgetItem(str(scope_key)))
0036                         self.setItem(row, 1, QTableWidgetItem(key))
0037                         self.setItem(row, 2, QTableWidgetItem(value['value']))
0038                         self.setItem(row, 3, QTableWidgetItem(value['type']))