Skip to content

Commit 7a0d939

Browse files
committed
Small fixes in StateView
- update the view if we have only one errored state - disallow switching to the current active state
1 parent 4faf210 commit 7a0d939

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

ui/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ def disable_widgets():
112112
assert BNWidgets.CW is not None
113113
assert BNWidgets.SW is not None
114114

115+
# Refresh state table
116+
BNWidgets.SW.set_state_table(None)
117+
115118
BNWidgets.RW.setEnabled(False)
116119
BNWidgets.MW.setEnabled(False)
117120
BNWidgets.BW.setEnabled(False)

ui/hexview.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,9 @@
1616
QWidget,
1717
QVBoxLayout,
1818
QLabel,
19-
QSizePolicy,
2019
QAbstractItemView,
2120
QMenu,
22-
QItemDelegate,
23-
QSizePolicy
21+
QItemDelegate
2422
)
2523
from PySide6.QtGui import (
2624
QMouseEvent,

ui/memory_view.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from PySide6.QtWidgets import (
1212
QApplication,
1313
QGridLayout,
14-
QSizePolicy,
1514
QMenu,
1615
QPushButton
1716
)

ui/state_view.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ def reset(self):
7070
self.index_to_state_address = dict()
7171
self.state_collection = []
7272
self.symb_idx = 0
73+
self.active_idx = None
7374
self._table.setRowCount(0)
7475

7576
def init(self, state):
@@ -94,8 +95,12 @@ def set_state_table(self, state):
9495
avoided_states = globs.executor.fringe.get_avoided_states
9596
exited_states = globs.executor.fringe.get_exited_states
9697

97-
self._table.setRowCount(len(deferred_states)+len(unsat_states)+len(error_states)+len(avoided_states)+len(exited_states)+1)
98-
self.state_collection.append((state,STATE_ACTIVE))
98+
rowCount = len(deferred_states)+len(unsat_states)+len(error_states)+len(avoided_states)+len(exited_states)
99+
if state:
100+
rowCount += 1
101+
self._table.setRowCount(rowCount)
102+
if state:
103+
self.state_collection.append((state,STATE_ACTIVE))
99104

100105
for idx, a in enumerate(deferred_states):
101106
self.state_collection.append((a,STATE_DEFERRED))
@@ -119,6 +124,7 @@ def set_state_table(self, state):
119124
state_colour = self.active_state_color
120125
state_text_colour = self.item_color
121126
state_status = "Active"
127+
self.active_idx = idx
122128
if s==STATE_UNSAT:
123129
state_colour = self.unsat_state_color
124130
state_text_colour = self.item_color
@@ -150,6 +156,8 @@ def set_state_table(self, state):
150156
# double click event
151157
def on_doubleClick(self, item):
152158
row_idx = item.row()
159+
if row_idx == self.active_idx:
160+
return
153161
state_addr = self.index_to_state_address[row_idx]
154162
globs.actions_change_state(globs.bv, state_addr)
155163

0 commit comments

Comments
 (0)