Skip to content

Commit bb13cc0

Browse files
committed
Fix widgets
1 parent 0d6d21a commit bb13cc0

File tree

4 files changed

+46
-16
lines changed

4 files changed

+46
-16
lines changed

tools/config_editor/compile.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ def print_output(self, renderable: RenderableType) -> None:
2121
# Print output to the RichLog widget
2222
self.query_one(RichLog).write(renderable)
2323

24-
@work(exclusive=True)
25-
async def compile_libs(self) -> None:
24+
@work(name="compliation_worker", group="compilation", exclusive=True, thread=True)
25+
def compile_libs(self) -> None:
2626
# Compile the libraries
2727

2828
# Get the Arduino path from the command line arguments or use the default path

tools/config_editor/settings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def on_button_pressed(self, event: Button.Pressed) -> None:
1616
print("Save button pressed")
1717

1818
# Update the target setting
19-
self.app.setting_target = self.query_one("#target-select", LabelledSelect).value
19+
self.app.setting_target = self.query_one("#target-select", LabelledSelect).get_select_value()
2020
print("Target setting updated: " + self.app.setting_target)
2121

2222
self.dismiss()
@@ -30,7 +30,7 @@ def on_resume(self) -> None:
3030
print("Settings screen resumed. Updating settings.")
3131

3232
# Update Target selection
33-
self.query_one("#target-select", LabelledSelect).value = self.app.setting_target
33+
self.query_one("#target-select", LabelledSelect).set_select_value(self.app.setting_target)
3434

3535
def compose(self) -> ComposeResult:
3636
# Compose the target selection screen

tools/config_editor/style.tcss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ Button.main-menu-button {
6262

6363
#settings-scroll-container {
6464
align: center middle;
65+
padding: 1;
6566
}
6667

6768
#settings-button-container {

tools/config_editor/widgets.py

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ class LabelledInput(Widget):
1313
}
1414
"""
1515

16+
label_widget: Label
17+
input_widget: Input
18+
19+
def set_input_value(self, value):
20+
self.input_widget.value = value
21+
22+
def get_input_value(self):
23+
return self.input_widget.value
24+
1625
def __init__(self,
1726
label,
1827
*,
@@ -23,13 +32,15 @@ def __init__(self,
2332
classes=None,
2433
disabled=False):
2534
super().__init__(name=name, id=id, classes=classes, disabled=disabled)
26-
self.label = label
27-
self.placeholder = placeholder
28-
self.value = value
35+
self.__label = label
36+
self.__placeholder = placeholder
37+
self.__init_value = value
2938

3039
def compose(self):
31-
yield Label(f"{self.label}:")
32-
yield Input(placeholder=self.placeholder, value=self.value)
40+
self.label_widget = Label(f"{self.__label}:")
41+
self.input_widget = Input(placeholder=self.__placeholder, value=self.__init_value)
42+
yield self.label_widget
43+
yield self.input_widget
3344

3445

3546
class LabelledSelect(Widget):
@@ -42,6 +53,22 @@ class LabelledSelect(Widget):
4253
}
4354
"""
4455

56+
label_widget: Label
57+
select_widget: Select
58+
59+
def set_select_options(self, options):
60+
self.__options = options
61+
self.select_widget.options = options
62+
63+
def get_select_options(self):
64+
return self.__options
65+
66+
def set_select_value(self, value):
67+
self.select_widget.value = value
68+
69+
def get_select_value(self):
70+
return self.select_widget.value
71+
4572
def __init__(self,
4673
label,
4774
options,
@@ -54,12 +81,14 @@ def __init__(self,
5481
classes=None,
5582
disabled=False):
5683
super().__init__(name=name, id=id, classes=classes, disabled=disabled)
57-
self.label = label
58-
self.options = options
59-
self.value = value
60-
self.prompt = prompt
61-
self.allow_blank = allow_blank
84+
self.__label = label
85+
self.__options = options
86+
self.__init_value = value
87+
self.__prompt = prompt
88+
self.__allow_blank = allow_blank
6289

6390
def compose(self):
64-
yield Label(f"{self.label}:")
65-
yield Select(options=self.options, value=self.value, prompt=self.prompt, allow_blank=self.allow_blank)
91+
self.label_widget = Label(f"{self.__label}:")
92+
self.select_widget = Select(options=self.__options, value=self.__init_value, prompt=self.__prompt, allow_blank=self.__allow_blank)
93+
yield self.label_widget
94+
yield self.select_widget

0 commit comments

Comments
 (0)