20 </ul> |
20 </ul> |
21 """ |
21 """ |
22 |
22 |
23 import os |
23 import os |
24 |
24 |
25 from PyQt5.QtCore import pyqtSignal |
25 from PyQt5.QtCore import pyqtSignal, Qt |
26 from PyQt5.QtWidgets import ( |
26 from PyQt5.QtWidgets import ( |
27 QWidget, QVBoxLayout, QHBoxLayout, QLineEdit, QSizePolicy, QPushButton, |
27 QWidget, QVBoxLayout, QHBoxLayout, QLineEdit, QSizePolicy, QPushButton, |
28 QComboBox, QLabel, QTreeWidget, QTreeWidgetItem, QHeaderView |
28 QComboBox, QLabel, QTreeWidget, QTreeWidgetItem, QHeaderView, QSplitter |
29 ) |
29 ) |
30 |
30 |
31 import UI.PixmapCache |
31 import UI.PixmapCache |
32 import Preferences |
32 import Preferences |
33 |
33 |
65 |
65 |
66 self.__mainLayout = QVBoxLayout() |
66 self.__mainLayout = QVBoxLayout() |
67 self.__mainLayout.setContentsMargins(0, 0, 0, 0) |
67 self.__mainLayout.setContentsMargins(0, 0, 0, 0) |
68 self.setLayout(self.__mainLayout) |
68 self.setLayout(self.__mainLayout) |
69 |
69 |
|
70 self.__mainSplitter = QSplitter(Qt.Vertical, self) |
|
71 self.__mainLayout.addWidget(self.__mainSplitter) |
|
72 |
70 self.__tabWidget = E5TabWidget() |
73 self.__tabWidget = E5TabWidget() |
71 self.__mainLayout.addWidget(self.__tabWidget) |
74 self.__mainSplitter.addWidget(self.__tabWidget) |
72 |
75 |
73 from .VariablesViewer import VariablesViewer |
76 from .VariablesViewer import VariablesViewer |
74 # add the global variables viewer |
77 # add the global variables viewer |
75 self.glvWidget = QWidget() |
78 self.glvWidget = QWidget() |
76 self.glvWidgetVLayout = QVBoxLayout(self.glvWidget) |
79 self.glvWidgetVLayout = QVBoxLayout(self.glvWidget) |
234 index, self.disassemblyViewer.windowTitle()) |
237 index, self.disassemblyViewer.windowTitle()) |
235 |
238 |
236 self.__tabWidget.setCurrentWidget(self.glvWidget) |
239 self.__tabWidget.setCurrentWidget(self.glvWidget) |
237 |
240 |
238 # add the threads viewer |
241 # add the threads viewer |
239 self.__mainLayout.addWidget(QLabel(self.tr("Threads:"))) |
242 self.__threadWidget = QWidget() |
|
243 self.__threadWidgetLayout = QVBoxLayout(self.__threadWidget) |
|
244 self.__threadWidgetLayout.addWidget(QLabel(self.tr("Threads:"))) |
240 self.__threadList = QTreeWidget() |
245 self.__threadList = QTreeWidget() |
241 self.__threadList.setHeaderLabels( |
246 self.__threadList.setHeaderLabels( |
242 [self.tr("ID"), self.tr("Name"), |
247 [self.tr("ID"), self.tr("Name"), |
243 self.tr("State"), ""]) |
248 self.tr("State"), ""]) |
244 self.__threadList.setSortingEnabled(True) |
249 self.__threadList.setSortingEnabled(True) |
245 self.__mainLayout.addWidget(self.__threadList) |
250 self.__threadWidgetLayout.addWidget(self.__threadList) |
|
251 self.__mainSplitter.addWidget(self.__threadWidget) |
246 |
252 |
247 self.__doThreadListUpdate = True |
253 self.__doThreadListUpdate = True |
248 |
254 |
249 self.__threadList.currentItemChanged.connect(self.__threadSelected) |
255 self.__threadList.currentItemChanged.connect(self.__threadSelected) |
250 |
256 |
251 self.__mainLayout.setStretchFactor(self.__tabWidget, 5) |
257 self.__mainSplitter.setSizes([500, 100]) |
252 self.__mainLayout.setStretchFactor(self.__threadList, 1) |
|
253 |
258 |
254 self.currentStack = None |
259 self.currentStack = None |
255 self.framenr = 0 |
260 self.framenr = 0 |
256 |
261 |
257 self.debugServer.clientStack.connect(self.handleClientStack) |
262 self.debugServer.clientStack.connect(self.handleClientStack) |