Skip to content

Commit c44edfe

Browse files
committed
better looking button and add placeholder text
1 parent c1e659b commit c44edfe

2 files changed

Lines changed: 48 additions & 9 deletions

File tree

assets/style.qss

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,45 @@ QPushButton:hover {
1414
}
1515

1616
QPushButton#positiveButton {
17-
background-color: #2f8f46;
17+
background-color: qlineargradient(
18+
x1: 0, y1: 0, x2: 0, y2: 1,
19+
stop: 0 #2f8f46,
20+
stop: 0.45 #2a7d3d,
21+
stop: 1 #236933
22+
);
1823
border: 1px solid #2a7d3d;
1924
color: #ffffff;
2025
font-weight: 600;
2126
}
2227

2328
QPushButton#positiveButton:hover {
24-
background-color: #2a7d3d;
29+
background-color: qlineargradient(
30+
x1: 0, y1: 0, x2: 0, y2: 1,
31+
stop: 0 #2a7d3d,
32+
stop: 0.45 #236933,
33+
stop: 1 #1d572a
34+
);
2535
}
2636

2737
QPushButton#negativeButton {
28-
background-color: #c43d32;
38+
background-color: qlineargradient(
39+
x1: 0, y1: 0, x2: 0, y2: 1,
40+
stop: 0 #c43d32,
41+
stop: 0.45 #aa342a,
42+
stop: 1 #8f2b23
43+
);
2944
border: 1px solid #aa342a;
3045
color: #ffffff;
3146
font-weight: 600;
3247
}
3348

3449
QPushButton#negativeButton:hover {
35-
background-color: #aa342a;
50+
background-color: qlineargradient(
51+
x1: 0, y1: 0, x2: 0, y2: 1,
52+
stop: 0 #aa342a,
53+
stop: 0.45 #8f2b23,
54+
stop: 1 #75231d
55+
);
3656
}
3757

3858
QListWidget,
@@ -44,6 +64,12 @@ QLineEdit {
4464
padding: 6px;
4565
}
4666

67+
QLineEdit,
68+
QComboBox QLineEdit {
69+
color: #1f1f1f;
70+
placeholder-text-color: #a9afb7;
71+
}
72+
4773
QCheckBox {
4874
padding: 2px;
4975
}

gui/rule_editor.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ def __init__(self, config: SysmonConfig) -> None:
4242
self.group_box = QComboBox()
4343
self.group_box.setEditable(True)
4444
self.group_box.setInsertPolicy(QComboBox.InsertPolicy.NoInsert)
45-
self.group_box.setPlaceholderText("Select or type rule group (optional)")
45+
self.group_box.setPlaceholderText("Rule Name")
46+
self.group_box.lineEdit().setPlaceholderText("Rule Name")
4647
self.group_completer = QCompleter(self.group_box.model(), self.group_box)
4748
self.group_completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
4849
self.group_completer.setFilterMode(Qt.MatchFlag.MatchContains)
@@ -55,7 +56,8 @@ def __init__(self, config: SysmonConfig) -> None:
5556
self.field_box = QComboBox()
5657
self.field_box.setEditable(True)
5758
self.field_box.setInsertPolicy(QComboBox.InsertPolicy.NoInsert)
58-
self.field_box.setPlaceholderText("Select or type category...")
59+
self.field_box.setPlaceholderText("Select a Category")
60+
self.field_box.lineEdit().setPlaceholderText("Select a Category")
5961
self.field_completer = QCompleter(self.field_box.model(), self.field_box)
6062
self.field_completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
6163
self.field_completer.setFilterMode(Qt.MatchFlag.MatchContains)
@@ -68,7 +70,8 @@ def __init__(self, config: SysmonConfig) -> None:
6870
self.value_preset_box = QComboBox()
6971
self.value_preset_box.setEditable(True)
7072
self.value_preset_box.setInsertPolicy(QComboBox.InsertPolicy.NoInsert)
71-
self.value_preset_box.setPlaceholderText("Select or type value...")
73+
self.value_preset_box.setPlaceholderText("...")
74+
self.value_preset_box.lineEdit().setPlaceholderText("...")
7275
self.value_completer = QCompleter(self.value_preset_box.model(), self.value_preset_box)
7376
self.value_completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
7477
self.value_completer.setFilterMode(Qt.MatchFlag.MatchContains)
@@ -329,10 +332,15 @@ def load_fields_for_event(self) -> None:
329332
if not fields:
330333
self.title.setText(f"{self.current_event_id} - {self.current_event_name} (no fields found)")
331334
self.value_preset_box.clear()
335+
self.value_preset_box.lineEdit().setPlaceholderText("...")
332336
return
333337

334338
self.field_box.addItems(fields)
335-
self.load_value_presets_for_field(self.field_box.currentText())
339+
self.field_box.setCurrentIndex(-1)
340+
self.field_box.setEditText("")
341+
self.value_preset_box.clear()
342+
self.value_preset_box.lineEdit().setPlaceholderText("...")
343+
self.value_preset_box.setEditText("")
336344

337345
def load_value_presets_for_field(self, field_name: str) -> None:
338346
from data.sysmon_value_presets import SYS_MON_VALUE_PRESETS
@@ -344,7 +352,12 @@ def load_value_presets_for_field(self, field_name: str) -> None:
344352
presets = SYS_MON_VALUE_PRESETS.get(field_name, [])
345353
if presets:
346354
self.value_preset_box.addItems(presets)
347-
self.value_preset_box.setCurrentText(typed_value)
355+
self.value_preset_box.lineEdit().setPlaceholderText(str(presets[0]))
356+
else:
357+
self.value_preset_box.lineEdit().setPlaceholderText("...")
358+
359+
self.value_preset_box.setCurrentIndex(-1)
360+
self.value_preset_box.setEditText(typed_value)
348361

349362
def refresh_rules(self) -> None:
350363
self.rule_tree.clear()

0 commit comments

Comments
 (0)