diff --git a/.gitignore b/.gitignore index acf0eb1..1084d09 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ .godot/ .idea/ -*.DotSettings.user diff --git a/Library/UI/LabelLineEdit.cs b/Library/UI/LabelLineEdit.cs index c14e574..54d354f 100644 --- a/Library/UI/LabelLineEdit.cs +++ b/Library/UI/LabelLineEdit.cs @@ -1,45 +1,23 @@ using Godot; using System; -[GlobalClass, Tool] +[GlobalClass] public partial class LabelLineEdit : HBoxContainer { - [Export, Notify] public partial string Label { get; set; } - [Export, Notify] public partial string Text { get; set; } - [Export, Notify] public partial int Spacing { get; set; } - [Export, Notify] public partial bool Password { get; set; } - + #region Exports + #endregion + + #region Nodes private Label _labelNode; private LineEdit _lineEdit; + #endregion public LabelLineEdit() { - Spacing = 4; - } - - [GodotOverride] - private void OnReady() - { - _labelNode ??= new Label(); - _lineEdit ??= new LineEdit(); + _labelNode = new Label(); + _lineEdit = new LineEdit(); _lineEdit.SizeFlagsHorizontal = SizeFlags.ExpandFill; AddChild(_labelNode); AddChild(_lineEdit); - _labelNode.Text = Label; - _lineEdit.Text = Text; - _lineEdit.Secret = Password; - LabelChanged += () => _labelNode.Text = Label; - TextChanged += () => _lineEdit.Text = Text; - PasswordChanged += () => _lineEdit.Secret = Password; - SpacingChanged += () => AddThemeConstantOverride("separation", Spacing); - _lineEdit.TextChanged += async value => - { - var pos = _lineEdit.GetCaretColumn(); - Text = value; - await ToSignal(GetTree(), SceneTree.SignalName.ProcessFrame); - _lineEdit.SetCaretColumn(pos); - }; } - - public override partial void _Ready(); } diff --git a/MediaPortal.csproj b/MediaPortal.csproj index eee961c..06efe92 100644 --- a/MediaPortal.csproj +++ b/MediaPortal.csproj @@ -3,12 +3,11 @@ net8.0 net9.0 true - 13 - + - + \ No newline at end of file diff --git a/TestingInterface.cs b/TestingInterface.cs index 4dc3aae..a9336c9 100644 --- a/TestingInterface.cs +++ b/TestingInterface.cs @@ -1,13 +1,5 @@ using Godot; -[SceneTree(root: "Nodes")] public partial class TestingInterface : Control { - [GodotOverride] - void OnReady() - { - GD.Print("TestingInterface::OnReady"); - } - - public override partial void _Ready(); } diff --git a/TestingInterface.tscn b/TestingInterface.tscn deleted file mode 100644 index f1c0e77..0000000 --- a/TestingInterface.tscn +++ /dev/null @@ -1,49 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://b6v8kn5pjdd1b"] - -[ext_resource type="Script" uid="uid://demxhjphd8gkg" path="res://TestingInterface.cs" id="1_1mh2b"] -[ext_resource type="Script" uid="uid://c3juujxln4m38" path="res://Library/UI/LabelLineEdit.cs" id="2_a7i77"] - -[node name="TestingInterface" type="Control"] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -script = ExtResource("1_1mh2b") - -[node name="VBoxContainer" type="VBoxContainer" parent="."] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="ServerUrl" type="HBoxContainer" parent="VBoxContainer"] -unique_name_in_owner = true -layout_mode = 2 -theme_override_constants/separation = 10 -script = ExtResource("2_a7i77") -Label = "Server URL:" -Spacing = 10 -metadata/_custom_type_script = "uid://c3juujxln4m38" - -[node name="Username" type="HBoxContainer" parent="VBoxContainer"] -unique_name_in_owner = true -layout_mode = 2 -theme_override_constants/separation = 14 -script = ExtResource("2_a7i77") -Label = "Username:" -Spacing = 14 -metadata/_custom_type_script = "uid://c3juujxln4m38" - -[node name="Password" type="HBoxContainer" parent="VBoxContainer"] -unique_name_in_owner = true -layout_mode = 2 -theme_override_constants/separation = 20 -script = ExtResource("2_a7i77") -Label = "Password:" -Spacing = 20 -Password = true -metadata/_custom_type_script = "uid://c3juujxln4m38" diff --git a/project.godot b/project.godot index c51218f..a77dfee 100644 --- a/project.godot +++ b/project.godot @@ -12,8 +12,7 @@ config_version=5 config/name="MediaPortal" config/description="Enter an interesting project description here!" -run/main_scene="uid://b6v8kn5pjdd1b" -config/features=PackedStringArray("4.5", "C#") +config/features=PackedStringArray("4.5") config/icon="res://icon.png" [dotnet]