Skip to content

Commit fbb0eb0

Browse files
committed
toggle the sections that have been created
1 parent ea08aec commit fbb0eb0

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

gui/rule_editor.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
QComboBox,
77
QLineEdit,
88
QPushButton,
9+
QCheckBox,
910
QTreeWidget,
1011
QTreeWidgetItem,
1112
)
@@ -51,6 +52,7 @@ def __init__(self, config: SysmonConfig) -> None:
5152

5253
self.add_button = QPushButton("Add Rule")
5354
self.remove_button = QPushButton("Remove Selected Rule")
55+
self.new_rules_only_toggle = QCheckBox("Show New Rules Only")
5456

5557
self.rule_tree = QTreeWidget()
5658
self.rule_tree.setHeaderHidden(True)
@@ -74,12 +76,14 @@ def __init__(self, config: SysmonConfig) -> None:
7476
self.layout.addLayout(self.rule_row_2)
7577
self.layout.addWidget(self.add_button)
7678
self.layout.addWidget(self.remove_button)
79+
self.layout.addWidget(self.new_rules_only_toggle)
7780
self.layout.addWidget(self.rule_tree)
7881

7982
self.add_button.clicked.connect(self.add_rule)
8083
self.remove_button.clicked.connect(self.remove_selected_rule)
8184
self.field_box.currentTextChanged.connect(self.load_value_presets_for_field)
8285
self.group_box.currentIndexChanged.connect(self.on_group_selected)
86+
self.new_rules_only_toggle.stateChanged.connect(self.refresh_rules)
8387

8488
def set_event(self, event_id: int, event_name: str) -> None:
8589
self.current_event_id = event_id
@@ -166,20 +170,28 @@ def load_value_presets_for_field(self, field_name: str) -> None:
166170

167171
def refresh_rules(self) -> None:
168172
self.rule_tree.clear()
173+
show_new_only = self.new_rules_only_toggle.isChecked()
169174

170175
for event_id, event_config in sorted(self.config.events.items()):
171176
if not event_config.rules:
172177
continue
173178

174-
event_item = QTreeWidgetItem(
175-
[f"{event_id} - {event_config.event_name}"]
176-
)
179+
visible_rule_indexes = [
180+
idx
181+
for idx, rule in enumerate(event_config.rules)
182+
if (not show_new_only) or (not rule.imported)
183+
]
184+
if not visible_rule_indexes:
185+
continue
186+
187+
event_item = QTreeWidgetItem([f"{event_id} - {event_config.event_name}"])
177188
self.rule_tree.addTopLevelItem(event_item)
178189

179190
grouped_parents: dict[str, QTreeWidgetItem] = {}
180191
ungrouped_parent: QTreeWidgetItem | None = None
181192

182-
for rule_index, rule in enumerate(event_config.rules):
193+
for rule_index in visible_rule_indexes:
194+
rule = event_config.rules[rule_index]
183195
if rule.group_id:
184196
if rule.group_id not in grouped_parents:
185197
group_name = rule.group_name or "Imported Rule"

0 commit comments

Comments
 (0)