Krita Source Code Documentation
Loading...
Searching...
No Matches
debuggertable.py
Go to the documentation of this file.
1"""
2SPDX-FileCopyrightText: 2017 Eliakin Costa <eliakim170@gmail.com>
3
4SPDX-License-Identifier: GPL-2.0-or-later
5"""
6try:
7 from PyQt6.QtWidgets import QTableWidget, QTableWidgetItem
8except:
9 from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem
10from builtins import i18n, i18nc
11
12class DebuggerTable(QTableWidget):
13
14 def __init__(self, parent=None):
15 super(DebuggerTable, self).__init__(parent)
16
17 self.setColumnCount(4)
18
19 tableHeader = [i18n('Scope'), i18n('Name'), i18nc('Value in DebuggerTable', 'Value'), i18n('Type')]
20 self.setHorizontalHeaderLabels(tableHeader)
21 self.setEditTriggers(QTableWidget.EditTrigger.NoEditTriggers)
22
23 def updateTable(self, data):
24 self.clearContents()
25 self.setRowCount(0)
26
27 if data and not data.get('quit') and not data.get('exception'):
28 locals_list = data['frame']['locals']
29 globals_list = data['frame']['globals']
30
31 all_variables = {'locals': locals_list, 'globals': globals_list}
32
33 for scope_key in all_variables:
34 for item in all_variables[scope_key]:
35 for key, value in item.items():
36 row = self.rowCount()
37 self.insertRow(row)
38 self.setItem(row, 0, QTableWidgetItem(str(scope_key)))
39 self.setItem(row, 1, QTableWidgetItem(key))
40 self.setItem(row, 2, QTableWidgetItem(value['value']))
41 self.setItem(row, 3, QTableWidgetItem(value['type']))