-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
310 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,286 @@ | ||
### 4.3-stable (official) 77dcf97d8 | ||
|
||
[details="Project Settings"] | ||
###### | ||
```plaintext | ||
config_version: <null> | ||
``` | ||
|
||
###### application | ||
```plaintext | ||
config/name: Project Documentation | ||
run/main_scene: res://addons/project_documentation/documetation_generator_dialog.tscn | ||
config/features: ["4.3", "Mobile"] | ||
``` | ||
|
||
###### editor_plugins | ||
```plaintext | ||
enabled: ["res://addons/project_documentation/plugin.cfg"] | ||
``` | ||
|
||
###### rendering | ||
```plaintext | ||
renderer/rendering_method: mobile | ||
``` | ||
|
||
[/details] | ||
|
||
|
||
#### Scenes | ||
##### res://addons/project_documentation/documetation_generator_dialog.tscn | ||
|
||
[details="Scene Tree"] | ||
```plaintext | ||
DocumentationGeneratorDialog (Window) | ||
VBoxContainer (VBoxContainer) | ||
ExportSceneTree (CheckBox) | ||
ExportSignalConnections (CheckBox) | ||
ExportChangedProperties (CheckBox) | ||
ExportNodeGroups (CheckBox) | ||
ExportScripts (CheckBox) | ||
ExportResources (CheckBox) | ||
ExportShaders (CheckBox) | ||
ExcludedDirectoriesContainer (VBoxContainer) | ||
ExcludedDirectoriesList (VBoxContainer) | ||
AddDirectoryContainer (HBoxContainer) | ||
Label (Label) | ||
AddDirectoryButton (Button) | ||
GenerateButton (Button) | ||
CancelButton (Button) | ||
DirectoryDialog (FileDialog) | ||
``` | ||
[/details] | ||
|
||
[details="Signal Connections"] | ||
```plaintext | ||
None | ||
``` | ||
[/details] | ||
|
||
[details="Nodes"] | ||
###### . (Window) | ||
Script: res://addons/project_documentation/documentation_generator_dialog.gd | ||
Changed Properties: | ||
```gdscript | ||
position = (0, 36) | ||
size = (250, 400) | ||
exclusive = true | ||
``` | ||
|
||
###### ./VBoxContainer (VBoxContainer) | ||
Changed Properties: | ||
```gdscript | ||
custom_minimum_size = (0, 1000) | ||
offset_right = 236 | ||
offset_bottom = 288 | ||
size_flags_horizontal = 3 | ||
size_flags_vertical = 7 | ||
``` | ||
|
||
###### ./VBoxContainer/ExportSceneTree (CheckBox) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
button_pressed = true | ||
text = Export Scene Tree | ||
|
||
``` | ||
|
||
###### ./VBoxContainer/ExportSignalConnections (CheckBox) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
button_pressed = true | ||
text = Export Signal Connections | ||
``` | ||
|
||
###### ./VBoxContainer/ExportChangedProperties (CheckBox) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
button_pressed = true | ||
text = Export Changed Properties | ||
``` | ||
|
||
###### ./VBoxContainer/ExportNodeGroups (CheckBox) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
button_pressed = true | ||
text = Export Node Groups | ||
``` | ||
|
||
###### ./VBoxContainer/ExportScripts (CheckBox) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
button_pressed = true | ||
text = Export Scripts | ||
``` | ||
|
||
###### ./VBoxContainer/ExportResources (CheckBox) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
button_pressed = true | ||
text = Export Resources | ||
``` | ||
|
||
###### ./VBoxContainer/ExportShaders (CheckBox) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
button_pressed = true | ||
text = Export Shaders | ||
``` | ||
|
||
###### ./VBoxContainer/ExcludedDirectoriesContainer (VBoxContainer) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
size_flags_vertical = 5 | ||
``` | ||
|
||
###### ./VBoxContainer/ExcludedDirectoriesContainer/ExcludedDirectoriesList (VBoxContainer) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
``` | ||
|
||
###### ./VBoxContainer/ExcludedDirectoriesContainer/AddDirectoryContainer (HBoxContainer) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
``` | ||
|
||
###### ./VBoxContainer/ExcludedDirectoriesContainer/AddDirectoryContainer/Label (Label) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
text = Exclude: | ||
``` | ||
|
||
###### ./VBoxContainer/ExcludedDirectoriesContainer/AddDirectoryContainer/AddDirectoryButton (Button) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
text = Add Directory | ||
``` | ||
|
||
###### ./VBoxContainer/GenerateButton (Button) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
text = Generate | ||
``` | ||
|
||
###### ./VBoxContainer/CancelButton (Button) | ||
Changed Properties: | ||
```gdscript | ||
layout_mode = 2 | ||
text = Cancel | ||
``` | ||
|
||
###### ./DirectoryDialog (FileDialog) | ||
Changed Properties: | ||
```gdscript | ||
title = Open a Directory | ||
ok_button_text = Select Current Folder | ||
file_mode = 2 | ||
``` | ||
|
||
[/details] | ||
|
||
|
||
|
||
#### Scripts | ||
[details="res://addons/project_documentation/documentation_generator_dialog.gd"] | ||
```gdscript | ||
@tool | ||
extends Window | ||
|
||
var excluded_directories = ["res://addons/"] | ||
|
||
@onready var vbox_container = $VBoxContainer | ||
@onready var excluded_directories_list = $VBoxContainer/ExcludedDirectoriesContainer/ExcludedDirectoriesList | ||
@onready var add_directory_button = $VBoxContainer/ExcludedDirectoriesContainer/AddDirectoryContainer/AddDirectoryButton | ||
@onready var directory_dialog = $DirectoryDialog | ||
|
||
func _ready(): | ||
show() | ||
add_directory_button.connect("pressed", _on_add_directory_button_pressed) | ||
directory_dialog.connect("dir_selected", _on_directory_selected) | ||
update_excluded_directories_list() | ||
call_deferred("adjust_window_size") | ||
|
||
func _on_generate_pressed(): | ||
print("generate pressed") | ||
var options = { | ||
"export_scene_tree": $VBoxContainer/ExportSceneTree.is_pressed(), | ||
"export_signal_connections": $VBoxContainer/ExportSignalConnections.is_pressed(), | ||
"export_changed_properties": $VBoxContainer/ExportChangedProperties.is_pressed(), | ||
"export_node_groups": $VBoxContainer/ExportNodeGroups.is_pressed(), | ||
"export_scripts": $VBoxContainer/ExportScripts.is_pressed(), | ||
"export_resources": $VBoxContainer/ExportResources.is_pressed(), | ||
"export_shaders": $VBoxContainer/ExportShaders.is_pressed(), | ||
"excluded_directories": excluded_directories | ||
} | ||
var doc_generator = preload("res://addons/project_documentation/documentation_generator.gd").new() | ||
doc_generator.set_options(options) | ||
doc_generator.generate() | ||
queue_free() | ||
|
||
func _on_cancel_pressed(): | ||
print("cancel/close pressed") | ||
hide() | ||
|
||
func _on_add_directory_button_pressed(): | ||
directory_dialog.popup_centered(Vector2(400, 300)) | ||
|
||
func _on_directory_selected(dir): | ||
if dir not in excluded_directories: | ||
excluded_directories.append(dir) | ||
update_excluded_directories_list() | ||
adjust_window_size() | ||
|
||
func update_excluded_directories_list(): | ||
for child in excluded_directories_list.get_children(): | ||
child.queue_free() | ||
|
||
for dir in excluded_directories: | ||
var hbox = HBoxContainer.new() | ||
var label = Label.new() | ||
label.text = dir | ||
var delete_button = Button.new() | ||
delete_button.text = "X" | ||
delete_button.connect("pressed", _on_delete_directory.bind(dir)) | ||
|
||
hbox.add_child(label) | ||
hbox.add_child(delete_button) | ||
excluded_directories_list.add_child(hbox) | ||
|
||
func _on_delete_directory(dir): | ||
excluded_directories.erase(dir) | ||
update_excluded_directories_list() | ||
adjust_window_size() | ||
|
||
func adjust_window_size(): | ||
# Wait for one frame to ensure all UI elements are updated | ||
await get_tree().process_frame | ||
|
||
# Calculate the required height | ||
var required_height = vbox_container.get_minimum_size().y + 20 # Add some padding | ||
|
||
# Get the current window size | ||
var current_size = size | ||
|
||
# Set the new window size | ||
size = Vector2(current_size.x, required_height) | ||
|
||
``` | ||
[/details] | ||
|
||
|
||
#### Resources | ||
|
||
#### Shaders |