Split the web page addon to 2.

This commit is contained in:
Relintai 2022-08-25 02:07:31 +02:00
parent 2170b1a8d7
commit 5b16ee72be
15 changed files with 102 additions and 14 deletions

View File

@ -1,7 +1,8 @@
[gd_scene load_steps=3 format=2] [gd_scene load_steps=4 format=2]
[ext_resource path="res://Main.gd" type="Script" id=1] [ext_resource path="res://Main.gd" type="Script" id=1]
[ext_resource path="res://addons/web_pages/classes/WebPage.gd" type="Script" id=2] [ext_resource path="res://addons/web_pages/classes/WebPage.gd" type="Script" id=2]
[ext_resource path="res://addons/web_pages/classes/WebPageList.gd" type="Script" id=3]
[node name="WebServer" type="WebServerSimple"] [node name="WebServer" type="WebServerSimple"]
script = ExtResource( 1 ) script = ExtResource( 1 )
@ -14,3 +15,6 @@ data = "<a href=\"/blog\">Blog</a>"
[node name="WebPage" type="WebNode" parent="WebRoot"] [node name="WebPage" type="WebNode" parent="WebRoot"]
script = ExtResource( 2 ) script = ExtResource( 2 )
[node name="WebPageList" type="WebNode" parent="WebRoot"]
script = ExtResource( 3 )

View File

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=2] [gd_scene load_steps=2 format=2]
[ext_resource path="res://addons/web_pages/editor/PageListEntry.gd" type="Script" id=1] [ext_resource path="res://addons/web_page_list/editor/PageListEntry.gd" type="Script" id=1]
[node name="PostEntry" type="PanelContainer"] [node name="PostEntry" type="PanelContainer"]
margin_right = 1016.0 margin_right = 1016.0

View File

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=2] [gd_scene load_steps=2 format=2]
[ext_resource path="res://addons/web_pages/editor/Posts.gd" type="Script" id=1] [ext_resource path="res://addons/web_page_list/editor/Pages.gd" type="Script" id=1]
[node name="Posts" type="VBoxContainer"] [node name="Posts" type="VBoxContainer"]
anchor_right = 1.0 anchor_right = 1.0
@ -24,6 +24,7 @@ size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
[node name="OutsideVBC" type="VBoxContainer" parent="ScrollContainer"] [node name="OutsideVBC" type="VBoxContainer" parent="ScrollContainer"]
margin_right = 1016.0
margin_bottom = 4.0 margin_bottom = 4.0
size_flags_horizontal = 3 size_flags_horizontal = 3

View File

@ -1,9 +1,9 @@
[gd_scene load_steps=3 format=2] [gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/web_pages/editor/WebPageListEditor.gd" type="Script" id=1] [ext_resource path="res://addons/web_page_list/editor/WebPageListEditor.gd" type="Script" id=1]
[ext_resource path="res://addons/web_pages/editor/Posts.tscn" type="PackedScene" id=3] [ext_resource path="res://addons/web_page_list/editor/Pages.tscn" type="PackedScene" id=2]
[node name="WebBlogEditor" type="PanelContainer"] [node name="WebPostListEditor" type="PanelContainer"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
script = ExtResource( 1 ) script = ExtResource( 1 )
@ -16,6 +16,6 @@ margin_bottom = 593.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
[node name="Posts" parent="Tabs" instance=ExtResource( 3 )] [node name="Posts" parent="Tabs" instance=ExtResource( 2 )]
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3

View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -2,15 +2,15 @@
importer="texture" importer="texture"
type="StreamTexture" type="StreamTexture"
path="res://.import/icon_web_page_list.svg-96073753265e9704b2646a0bc324f643.stex" path="res://.import/icon_web_page_list.svg-88b78d49287add5e57b6b6075a062b75.stex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://addons/web_pages/icons/icon_web_page_list.svg" source_file="res://addons/web_page_list/icons/icon_web_page_list.svg"
dest_files=[ "res://.import/icon_web_page_list.svg-96073753265e9704b2646a0bc324f643.stex" ] dest_files=[ "res://.import/icon_web_page_list.svg-88b78d49287add5e57b6b6075a062b75.stex" ]
[params] [params]

View File

@ -0,0 +1,12 @@
[plugin]
name="Web Page List"
description=""
author="Relintai"
version="1.0"
script="plugin.gd"

View File

@ -0,0 +1,21 @@
tool
extends EditorPlugin
var web_pages_editor : Control = null
func _enter_tree():
var wbes : PackedScene = ResourceLoader.load("res://addons/web_page_list/editor/WebPageListEditor.tscn")
web_pages_editor = wbes.instance()
web_pages_editor.undo_redo = get_undo_redo()
var wne : Control = Engine.get_global("WebNodeEditor")
if wne:
wne.add_main_screen_tab(web_pages_editor)
func _exit_tree():
var wne : Control = Engine.get_global("WebNodeEditor")
if wne:
wne.remove_main_screen_tab(web_pages_editor)
func get_plugin_name() -> String:
return "WebPageListEditorPlugin"

View File

@ -1,6 +1,6 @@
tool tool
extends WebNode extends WebNode
class_name WebPageList, "res://addons/web_pages/icons/icon_web_page_list.svg" class_name WebPageList, "res://addons/web_page_list/icons/icon_web_page_list.svg"
func add_post(post : WebPage) -> void: func add_post(post : WebPage) -> void:
if (get_child_count() > 0): if (get_child_count() > 0):

View File

@ -1,6 +1,8 @@
tool tool
extends VBoxContainer extends VBoxContainer
var _wne_tool_bar_button : Button = null
var _post : WebPage = null var _post : WebPage = null
var undo_redo : UndoRedo = null var undo_redo : UndoRedo = null
@ -25,3 +27,51 @@ func _notification(what):
if what == NOTIFICATION_INSTANCED: if what == NOTIFICATION_INSTANCED:
var le : LineEdit = get_node("HBoxContainer/PostNameLE") var le : LineEdit = get_node("HBoxContainer/PostNameLE")
le.connect("text_entered", self, "_on_PostNameLE_text_entered") le.connect("text_entered", self, "_on_PostNameLE_text_entered")
elif what == NOTIFICATION_ENTER_TREE:
var wne : Control = Engine.get_global("WebNodeEditor")
if wne:
_wne_tool_bar_button = Button.new()
_wne_tool_bar_button.set_text("Blog Editor")
_wne_tool_bar_button.set_tooltip("HTML preview")
_wne_tool_bar_button.set_toggle_mode(true)
_wne_tool_bar_button.set_pressed(false)
_wne_tool_bar_button.set_button_group(wne.get_main_button_group())
_wne_tool_bar_button.set_keep_pressed_outside(true)
wne.add_control_to_tool_bar(_wne_tool_bar_button)
_wne_tool_bar_button.connect("toggled", self, "_on_blog_editor_button_toggled")
wne.connect("edited_node_changed", self, "_edited_node_changed")
elif what == NOTIFICATION_EXIT_TREE:
if _wne_tool_bar_button:
_wne_tool_bar_button.queue_free()
_wne_tool_bar_button = null
var wne : Control = Engine.get_global("WebNodeEditor")
if wne:
wne.disconnect("edited_node_changed", self, "_edited_node_changed")
func _on_blog_editor_button_toggled(on):
if on:
var wne : Control = Engine.get_global("WebNodeEditor")
if wne:
wne.switch_to_main_screen_tab(self)
_wne_tool_bar_button.set_pressed_no_signal(true)
func _edited_node_changed(web_node : WebNode):
if !_wne_tool_bar_button:
return
var wne : Control = Engine.get_global("WebNodeEditor")
if wne:
if web_node is WebPage:
_post = 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()
#_post = null
#add method to switch off to the prev screen
#wne.switch_to_main_screen_tab(self)

View File

@ -4,7 +4,7 @@ extends EditorPlugin
var web_pages_editor : Control = null var web_pages_editor : Control = null
func _enter_tree(): func _enter_tree():
var wbes : PackedScene = ResourceLoader.load("res://addons/web_pages/editor/WebPageListEditor.tscn") var wbes : PackedScene = ResourceLoader.load("res://addons/web_pages/editor/PageEditor.tscn")
web_pages_editor = wbes.instance() web_pages_editor = wbes.instance()
web_pages_editor.undo_redo = get_undo_redo() web_pages_editor.undo_redo = get_undo_redo()
@ -18,4 +18,4 @@ func _exit_tree():
wne.remove_main_screen_tab(web_pages_editor) wne.remove_main_screen_tab(web_pages_editor)
func get_plugin_name() -> String: func get_plugin_name() -> String:
return "WebBlogEditorPlugin" return "WebPageEditorPlugin"

View File

@ -33,7 +33,7 @@ _global_script_class_icons={
@"WebPage": "res://addons/web_pages/icons/icon_web_page.svg", @"WebPage": "res://addons/web_pages/icons/icon_web_page.svg",
@"WebPageEntryTitleText": "res://addons/web_pages/icons/icon_web_page_entry_title_text.svg", @"WebPageEntryTitleText": "res://addons/web_pages/icons/icon_web_page_entry_title_text.svg",
@"WebPageEntry": "res://addons/web_pages/icons/icon_web_page_entry.svg", @"WebPageEntry": "res://addons/web_pages/icons/icon_web_page_entry.svg",
@"WebPageList": "res://addons/web_pages/icons/icon_web_page_list.svg" @"WebPageList": "res://addons/web_page_list/icons/icon_web_page_list.svg"
} }
[application] [application]