diff --git a/arrow.gd b/arrow.gd index 62b8033..fb49385 100644 --- a/arrow.gd +++ b/arrow.gd @@ -1,24 +1,33 @@ extends Node2D var label = "label" setget label_set -var target: String setget target_set + +var source: String +var target: String + var repository: Control func _ready(): pass func _process(_delta): - var end = global_position + Vector2(0, 50) + #position = -repository.objects[source].position + position = Vector2(0,0) + + var start = repository.objects[source].position + var end = start + Vector2(0, 30) + if repository and repository.objects.has(target) and repository.objects[target].visible: var t = repository.objects[target] - end = t.global_position + end = t.position $Target.hide() else: $Target.text = target if $Target.text.substr(0, 5) != "refs/": $Target.text = ""#$Target.text.substr(0,8) $Target.show() - $Line.points[1] = (end - global_position)/repository.find_node("Nodes").rect_scale.x + + $Line.points[1] = end - repository.objects[source].position $Label.position = ($Line.points[0] + $Line.points[1])/1.3 $Tip.position = ($Line.points[0] + $Line.points[1])/1.3 $Tip.rotation = PI+$Line.points[0].angle_to($Line.points[1]) @@ -26,6 +35,3 @@ func _process(_delta): func label_set(new_label): label = new_label $Label/ID.text = label - -func target_set(new_target): - target = new_target diff --git a/node.gd b/node.gd index 0d3840e..19276b8 100644 --- a/node.gd +++ b/node.gd @@ -85,6 +85,7 @@ func children_set(new_children): if not children.has(c): var a = arrow.instance() a.label = new_children[c] + a.source = id a.target = c a.repository = repository $Arrows.add_child(a) diff --git a/repository.gd b/repository.gd index d2a0053..1029faa 100644 --- a/repository.gd +++ b/repository.gd @@ -1,16 +1,9 @@ extends Control -export(NodePath) var index_path -onready var index = get_node(index_path) - -export(NodePath) var nodes_path -onready var nodes = get_node(nodes_path) - -export(NodePath) var file_browser_path -onready var file_browser = get_node(file_browser_path) - -export(NodePath) var label_node_path -onready var label_node = get_node(label_node_path) +onready var index = $VSplitContainer/RepoVis/Index +onready var nodes = $VSplitContainer/RepoVis/Nodes +onready var file_browser = $VSplitContainer/FileBrowser +onready var label_node = $VSplitContainer/RepoVis/Label export var label: String setget set_label export var path: String setget set_path, get_path diff --git a/repository.tscn b/repository.tscn index e6565ba..488fe29 100644 --- a/repository.tscn +++ b/repository.tscn @@ -14,10 +14,6 @@ script = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false } -index_path = NodePath("VSplitContainer/RepoVis/Index") -nodes_path = NodePath("VSplitContainer/RepoVis/Nodes") -file_browser_path = NodePath("VSplitContainer/FileBrowser") -label_node_path = NodePath("VSplitContainer/RepoVis/Label") [node name="VSplitContainer" type="VSplitContainer" parent="."] anchor_right = 1.0 diff --git a/sandbox.gd b/sandbox.gd new file mode 100644 index 0000000..6499973 --- /dev/null +++ b/sandbox.gd @@ -0,0 +1,4 @@ +extends Control + +func _ready(): + $HSplitContainer/Repository.path = "/tmp/active" diff --git a/sandbox.tscn b/sandbox.tscn new file mode 100644 index 0000000..30524d1 --- /dev/null +++ b/sandbox.tscn @@ -0,0 +1,55 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://terminal.tscn" type="PackedScene" id=1] +[ext_resource path="res://repository.tscn" type="PackedScene" id=2] +[ext_resource path="res://styles/theme.tres" type="Theme" id=3] +[ext_resource path="res://sandbox.gd" type="Script" id=4] + +[node name="Sandbox" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_right = -960.0 +margin_bottom = -540.0 +rect_scale = Vector2( 2, 2 ) +theme = ExtResource( 3 ) +script = ExtResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Background" type="ColorRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +mouse_filter = 2 +color = Color( 0.0705882, 0.0705882, 0.0705882, 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="HSplitContainer" type="HSplitContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 5.0 +margin_top = 5.0 +margin_right = -5.0 +margin_bottom = -5.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Repository" parent="HSplitContainer" instance=ExtResource( 2 )] +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_right = 469.0 +margin_bottom = 530.0 +size_flags_horizontal = 3 +file_browser_active = false + +[node name="Terminal" parent="HSplitContainer" instance=ExtResource( 1 )] +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 481.0 +margin_right = 950.0 +margin_bottom = 530.0 +size_flags_horizontal = 3 +repository_path = NodePath("../Repository") diff --git a/terminal.tscn b/terminal.tscn index 499f901..91d63b5 100644 --- a/terminal.tscn +++ b/terminal.tscn @@ -17,14 +17,11 @@ corner_radius_top_right = 10 corner_radius_bottom_right = 10 corner_radius_bottom_left = 10 -[node name="Terminal" type="Container"] +[node name="Terminal" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 mouse_filter = 1 script = ExtResource( 2 ) -__meta__ = { -"_edit_use_anchors_": false -} [node name="Control" type="VBoxContainer" parent="."] anchor_right = 1.0 @@ -65,15 +62,19 @@ flat = false align = 0 [node name="ClearButton" type="Button" parent="."] -anchor_left = 0.9 +anchor_left = 1.0 anchor_right = 1.0 -margin_left = -10.0 -margin_top = 10.0 -margin_right = -10.0 +margin_left = -88.0 +margin_top = 5.0 +margin_right = -5.0 +margin_bottom = 36.0 focus_mode = 0 custom_fonts/font = ExtResource( 1 ) enabled_focus_mode = 0 text = "Clear" +__meta__ = { +"_edit_use_anchors_": false +} [node name="TextEditor" parent="." instance=ExtResource( 5 )] visible = false