BlogPosts are now WebNodes aswell.

This commit is contained in:
Relintai 2022-08-23 22:33:18 +02:00
parent 73f70bebc3
commit a29a0ee2bb
6 changed files with 31 additions and 27 deletions

View File

@ -1,14 +1,9 @@
[gd_scene load_steps=5 format=2]
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Main.gd" type="Script" id=1]
[ext_resource path="res://addons/web_blog/classes/WebBlog.gd" type="Script" id=2]
[ext_resource path="res://addons/web_blog/classes/WebBlogPost.gd" type="Script" id=3]
[sub_resource type="Resource" id=1]
script = ExtResource( 3 )
post_name = "BlogTest"
entries = [ ]
[node name="WebServer" type="WebServerSimple"]
script = ExtResource( 1 )
@ -21,4 +16,9 @@ data = "<a href=\"/blog\">Blog</a>"
[node name="WebBlog" type="WebNode" parent="WebRoot"]
uri_segment = "blog"
script = ExtResource( 2 )
posts = [ SubResource( 1 ) ]
[node name="asdasd" type="WebNode" parent="WebRoot/WebBlog"]
script = ExtResource( 3 )
[node name="Aqqdss" type="WebNode" parent="WebRoot/WebBlog"]
script = ExtResource( 3 )

View File

@ -2,13 +2,18 @@ tool
extends WebNode
class_name WebBlog, "res://addons/web_blog/icons/icon_web_blog.svg"
export(Array, Resource) var posts : Array
func add_post(post : WebBlogPost) -> void:
posts.push_back(post)
if (get_child_count() > 0):
add_child_below_node(get_child(0), post)
move_child(get_child(1), 0)
else:
add_child(post)
if Engine.editor_hint:
post.owner = get_tree().edited_scene_root
func remove_post(post : WebBlogPost) -> void:
posts.erase(post)
remove_child(post)
# Temp hack for undoredo
func null_method() -> void:

View File

@ -1,6 +1,5 @@
tool
extends Resource
extends WebNode
class_name WebBlogPost, "res://addons/web_blog/icons/icon_web_blog_post.svg"
export(String) var post_name : String = "BlogPost"
export(Array, Resource) var entries : Array

View File

@ -6,17 +6,17 @@ var undo_redo : UndoRedo = null
func set_post(post : WebBlogPost):
_post = post
get_node("HBoxContainer/PostNameLE").text = post.post_name
name = post.post_name
get_node("HBoxContainer/PostNameLE").text = post.name
name = post.name
func _on_PostNameLE_text_entered(new_text : String):
var le : LineEdit = get_node("HBoxContainer/PostNameLE")
undo_redo.create_action("Post name changed.")
undo_redo.add_do_property(_post, "post_name", new_text)
undo_redo.add_undo_property(_post, "post_name", _post.post_name)
undo_redo.add_do_property(_post, "name", new_text)
undo_redo.add_undo_property(_post, "name", _post.name)
undo_redo.add_do_property(le, "text", new_text)
undo_redo.add_undo_property(le, "text", _post.post_name)
undo_redo.add_undo_property(le, "text", _post.name)
undo_redo.add_do_property(self, "name", new_text)
undo_redo.add_undo_property(self, "name", _post.post_name)
undo_redo.add_undo_property(self, "name", _post.name)
undo_redo.commit_action()

View File

@ -36,19 +36,19 @@ func _on_blog_editor_button_toggled(on):
_wne_tool_bar_button.set_pressed_no_signal(true)
func _edited_node_changed(web_node : WebNode):
_edited_blog = web_node
if !_wne_tool_bar_button:
return
var wne : Control = Engine.get_global("WebNodeEditor")
if wne:
if web_node is WebBlog:
_edited_blog = web_node
_wne_tool_bar_button.show()
_wne_tool_bar_button.pressed = true
#wne.switch_to_main_screen_tab(self)
else:
_wne_tool_bar_button.hide()
#_edited_blog = null
#add method to switch off to the prev screen
#wne.switch_to_main_screen_tab(self)
@ -66,8 +66,8 @@ func _on_new_post_requested():
get_node("./Tabs").add_child(nps)
# Hack for now. Todo add support for this into UndoRedo without hacks
undo_redo.create_action("Created WebBlog Post")
undo_redo.add_do_method(_edited_blog, "null_method")
undo_redo.add_undo_method(_edited_blog, "null_method")
undo_redo.commit_action()
# undo_redo.create_action("Created WebBlog Post")
# undo_redo.add_do_method(_edited_blog, "null_method")
# undo_redo.add_undo_method(_edited_blog, "null_method")
# undo_redo.commit_action()

View File

@ -14,7 +14,7 @@ _global_script_classes=[ {
"language": @"GDScript",
"path": "res://addons/web_blog/classes/WebBlog.gd"
}, {
"base": "Resource",
"base": "WebNode",
"class": @"WebBlogPost",
"language": @"GDScript",
"path": "res://addons/web_blog/classes/WebBlogPost.gd"