Skip to content

Commit

Permalink
fix bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
Yogoda committed May 15, 2021
1 parent 96804ee commit 54cb527
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 118 deletions.
2 changes: 1 addition & 1 deletion addons/project_map/plugin.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
name="Project Map"
description="Organize Project Files"
author="Joel Fivat"
version="1.2"
version="1.3"
script="plugin.gd"
82 changes: 37 additions & 45 deletions addons/project_map/pm_comment_node.gd
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
tool
extends CommonNode
extends "res://addons/project_map/pm_common_node.gd"

var icon = NodePath("MarginContainer/HBox/Icon")

export(String) var comment_text = "Comment \n\n Use the handle to resize"
export(Vector2) var comment_rect = Vector2(400, 200)

onready var text_node = get_node("MarginContainer/HBox/TextBox")

var last_text:String = ""

func _enter_tree():

connect("resize_request", self, "_on_GraphNode_resize_request")
Expand All @@ -14,6 +18,9 @@ func _enter_tree():
connect("mouse_entered", self, "_on_Node_mouse_entered")
connect("mouse_exited", self, "_on_Node_mouse_exited")

rect_min_size = Vector2(50,50)
rect_size = Vector2(50,50)

func _on_Node_mouse_entered():

resizable = true
Expand All @@ -26,8 +33,10 @@ func _on_Node_mouse_exited():

func _ready():

get_node("MarginContainer/HBox/TextBox").text = comment_text
text_node.text = comment_text

resize(comment_rect)

snap = false
pass

Expand All @@ -37,57 +46,23 @@ func init():

func resize(size):

rect_min_size = size
rect_size = size
comment_rect = size

$MarginContainer.rect_min_size = Vector2(comment_rect.x - 60, comment_rect.y - 40)
$MarginContainer.rect_size = Vector2(comment_rect.x - 60, comment_rect.y - 40)

rect_min_size = comment_rect
rect_size = comment_rect

get_parent().dirty = true

$MarginContainer.rect_min_size = Vector2(size.x - 60, size.y - 40)

func _on_GraphNode_resize_request(new_minsize:Vector2):

resize(new_minsize)

comment_rect = new_minsize
get_parent().dirty = true

##drag the group node using the icon
#func _on_Icon_gui_input(event):
#
# #click node
# if event is InputEventMouseButton and event.button_index == BUTTON_LEFT:
#
# #drag start
# if event.pressed:
#
# selected = true
# drag_start = offset
# mouse_drag_start = get_local_mouse_position()
# dragging = true
#
# #reorder nodes so selected group is on top of other groups
# raise()
#
# for node in get_parent().get_children():
# if node is file_node_script:
# node.raise()
#
# else:
## print("drag stopped")
# emit_signal("end_node_move")
# dragging = false
## drag_start = null
#
# accept_event()
#
# #drag selected node
# elif dragging and event is InputEventMouseMotion:
#
## var offset_ori = offset
# offset += get_local_mouse_position() - mouse_drag_start
## offset = get_parent().snap(offset)
#
# get_parent().dirty = true
# accept_event()


func _on_TextBox_mouse_entered():
_on_Node_mouse_entered()
Expand All @@ -101,3 +76,20 @@ func _on_TextBox_text_changed():

comment_text = get_node("MarginContainer/HBox/TextBox").text
get_parent().dirty = true


func _on_TextBox_focus_exited():

var undo_redo:UndoRedo = get_parent().undo_redo

undo_redo.create_action("Change text")

undo_redo.add_do_property(text_node, "text", text_node.text)
undo_redo.add_undo_property(text_node, "text", last_text)

undo_redo.commit_action()


func _on_TextBox_focus_entered():
last_text = text_node.text

18 changes: 10 additions & 8 deletions addons/project_map/pm_comment_node.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
[ext_resource path="res://addons/project_map/pm_comment_node.gd" type="Script" id=1]
[ext_resource path="res://addons/project_map/comment_focus.stylebox" type="StyleBox" id=3]

[sub_resource type="StyleBoxEmpty" id=4]
[sub_resource type="StyleBoxEmpty" id=6]

[sub_resource type="StyleBoxEmpty" id=5]
[sub_resource type="StyleBoxEmpty" id=7]

[sub_resource type="Image" id=9]
[sub_resource type="Image" id=11]
data = {
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
"format": "LumAlpha8",
Expand All @@ -16,10 +16,10 @@ data = {
"width": 16
}

[sub_resource type="ImageTexture" id=7]
[sub_resource type="ImageTexture" id=10]
flags = 4
flags = 4
image = SubResource( 9 )
image = SubResource( 11 )
size = Vector2( 16, 16 )

[sub_resource type="StyleBoxEmpty" id=8]
Expand All @@ -28,8 +28,8 @@ size = Vector2( 16, 16 )
margin_right = 400.0
margin_bottom = 200.0
rect_min_size = Vector2( 400, 200 )
custom_styles/commentfocus = SubResource( 4 )
custom_styles/comment = SubResource( 5 )
custom_styles/commentfocus = SubResource( 6 )
custom_styles/comment = SubResource( 7 )
comment = true
slot/0/left_enabled = false
slot/0/left_type = 0
Expand Down Expand Up @@ -60,7 +60,7 @@ margin_bottom = 28.0
rect_min_size = Vector2( 20, 28 )
size_flags_horizontal = 0
size_flags_vertical = 0
texture = SubResource( 7 )
texture = SubResource( 10 )
stretch_mode = 4

[node name="TextBox" type="TextEdit" parent="MarginContainer/HBox"]
Expand All @@ -76,6 +76,8 @@ text = "Comment
wrap_enabled = true

[connection signal="gui_input" from="MarginContainer/HBox/Icon" to="." method="_on_Icon_gui_input"]
[connection signal="focus_entered" from="MarginContainer/HBox/TextBox" to="." method="_on_TextBox_focus_entered"]
[connection signal="focus_exited" from="MarginContainer/HBox/TextBox" to="." method="_on_TextBox_focus_exited"]
[connection signal="mouse_entered" from="MarginContainer/HBox/TextBox" to="." method="_on_TextBox_mouse_entered"]
[connection signal="mouse_exited" from="MarginContainer/HBox/TextBox" to="." method="_on_TextBox_mouse_exited"]
[connection signal="text_changed" from="MarginContainer/HBox/TextBox" to="." method="_on_TextBox_text_changed"]
4 changes: 1 addition & 3 deletions addons/project_map/pm_common_node.gd
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,15 @@ func _on_Icon_gui_input(event):
node.raise()

else:
# print("drag stopped")

emit_signal("end_node_move")
dragging = false
# drag_start = null

accept_event()

#drag selected node
elif dragging and event is InputEventMouseMotion:

# var offset_ori = offset
offset += get_local_mouse_position() - mouse_drag_start

if snap:
Expand Down
77 changes: 20 additions & 57 deletions addons/project_map/pm_group_node.gd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
tool
extends CommonNode
extends "res://addons/project_map/pm_common_node.gd"

export(String) var group_name = "Group (click to edit)"

Expand All @@ -21,16 +21,12 @@ func _enter_tree():
get_node(header).text = group_name


func _ready():

#need to wait for group position to be set
yield(get_tree(), "idle_frame")
children = get_group_nodes()


func init():
pass

func set_children():

children = get_group_nodes()

func _on_GraphNode_resize_request(new_minsize:Vector2):

Expand Down Expand Up @@ -98,53 +94,20 @@ func on_file_node_moved(node):
if children.has(node):
children.erase(node)


##drag the group node using the icon
#func _on_Icon_gui_input(event):
#
# #click node
# if event is InputEventMouseButton and event.button_index == BUTTON_LEFT:
#
# #drag start
# if event.pressed:
#
# selected = true
# drag_offset = get_local_mouse_position() #event.position
#
# #reorder nodes so selected group is on top of other groups
# raise()
#
# for node in get_parent().get_children():
# if node is file_node_script:
# node.raise()
#
# else:
# drag_offset = null
#
# accept_event()
#
# #drag selected node
# elif drag_offset and event is InputEventMouseMotion:
#
# var offset_ori = offset
# offset += get_local_mouse_position() - drag_offset
# offset = get_parent().snap(offset)
#
# #move selected nodes
## for node in get_parent().get_children():
##
## if node is GraphNode and node.selected:
##
## if node == self:
## continue
##
## node.offset += offset - offset_ori
#
# #move group nodes, don't if shift or alt is pressed
# if not (Input.is_key_pressed(KEY_ALT) or Input.is_key_pressed(KEY_SHIFT)):
#
# for node in children:
# node.offset += offset - offset_ori
#
# get_parent().dirty = true
# accept_event()
func _on_Icon_gui_input(event):

var offset_ori = offset

._on_Icon_gui_input(event)

if dragging and event is InputEventMouseMotion:

#move group nodes, don't if shift or alt is pressed
if not (Input.is_key_pressed(KEY_ALT) or Input.is_key_pressed(KEY_SHIFT)):

for node in children:
node.offset += offset - offset_ori #offset - drag_start

pass

9 changes: 5 additions & 4 deletions addons/project_map/project_map.gd
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var file_node = preload("res://addons/project_map/pm_file_node.tscn")
var file_node_script = preload("res://addons/project_map/pm_file_node.gd")
var group_node = preload("res://addons/project_map/pm_group_node.tscn")
var group_node_script = preload("res://addons/project_map/pm_group_node.gd")
var common_node_script = preload("res://addons/project_map/pm_common_node.gd")

var comment_node = preload("res://addons/project_map/pm_comment_node.tscn")
var comment_node_script = preload("res://addons/project_map/pm_comment_node.gd")
Expand Down Expand Up @@ -44,9 +45,6 @@ func _enter_tree():
file_system_dock.connect("file_removed", self, "_on_file_removed")
file_system_dock.connect("files_moved", self, "_on_file_moved")

#func _get_unique_id():
#
# return OS.get_ticks_msec()

#snap vector to grid
func snap(pos:Vector2):
Expand Down Expand Up @@ -75,8 +73,11 @@ func _ready():

for node in get_children():

if node is CommonNode:
if node is common_node_script:
node.connect("end_node_move", self, "_on_end_node_move")

if node is group_node_script:
node.set_children()


func _on_file_removed(file_path):
Expand Down

0 comments on commit 54cb527

Please sign in to comment.