mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-26 15:55:38 +00:00
Merge pull request #533 from WallK/godot-configurator-poc
Godot configurator POC progress
This commit is contained in:
commit
e8d79fdd3c
|
@ -4,9 +4,8 @@ func _ready():
|
|||
self.pressed.connect(self._button_pressed)
|
||||
|
||||
func _button_pressed():
|
||||
var output = []
|
||||
# var exit_code = OS.execute("ls", ["-l", "/"], output, true)
|
||||
var exit_code = OS.execute("touch", ["godot_configurator_hardcoded"], output)
|
||||
var output := [] #[] is shared, Array isn't (maybe fixed in 4.1)
|
||||
var exit_code := OS.execute("touch", ["godot_configurator_hardcoded"], output)
|
||||
print("exit code: ", exit_code)
|
||||
print("output: ", output)
|
||||
|
||||
|
|
|
@ -4,9 +4,7 @@ func _ready():
|
|||
self.pressed.connect(self._button_pressed)
|
||||
|
||||
func _button_pressed():
|
||||
var output = []
|
||||
# var exit_code = OS.execute("ls", ["-l", "/"], output, true)
|
||||
var exit_code = OS.execute("bash", ["touch_external.sh"], output)
|
||||
var output := [] #[] is shared, Array isn't (maybe fixed in 4.1)
|
||||
var exit_code := OS.execute("bash", ["touch_external.sh"], output)
|
||||
print("exit code: ", exit_code)
|
||||
print("output: ",
|
||||
output)
|
||||
print("output: ", output)
|
||||
|
|
32
tools/configurator/ProgressBar.gd
Normal file
32
tools/configurator/ProgressBar.gd
Normal file
|
@ -0,0 +1,32 @@
|
|||
extends ProgressBar
|
||||
|
||||
var progress_file := "progress" #File with progress from 0 to 100
|
||||
var progress_button: Button
|
||||
var file := FileAccess
|
||||
|
||||
var prev_prog: float = 0
|
||||
|
||||
func _ready():
|
||||
self.value = 0
|
||||
progress_button = $"../HBoxContainerProgress/ProgressButton"
|
||||
|
||||
func _process(delta):
|
||||
if file.file_exists(progress_file): #File to be removed after script is done
|
||||
var file := FileAccess.open(progress_file, FileAccess.READ)
|
||||
var _progress := float(file.get_as_text())
|
||||
if prev_prog != _progress: #To not rewrite every frame
|
||||
self.value = _progress
|
||||
print("boom", _progress)
|
||||
prev_prog = _progress
|
||||
else:
|
||||
if prev_prog == 100:
|
||||
progress_button.disabled = false #Reenable progress button
|
||||
prev_prog = 0
|
||||
|
||||
|
||||
func _on_check_button_toggled(button_pressed):
|
||||
var _fill_color := Color("999999")
|
||||
if button_pressed:
|
||||
_fill_color = Color("FF0000")
|
||||
self.get("theme_override_styles/fill").set_bg_color(_fill_color)
|
||||
|
17
tools/configurator/ProgressButton.gd
Normal file
17
tools/configurator/ProgressButton.gd
Normal file
|
@ -0,0 +1,17 @@
|
|||
extends Button
|
||||
|
||||
var thread: Thread
|
||||
|
||||
func _ready():
|
||||
self.pressed.connect(self._button_pressed)
|
||||
|
||||
func _button_pressed():
|
||||
thread = Thread.new()
|
||||
thread.start(_execute_bash.bind(["progress_file.sh"])) #Need to bind
|
||||
self.disabled = true #To prevent multiple launches
|
||||
# thread.wait_to_finish() #Should be done somewhere
|
||||
|
||||
func _execute_bash(filename):
|
||||
var output := []
|
||||
var exit_code := OS.execute("bash", filename, output)
|
||||
print(exit_code)
|
|
@ -1,4 +1,4 @@
|
|||
extends Control
|
||||
|
||||
func _ready():
|
||||
$VBoxContainerButtons/Button.grab_focus()
|
||||
$VBoxContainerButtons/Button.grab_focus() #Required to enable controller focusing
|
||||
|
|
|
@ -1,13 +1,21 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://qk2gw74anwlq"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://qk2gw74anwlq"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bv6vh33cnfaw4" path="res://icon.svg" id="1_axfei"]
|
||||
[ext_resource type="Script" path="res://main.gd" id="1_obpq7"]
|
||||
[ext_resource type="Script" path="res://Button.gd" id="3_aenvv"]
|
||||
[ext_resource type="Script" path="res://Button2.gd" id="4_u2f14"]
|
||||
[ext_resource type="Script" path="res://ProgressButton.gd" id="5_slq0p"]
|
||||
[ext_resource type="Script" path="res://ProgressBar.gd" id="6_cx658"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_b77hh"]
|
||||
font_size = 24
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xyjyy"]
|
||||
corner_radius_top_left = 5
|
||||
corner_radius_top_right = 5
|
||||
corner_radius_bottom_right = 5
|
||||
corner_radius_bottom_left = 5
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
|
@ -52,31 +60,55 @@ anchor_left = 0.5
|
|||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -70.5
|
||||
offset_top = -33.0
|
||||
offset_right = 70.5
|
||||
offset_bottom = 33.0
|
||||
offset_left = -74.0
|
||||
offset_top = -66.0
|
||||
offset_right = 273.0
|
||||
offset_bottom = 66.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Button" type="Button" parent="VBoxContainerButtons"]
|
||||
custom_minimum_size = Vector2(150, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
focus_neighbor_top = NodePath("../Button2")
|
||||
size_flags_horizontal = 0
|
||||
focus_neighbor_top = NodePath("../HBoxContainerProgress/ProgressButton")
|
||||
focus_neighbor_bottom = NodePath("../Button2")
|
||||
text = "Hardcoded script"
|
||||
script = ExtResource("3_aenvv")
|
||||
|
||||
[node name="Button2" type="Button" parent="VBoxContainerButtons"]
|
||||
custom_minimum_size = Vector2(150, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_horizontal = 0
|
||||
focus_neighbor_top = NodePath("../Button")
|
||||
focus_neighbor_bottom = NodePath("../CheckButton")
|
||||
focus_neighbor_bottom = NodePath("../HBoxContainerProgress/ProgressButton")
|
||||
text = "External script"
|
||||
script = ExtResource("4_u2f14")
|
||||
|
||||
[node name="CheckButton" type="CheckButton" parent="VBoxContainerButtons"]
|
||||
[node name="HBoxContainerProgress" type="HBoxContainer" parent="VBoxContainerButtons"]
|
||||
layout_mode = 2
|
||||
focus_neighbor_top = NodePath("../Button2")
|
||||
focus_neighbor_bottom = NodePath("../Button")
|
||||
text = "Hardcore mode"
|
||||
|
||||
[node name="ProgressButton" type="Button" parent="VBoxContainerButtons/HBoxContainerProgress"]
|
||||
custom_minimum_size = Vector2(150, 0)
|
||||
layout_mode = 2
|
||||
focus_neighbor_top = NodePath("../../Button2")
|
||||
focus_neighbor_bottom = NodePath("../../Button")
|
||||
text = "Start progress"
|
||||
script = ExtResource("5_slq0p")
|
||||
|
||||
[node name="CheckButton" type="CheckButton" parent="VBoxContainerButtons/HBoxContainerProgress"]
|
||||
layout_mode = 2
|
||||
text = "Make progress red"
|
||||
|
||||
[node name="ProgressBar" type="ProgressBar" parent="VBoxContainerButtons"]
|
||||
custom_minimum_size = Vector2(150, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 1
|
||||
size_flags_stretch_ratio = 8.13
|
||||
theme_override_styles/fill = SubResource("StyleBoxFlat_xyjyy")
|
||||
step = 1.0
|
||||
value = 25.0
|
||||
script = ExtResource("6_cx658")
|
||||
|
||||
[connection signal="toggled" from="VBoxContainerButtons/HBoxContainerProgress/CheckButton" to="VBoxContainerButtons/ProgressBar" method="_on_check_button_toggled"]
|
||||
|
|
15
tools/configurator/progress_file.sh
Normal file
15
tools/configurator/progress_file.sh
Normal file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/bash
|
||||
|
||||
progress_file="progress"
|
||||
echo "0" > "$progress_file"
|
||||
|
||||
for ((i=1; i<=100; i++)); do
|
||||
echo -ne "$i" > "$progress_file"
|
||||
# echo $i
|
||||
# sleep 0.1
|
||||
sleep $((RANDOM / 30000))
|
||||
done
|
||||
|
||||
sleep 1
|
||||
|
||||
rm "$progress_file"
|
Loading…
Reference in a new issue