eric6/Debugger/DebugViewer.py

branch
maintenance
changeset 8176
31965986ecd1
parent 8043
0acf98cd089a
parent 8143
2c730d5fd177
child 8273
698ae46f40a4
equal deleted inserted replaced
8153:e01ae92db699 8176:31965986ecd1
48 @signal preferencesChanged() emitted to react on changed preferences 48 @signal preferencesChanged() emitted to react on changed preferences
49 """ 49 """
50 sourceFile = pyqtSignal(str, int) 50 sourceFile = pyqtSignal(str, int)
51 preferencesChanged = pyqtSignal() 51 preferencesChanged = pyqtSignal()
52 52
53 ThreadIdRole = Qt.UserRole + 1 53 ThreadIdRole = Qt.ItemDataRole.UserRole + 1
54 DebuggerStateRole = Qt.UserRole + 2 54 DebuggerStateRole = Qt.ItemDataRole.UserRole + 2
55 55
56 # Map debug state to icon name 56 # Map debug state to icon name
57 StateIcon = { 57 StateIcon = {
58 "broken": "break", 58 "broken": "break",
59 "exception": "exceptions", 59 "exception": "exceptions",
91 91
92 self.__mainLayout = QVBoxLayout() 92 self.__mainLayout = QVBoxLayout()
93 self.__mainLayout.setContentsMargins(0, 3, 0, 0) 93 self.__mainLayout.setContentsMargins(0, 3, 0, 0)
94 self.setLayout(self.__mainLayout) 94 self.setLayout(self.__mainLayout)
95 95
96 self.__mainSplitter = QSplitter(Qt.Vertical, self) 96 self.__mainSplitter = QSplitter(Qt.Orientation.Vertical, self)
97 self.__mainLayout.addWidget(self.__mainSplitter) 97 self.__mainLayout.addWidget(self.__mainSplitter)
98 98
99 # add the viewer showing the connected debug backends 99 # add the viewer showing the connected debug backends
100 self.__debuggersWidget = QWidget() 100 self.__debuggersWidget = QWidget()
101 self.__debuggersLayout = QVBoxLayout(self.__debuggersWidget) 101 self.__debuggersLayout = QVBoxLayout(self.__debuggersWidget)
133 self.glvWidgetHLayout = QHBoxLayout() 133 self.glvWidgetHLayout = QHBoxLayout()
134 self.glvWidgetHLayout.setContentsMargins(3, 3, 3, 3) 134 self.glvWidgetHLayout.setContentsMargins(3, 3, 3, 3)
135 135
136 self.globalsFilterEdit = QLineEdit(self.glvWidget) 136 self.globalsFilterEdit = QLineEdit(self.glvWidget)
137 self.globalsFilterEdit.setSizePolicy( 137 self.globalsFilterEdit.setSizePolicy(
138 QSizePolicy.Expanding, QSizePolicy.Fixed) 138 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
139 self.glvWidgetHLayout.addWidget(self.globalsFilterEdit) 139 self.glvWidgetHLayout.addWidget(self.globalsFilterEdit)
140 self.globalsFilterEdit.setToolTip( 140 self.globalsFilterEdit.setToolTip(
141 self.tr("Enter regular expression patterns separated by ';'" 141 self.tr("Enter regular expression patterns separated by ';'"
142 " to define variable filters. ")) 142 " to define variable filters. "))
143 self.globalsFilterEdit.setWhatsThis( 143 self.globalsFilterEdit.setWhatsThis(
172 self.lvWidgetHLayout1 = QHBoxLayout() 172 self.lvWidgetHLayout1 = QHBoxLayout()
173 self.lvWidgetHLayout1.setContentsMargins(3, 3, 3, 3) 173 self.lvWidgetHLayout1.setContentsMargins(3, 3, 3, 3)
174 174
175 self.stackComboBox = QComboBox(self.lvWidget) 175 self.stackComboBox = QComboBox(self.lvWidget)
176 self.stackComboBox.setSizePolicy( 176 self.stackComboBox.setSizePolicy(
177 QSizePolicy.Expanding, QSizePolicy.Fixed) 177 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
178 self.lvWidgetHLayout1.addWidget(self.stackComboBox) 178 self.lvWidgetHLayout1.addWidget(self.stackComboBox)
179 179
180 self.sourceButton = QPushButton(self.tr('Source'), self.lvWidget) 180 self.sourceButton = QPushButton(self.tr('Source'), self.lvWidget)
181 self.lvWidgetHLayout1.addWidget(self.sourceButton) 181 self.lvWidgetHLayout1.addWidget(self.sourceButton)
182 self.sourceButton.setEnabled(False) 182 self.sourceButton.setEnabled(False)
188 self.lvWidgetHLayout2 = QHBoxLayout() 188 self.lvWidgetHLayout2 = QHBoxLayout()
189 self.lvWidgetHLayout2.setContentsMargins(3, 3, 3, 3) 189 self.lvWidgetHLayout2.setContentsMargins(3, 3, 3, 3)
190 190
191 self.localsFilterEdit = QLineEdit(self.lvWidget) 191 self.localsFilterEdit = QLineEdit(self.lvWidget)
192 self.localsFilterEdit.setSizePolicy( 192 self.localsFilterEdit.setSizePolicy(
193 QSizePolicy.Expanding, QSizePolicy.Fixed) 193 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
194 self.lvWidgetHLayout2.addWidget(self.localsFilterEdit) 194 self.lvWidgetHLayout2.addWidget(self.localsFilterEdit)
195 self.localsFilterEdit.setToolTip( 195 self.localsFilterEdit.setToolTip(
196 self.tr( 196 self.tr(
197 "Enter regular expression patterns separated by ';' to define " 197 "Enter regular expression patterns separated by ';' to define "
198 "variable filters. ")) 198 "variable filters. "))
707 self.tr("<p>Debugger with ID <b>{0}</b> has been connected." 707 self.tr("<p>Debugger with ID <b>{0}</b> has been connected."
708 "</p>") 708 "</p>")
709 .format(debuggerId)) 709 .format(debuggerId))
710 710
711 self.__debuggersList.header().resizeSections( 711 self.__debuggersList.header().resizeSections(
712 QHeaderView.ResizeToContents) 712 QHeaderView.ResizeMode.ResizeToContents)
713 713
714 if self.__debuggersList.topLevelItemCount() == 1: 714 if self.__debuggersList.topLevelItemCount() == 1:
715 # it is the only item, select it as the current one 715 # it is the only item, select it as the current one
716 self.__debuggersList.setCurrentItem(itm) 716 self.__debuggersList.setCurrentItem(itm)
717 717
721 721
722 @param debuggerId ID of the debugger to set as current debugger 722 @param debuggerId ID of the debugger to set as current debugger
723 @type str 723 @type str
724 """ 724 """
725 debuggerItems = self.__debuggersList.findItems( 725 debuggerItems = self.__debuggersList.findItems(
726 debuggerId, Qt.MatchExactly) 726 debuggerId, Qt.MatchFlag.MatchExactly)
727 if debuggerItems: 727 if debuggerItems:
728 debuggerItem = debuggerItems[0] 728 debuggerItem = debuggerItems[0]
729 currentItem = self.__debuggersList.currentItem() 729 currentItem = self.__debuggersList.currentItem()
730 if currentItem is debuggerItem: 730 if currentItem is debuggerItem:
731 # nothing to do 731 # nothing to do
800 @type str 800 @type str
801 """ 801 """
802 debuggerItem = None 802 debuggerItem = None
803 if debuggerId: 803 if debuggerId:
804 foundItems = self.__debuggersList.findItems( 804 foundItems = self.__debuggersList.findItems(
805 debuggerId, Qt.MatchExactly) 805 debuggerId, Qt.MatchFlag.MatchExactly)
806 if foundItems: 806 if foundItems:
807 debuggerItem = foundItems[0] 807 debuggerItem = foundItems[0]
808 if debuggerItem is None: 808 if debuggerItem is None:
809 debuggerItem = self.__debuggersList.currentItem() 809 debuggerItem = self.__debuggersList.currentItem()
810 if debuggerItem is not None: 810 if debuggerItem is not None:
819 debuggerItem.setIcon(0, UI.PixmapCache.getIcon(iconName)) 819 debuggerItem.setIcon(0, UI.PixmapCache.getIcon(iconName))
820 debuggerItem.setData(0, self.DebuggerStateRole, state) 820 debuggerItem.setData(0, self.DebuggerStateRole, state)
821 debuggerItem.setText(1, stateText) 821 debuggerItem.setText(1, stateText)
822 822
823 self.__debuggersList.header().resizeSections( 823 self.__debuggersList.header().resizeSections(
824 QHeaderView.ResizeToContents) 824 QHeaderView.ResizeMode.ResizeToContents)
825 825
826 def __removeDebugger(self, debuggerId): 826 def __removeDebugger(self, debuggerId):
827 """ 827 """
828 Private method to remove a debugger given its ID. 828 Private method to remove a debugger given its ID.
829 829
830 @param debuggerId ID of the debugger to be removed from the list 830 @param debuggerId ID of the debugger to be removed from the list
831 @type str 831 @type str
832 """ 832 """
833 foundItems = self.__debuggersList.findItems( 833 foundItems = self.__debuggersList.findItems(
834 debuggerId, Qt.MatchExactly) 834 debuggerId, Qt.MatchFlag.MatchExactly)
835 if foundItems: 835 if foundItems:
836 index = self.__debuggersList.indexOfTopLevelItem(foundItems[0]) 836 index = self.__debuggersList.indexOfTopLevelItem(foundItems[0])
837 itm = self.__debuggersList.takeTopLevelItem(index) 837 itm = self.__debuggersList.takeTopLevelItem(index)
838 # __IGNORE_WARNING__ 838 # __IGNORE_WARNING__
839 del itm 839 del itm
850 @type str 850 @type str
851 """ 851 """
852 debugStatus = -1 # i.e. running 852 debugStatus = -1 # i.e. running
853 853
854 debuggerItems = self.__debuggersList.findItems( 854 debuggerItems = self.__debuggersList.findItems(
855 debuggerId, Qt.MatchExactly) 855 debuggerId, Qt.MatchFlag.MatchExactly)
856 if debuggerItems: 856 if debuggerItems:
857 debuggerItem = debuggerItems[0] 857 debuggerItem = debuggerItems[0]
858 858
859 currentItem = self.__debuggersList.currentItem() 859 currentItem = self.__debuggersList.currentItem()
860 if currentItem.parent() is debuggerItem: 860 if currentItem.parent() is debuggerItem:
888 itm.setFont(0, font) 888 itm.setFont(0, font)
889 889
890 debuggerItem.setExpanded(debuggerItem.childCount() > 0) 890 debuggerItem.setExpanded(debuggerItem.childCount() > 0)
891 891
892 self.__debuggersList.header().resizeSections( 892 self.__debuggersList.header().resizeSections(
893 QHeaderView.ResizeToContents) 893 QHeaderView.ResizeMode.ResizeToContents)
894 self.__debuggersList.header().setStretchLastSection(True) 894 self.__debuggersList.header().setStretchLastSection(True)
895 self.__doDebuggersListUpdate = True 895 self.__doDebuggersListUpdate = True
896 896
897 if debugStatus == -1: 897 if debugStatus == -1:
898 debuggerState = "running" 898 debuggerState = "running"
916 @type str 916 @type str
917 """ 917 """
918 debuggerItem = None 918 debuggerItem = None
919 if debuggerId: 919 if debuggerId:
920 foundItems = self.__debuggersList.findItems( 920 foundItems = self.__debuggersList.findItems(
921 debuggerId, Qt.MatchExactly) 921 debuggerId, Qt.MatchFlag.MatchExactly)
922 if foundItems: 922 if foundItems:
923 debuggerItem = foundItems[0] 923 debuggerItem = foundItems[0]
924 if debuggerItem is None: 924 if debuggerItem is None:
925 debuggerItem = self.__debuggersList.currentItem() 925 debuggerItem = self.__debuggersList.currentItem()
926 if debuggerItem is not None: 926 if debuggerItem is not None:
942 stateText = self.tr("unknown state ({0})").format(state) 942 stateText = self.tr("unknown state ({0})").format(state)
943 childItem.setIcon(0, UI.PixmapCache.getIcon(iconName)) 943 childItem.setIcon(0, UI.PixmapCache.getIcon(iconName))
944 childItem.setText(1, stateText) 944 childItem.setText(1, stateText)
945 945
946 self.__debuggersList.header().resizeSections( 946 self.__debuggersList.header().resizeSections(
947 QHeaderView.ResizeToContents) 947 QHeaderView.ResizeMode.ResizeToContents)

eric ide

mercurial