Put tiny 2D worlds into all the commits

This commit is contained in:
blinry 2020-11-18 21:19:16 +01:00
parent 0ba806108f
commit ca09ad0245
6 changed files with 41 additions and 36 deletions

View file

@ -47,10 +47,10 @@ func _input(event):
get_tree().set_input_as_handled()
func clear():
pass
for item in world.get_children():
if item.label != "":
item.queue_free()
if world:
for item in world.get_children():
if item.label != "":
item.queue_free()
func substr2(s):
return s.substr(2)
@ -142,32 +142,17 @@ func update():
FileBrowserMode.COMMIT:
if commit:
var files = Array(commit.repository.shell.run("git ls-tree --name-only -r %s" % commit.id).split("\n"))
# The last entry is an empty string, remove it.
files.pop_back()
for file_path in files:
var item = preload("res://scenes/file_browser_item.tscn").instance()
item.label = file_path
item.connect("clicked", self, "item_clicked")
#grid.add_child(item)
FileBrowserMode.INDEX:
#var is_visible = false
if repository and repository.there_is_a_git():
var index_files = Array(repository.shell.run("git ls-files -s | cut -f2 | uniq").split("\n"))
var deleted_files = Array(repository.shell.run("git status -s | grep '^D' | sed 's/^...//'").split("\n"))
# The last entries are empty strings, remove them.
index_files.pop_back()
deleted_files.pop_back()
var files = index_files + deleted_files
for file_path in files:
var item = preload("res://scenes/file_browser_item.tscn").instance()
item.label = file_path
item.connect("clicked", self, "item_clicked")
item.status = get_file_status(file_path, repository.shell, 0)
#grid.add_child(item)
#if item.status != item.IconStatus.NONE:
# is_visible = true
#visible = is_visible
if shell.run("test -d .git && echo yes || echo no") == "yes\n":
var files = Array(shell.run("git ls-tree --name-only -r %s" % commit.id).split("\n"))
# The last entry is an empty string, remove it.
files.pop_back()
for file_path in files:
var item = preload("res://scenes/item.tscn").instance()
item.label = file_path
item.item_type = "head"
item.type = "nothing"
item.file_browser = self
world.add_child(item)
func get_file_status(file_path, the_shell, idx):
var file_status = the_shell.run("git status -s '%s'" % file_path)
@ -228,7 +213,8 @@ func save():
func _set_commit(new_commit):
commit = new_commit
update()
#update()
shell = commit.repository.shell
func _set_mode(new_mode):
mode = new_mode

View file

@ -48,6 +48,7 @@ __meta__ = {
}
[node name="Title" type="Label" parent="Panel/Margin/Rows"]
visible = false
margin_right = 1904.0
margin_bottom = 29.0
text = "title"
@ -73,7 +74,6 @@ margin_bottom = 50.0
text = "dir"
[node name="World" type="Control" parent="Panel/Margin/Rows"]
margin_top = 29.0
margin_right = 1904.0
margin_bottom = 1064.0
mouse_filter = 1

View file

@ -36,9 +36,14 @@ func read_from_file():
modulate = Color(0, 0, 1.0)
$Sprite.scale = Vector2(0.75, 0.75)
"head":
content = file_browser.shell.run("git show HEAD:'%s'" % label)
modulate = Color(0, 0, 0, 0.2)
$Sprite.scale = Vector2(0.8, 0.8)
var commit = "HEAD"
if file_browser.commit:
commit = file_browser.commit.id
else:
modulate = Color(0, 0, 0, 0.2)
$Sprite.scale = Vector2(0.8, 0.8)
content = file_browser.shell.run("git show %s:'%s'" % [commit, label])
attributes = helpers.parse(content)
position.x = int(attributes["x"])

View file

@ -15,6 +15,7 @@ var hovered = false
var arrow = preload("res://scenes/arrow.tscn")
func _ready():
$FileBrowser.hide()
content_set(content)
type_set(type)
if not repository.simplified_view or (type != "tree" and type != "blob"):
@ -75,6 +76,7 @@ func type_set(new_type):
$Sprite.texture = preload("res://nodes/tree.svg")
"commit":
$Sprite.texture = preload("res://nodes/commit.svg")
$FileBrowser.show()
"tag":
$Sprite.texture = preload("res://nodes/blob.svg")
"ref":

View file

@ -1,8 +1,9 @@
[gd_scene load_steps=8 format=2]
[gd_scene load_steps=9 format=2]
[ext_resource path="res://fonts/default.tres" type="DynamicFont" id=1]
[ext_resource path="res://scenes/node.gd" type="Script" id=2]
[ext_resource path="res://nodes/blob.svg" type="Texture" id=3]
[ext_resource path="res://scenes/file_browser.tscn" type="PackedScene" id=4]
[ext_resource path="res://nodes/pop.wav" type="AudioStream" id=5]
[ext_resource path="res://scenes/drop_area.tscn" type="PackedScene" id=6]
@ -80,6 +81,15 @@ custom_colors/font_color = Color( 1, 1, 1, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="FileBrowser" parent="." instance=ExtResource( 4 )]
margin_left = -21.0
margin_top = -20.0
margin_right = 578.0
margin_bottom = 559.0
rect_min_size = Vector2( 0, 0 )
rect_scale = Vector2( 0.07, 0.07 )
mouse_filter = 2
[connection signal="mouse_entered" from="Rect" to="." method="_on_hover"]
[connection signal="mouse_exited" from="Rect" to="." method="_on_unhover"]
[connection signal="mouse_entered" from="Area2D" to="." method="_on_hover"]

View file

@ -107,6 +107,8 @@ func update_objects():
for p in commit_parents(o):
c[p] = ""
n.children = c
n.find_node("FileBrowser").mode = n.find_node("FileBrowser").FileBrowserMode.COMMIT
n.find_node("FileBrowser").commit = n
_commit_count += 1
# if _commit_count >= 3 and not simplified_view: