Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions addons/flexible_layout/flexible_layout.gd
Original file line number Diff line number Diff line change
Expand Up @@ -542,11 +542,14 @@ class FlexWindow:
var overlay : Control

func _init(main_control : Control, first_panel : Control = null):
content_scale_factor = main_control.get_window().content_scale_factor
if OS.get_name() == "macOS":
unfocusable = true
if not main_control.get_window().gui_embed_subwindows:
content_scale_factor = main_control.get_window().content_scale_factor
if OS.get_name() == "macOS":
unfocusable = true
if first_panel:
position = Vector2i(first_panel.get_global_rect().position*content_scale_factor)+first_panel.get_window().position
position = Vector2i(first_panel.get_global_rect().position*content_scale_factor)
if not main_control.get_window().gui_embed_subwindows:
position += first_panel.get_window().position
size = first_panel.size*content_scale_factor
panel = Control.new()
add_child(panel)
Expand Down
2 changes: 0 additions & 2 deletions addons/material_maker/engine/nodes/gen_sdf.gd
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,4 @@ func edit(node, tab : String = "") -> void:
edit_window.set_sdf_scene(scene)
edit_window.connect("node_changed", Callable(node, "update_sdf_generator"))
edit_window.connect("editor_window_closed", Callable(node, "finalize_generator_update"))
edit_window.get_window().content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
edit_window.get_window().min_size = Vector2(800, 400) * edit_window.get_window().content_scale_factor
edit_window.popup_centered()
2 changes: 1 addition & 1 deletion addons/material_maker/engine/nodes/gen_shader.gd
Original file line number Diff line number Diff line change
Expand Up @@ -817,7 +817,7 @@ func do_edit(node, edit_window_scene : PackedScene, tab : String = "") -> void:
mm_globals.main_window.add_dialog(edit_window)
edit_window.set_model_data(get_shader_model_for_edit())
edit_window.node_changed.connect(node.update_shader_generator)
edit_window.get_window().content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
edit_window.get_window().content_scale_factor = mm_globals.ui_scale_factor()
edit_window.get_window().min_size = Vector2(950, 450) * edit_window.get_window().content_scale_factor
edit_window.hide()
edit_window.popup_centered()
Expand Down
2 changes: 1 addition & 1 deletion addons/material_maker/sdf_builder/sdf_builder.tscn
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_scene load_steps=80 format=3 uid="uid://bvsuo5y7vh1y2"]
[gd_scene load_steps=89 format=3 uid="uid://bvsuo5y7vh1y2"]

[ext_resource type="Script" uid="uid://d16yu8rdgx4hx" path="res://addons/material_maker/sdf_builder/sdf2d/shapes/circle.gd" id="1"]
[ext_resource type="Script" uid="uid://c5mnqww2iagdf" path="res://addons/material_maker/sdf_builder/sdf_builder.gd" id="2"]
Expand Down
9 changes: 7 additions & 2 deletions material_maker/globals.gd
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ const DEFAULT_CONFIG : Dictionary = {
dialog_dim_background = true,
node_minimize_button = false,
node_close_button = false,
ui_single_window_mode = false,
}


Expand Down Expand Up @@ -180,8 +181,7 @@ func popup_menu(menu : PopupMenu, parent : Control):
var zoom_fac = 1.0
if parent is GraphNode:
zoom_fac *= mm_globals.main_window.get_current_graph_edit().zoom

var content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
var content_scale_factor = mm_globals.ui_scale_factor()
menu.popup(Rect2(parent.get_local_mouse_position()*content_scale_factor*zoom_fac + parent.get_screen_position(), Vector2(0, 0)))

func set_tip_text(tip : String, timeout : float = 0.0, priority: int = 0):
Expand Down Expand Up @@ -228,3 +228,8 @@ func get_node_title_from_gen(generator : MMGenBase) -> String:
var gnode : GraphNode = graph.get_node(node_path)
return gnode.title.to_snake_case()
return "unnamed"

func ui_scale_factor() -> float:
if get_tree().root.gui_embed_subwindows:
return 1.0
return get_tree().root.content_scale_factor
12 changes: 7 additions & 5 deletions material_maker/main_window.gd
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,6 @@ func _ready() -> void:
get_window().borderless = false
get_window().transparent = false
get_window().grab_focus()
get_window().gui_embed_subwindows = false

get_window().close_requested.connect(self.on_close_requested)

Expand Down Expand Up @@ -337,6 +336,9 @@ func on_config_changed() -> void:
if c.has_method("update"):
c.update()

if not get_window().gui_embed_subwindows:
get_window().gui_embed_subwindows = mm_globals.get_config("ui_single_window_mode")

func get_panel(panel_name : String) -> Control:
return layout.get_panel(panel_name)

Expand Down Expand Up @@ -996,7 +998,7 @@ func edit_save_selection() -> void:

func edit_preferences() -> void:
var dialog = load("res://material_maker/windows/preferences/preferences.tscn").instantiate()
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
dialog.content_scale_factor = mm_globals.ui_scale_factor()
dialog.edit_preferences(mm_globals.config)

func edit_align_start() -> void:
Expand Down Expand Up @@ -1091,7 +1093,7 @@ func add_selection_to_library(index: int, should_ask_item_name: bool = true, upd
current_item_name = library.get_selected_item_name()
if should_ask_item_name:
var dialog = preload("res://material_maker/windows/line_dialog/line_dialog.tscn").instantiate()
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
dialog.content_scale_factor = mm_globals.ui_scale_factor()
dialog.min_size = Vector2(250, 90) * dialog.content_scale_factor
add_child(dialog)
var status = await dialog.enter_text("New library element", "Select a name for the new library element", current_item_name)
Expand All @@ -1118,7 +1120,7 @@ func create_menu_add_brush_to_library(menu : MMMenuManager.MenuBase) -> void:

func add_brush_to_library(index) -> void:
var dialog = preload("res://material_maker/windows/line_dialog/line_dialog.tscn").instantiate()
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
dialog.content_scale_factor = mm_globals.ui_scale_factor()
dialog.min_size = Vector2(250, 90) * dialog.content_scale_factor
add_child(dialog)
var status = await dialog.enter_text("New library element", "Select a name for the new library element", brushes.get_selected_item_name())
Expand Down Expand Up @@ -1330,7 +1332,7 @@ func generate_graph_screenshot():
graph_edit.zoom = 1
await get_tree().process_frame
var graph_edit_rect = graph_edit.get_global_rect()
var scale_factor : float = get_window().content_scale_factor
var scale_factor : float = mm_globals.ui_scale_factor()
graph_edit_rect = Rect2(graph_edit_rect.position+Vector2(15, 80), graph_edit_rect.size-Vector2(25, 90))
graph_edit_rect = Rect2(scale_factor*graph_edit_rect.position, scale_factor*graph_edit_rect.size)
var graph_rect = null
Expand Down
2 changes: 1 addition & 1 deletion material_maker/nodes/base.gd
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ func _on_menu_id_pressed(id : int) -> void:
status.append({ ok=false, message="The following outputs do not have a short and a long description: "+", ".join(bad) })
# Show warning dialog
var dialog = preload("res://material_maker/tools/share/share_node_dialog.tscn").instantiate()
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
dialog.content_scale_factor = mm_globals.ui_scale_factor()
dialog.min_size = Vector2(600, 400) * dialog.content_scale_factor
var result = await dialog.ask(status)
if result != "ok":
Expand Down
18 changes: 2 additions & 16 deletions material_maker/nodes/comment/comment.gd
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ func _on_text_focus_exited():
func _on_change_color_pressed():
var light_theme = "light" in mm_globals.main_window.theme.resource_path
accept_event()
var content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
var content_scale_factor = mm_globals.ui_scale_factor()
$Popup.get_window().content_scale_factor = content_scale_factor
$Popup.get_window().size = $Popup.get_window().get_contents_minimum_size() * content_scale_factor
$Popup.position = get_screen_transform() * get_local_mouse_position()
Expand Down Expand Up @@ -181,7 +181,7 @@ func _on_ColorChooser_gui_input(event: InputEvent) -> void:
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
accept_event()
$Popup.hide()
var content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
var content_scale_factor = mm_globals.ui_scale_factor()
$PopupSelector.get_window().content_scale_factor = content_scale_factor
$PopupSelector.get_window().min_size = $PopupSelector.get_window().get_contents_minimum_size() * content_scale_factor
$PopupSelector.get_window().position = get_global_mouse_position() * content_scale_factor
Expand Down Expand Up @@ -231,17 +231,3 @@ func _on_raise_request():
if not child is MMGraphComment:
get_parent().move_child(self, i)
break


func _context_menu_about_to_popup(context_menu : PopupMenu) -> void:
context_menu.position = get_screen_transform() * get_local_mouse_position()


func _on_title_edit_ready() -> void:
%TitleEdit.get_menu().about_to_popup.connect(
_context_menu_about_to_popup.bind(%TitleEdit.get_menu()))


func _on_text_ready() -> void:
%Text.get_menu().about_to_popup.connect(
_context_menu_about_to_popup.bind(%Text.get_menu()))
6 changes: 2 additions & 4 deletions material_maker/nodes/comment/comment.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,8 @@ texture = ExtResource("3")
[node name="PanelContainer" type="PanelContainer" parent="PopupSelector"]
offset_left = 4.0
offset_top = 4.0
offset_right = 302.0
offset_bottom = 545.0
offset_right = 96.0
offset_bottom = 96.0

[node name="ColorPicker" type="ColorPicker" parent="PopupSelector/PanelContainer"]
layout_mode = 2
Expand All @@ -157,10 +157,8 @@ edit_alpha = false
[connection signal="resize_request" from="." to="." method="_on_resize_request"]
[connection signal="gui_input" from="PanelContainer/MarginContainer/VBox/TitleBar/Title" to="." method="_on_Title_gui_input"]
[connection signal="focus_exited" from="PanelContainer/MarginContainer/VBox/TitleBar/TitleEdit" to="." method="_on_title_edit_focus_exited"]
[connection signal="ready" from="PanelContainer/MarginContainer/VBox/TitleBar/TitleEdit" to="." method="_on_title_edit_ready"]
[connection signal="text_submitted" from="PanelContainer/MarginContainer/VBox/TitleBar/TitleEdit" to="." method="_on_title_edit_text_submitted"]
[connection signal="pressed" from="PanelContainer/MarginContainer/VBox/TitleBar/ChangeColor" to="." method="_on_change_color_pressed"]
[connection signal="pressed" from="PanelContainer/MarginContainer/VBox/TitleBar/Close" to="." method="_on_close_pressed"]
[connection signal="focus_exited" from="PanelContainer/MarginContainer/VBox/Text" to="." method="_on_text_focus_exited"]
[connection signal="ready" from="PanelContainer/MarginContainer/VBox/Text" to="." method="_on_text_ready"]
[connection signal="gui_input" from="Popup/GridContainer/ColorChooser" to="." method="_on_ColorChooser_gui_input"]
2 changes: 1 addition & 1 deletion material_maker/nodes/debug/debug_popup.gd
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ var src_code
const GENFUNCTIONS : Array = [ "generate_shadertoy", "generate_godot_canvasitem", "generate_godot_spatial" ]

func _on_ready() -> void:
content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
content_scale_factor = mm_globals.ui_scale_factor()
min_size = Vector2(500 ,500) * content_scale_factor

func show_code(s) -> void:
Expand Down
2 changes: 1 addition & 1 deletion material_maker/nodes/remote/named_parameter_dialog.gd
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ extends Window
signal return_values(values)

func _ready():
content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
content_scale_factor = mm_globals.ui_scale_factor()
min_size = Vector2(450, 60) * content_scale_factor

func _on_OK_pressed() -> void:
Expand Down
12 changes: 7 additions & 5 deletions material_maker/panels/graph_edit/graph_edit.gd
Original file line number Diff line number Diff line change
Expand Up @@ -752,12 +752,11 @@ func load_file(filename) -> bool:
else:
var dialog : AcceptDialog = AcceptDialog.new()
add_child(dialog)
var content_scale_factor = (mm_globals.main_window
.get_window().content_scale_factor)
var content_scale_factor = mm_globals.ui_scale_factor()
dialog.content_scale_factor = content_scale_factor
dialog.min_size = dialog.get_contents_minimum_size() * content_scale_factor
dialog.title = "Load failed!"
dialog.dialog_text = "Failed to load "+filename
dialog.min_size = dialog.get_contents_minimum_size() * content_scale_factor
dialog.connect("popup_hide", Callable(dialog, "queue_free"))
dialog.popup_centered()
return false
Expand Down Expand Up @@ -1857,8 +1856,11 @@ func colorize_nodes() -> void:
mm_globals.set_config("color_picker_color_mode", picker.color_mode)
mm_globals.set_config("color_picker_shape", picker.picker_shape))

popup.content_scale_factor = csf
popup.min_size = popup.get_contents_minimum_size() * csf
if get_tree().root.gui_embed_subwindows:
csf = 1.0
else:
popup.content_scale_factor = csf
popup.min_size = popup.get_contents_minimum_size() * csf
popup.position = get_screen_position() + get_local_mouse_position() * csf

picker.color = nodes[0].generator.color
Expand Down
4 changes: 2 additions & 2 deletions material_maker/panels/layers/layers.gd
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func _on_Add_pressed():
menu.connect("id_pressed", Callable(menu, "queue_free"))
menu.connect("popup_hide", Callable(menu, "queue_free"))
menu.popup(Rect2(Vector2(button_rect.position.x, button_rect.end.y) *
mm_globals.main_window.get_window().content_scale_factor, Vector2(0, 0)))
mm_globals.ui_scale_factor(), Vector2(0, 0)))

func _on_add_layer_menu(id):
layers.add_layer(id)
Expand Down Expand Up @@ -60,7 +60,7 @@ func _on_Config_pressed():
if layer.get_layer_type() == MMLayer.LAYER_MASK:
return
var popup = preload("res://material_maker/panels/layers/layer_config_popup.tscn").instantiate()
popup.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
popup.content_scale_factor = mm_globals.ui_scale_factor()
popup.min_size = Vector2(228, 245) * popup.content_scale_factor
add_child(popup)
popup.configure_layer(layers, current.get_meta("layer"))
2 changes: 1 addition & 1 deletion material_maker/panels/library/create_lib_dialog.gd
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ signal return_info(status)


func _ready():
content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
content_scale_factor = mm_globals.ui_scale_factor()
%FilePickerButton.set_mode(FileDialog.FILE_MODE_OPEN_DIR)
%FilePickerButton.icon = get_parent().get_theme_icon("folder", "MM_Icons")
hide()
Expand Down
11 changes: 3 additions & 8 deletions material_maker/panels/library/library.gd
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,8 @@ const MENU_LOAD_LIBRARY : int = 1001

const default_theme : Theme = preload("res://material_maker/theme/default.tres")

func _context_menu_about_to_popup(context_menu : PopupMenu) -> void:
context_menu.position = get_window().position+ Vector2i(
get_global_mouse_position() * get_window().content_scale_factor)

func _ready() -> void:
%Filter.get_menu().about_to_popup.connect(
_context_menu_about_to_popup.bind(%Filter.get_menu()))
# Setup tree
tree.set_column_expand(0, true)
tree.set_column_expand(1, false)
Expand Down Expand Up @@ -230,7 +225,7 @@ func generate_screenshots(graph_edit : GraphEdit, parent_item : TreeItem = null)
var new_nodes = graph_edit.create_nodes(item.get_metadata(0))
await get_tree().create_timer(0.05).timeout
var image = get_viewport().get_texture().get_image()
var csf = mm_globals.main_window.get_window().content_scale_factor
var csf = mm_globals.ui_scale_factor()
image = image.get_region(Rect2(csf*(new_nodes[0].global_position-Vector2(6, 6)),csf*(new_nodes[0].size+Vector2(14, 12))))
# Make background transparent
image.convert(Image.FORMAT_RGBA8)
Expand Down Expand Up @@ -404,7 +399,7 @@ func _on_PopupMenu_index_pressed(index):
match index:
0: # Rename
var dialog = preload("res://material_maker/windows/line_dialog/line_dialog.tscn").instantiate()
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
dialog.content_scale_factor = mm_globals.ui_scale_factor()
dialog.min_size = Vector2(250, 90) * dialog.content_scale_factor
add_child(dialog)
var status = await dialog.enter_text("Rename item", "Enter the new name for this item", item_path)
Expand All @@ -424,7 +419,7 @@ func _on_PopupMenu_index_pressed(index):
5: # Define aliases
var aliases = library_manager.get_aliases(item_path)
var dialog = preload("res://material_maker/windows/line_dialog/line_dialog.tscn").instantiate()
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
dialog.content_scale_factor = mm_globals.ui_scale_factor()
dialog.min_size = Vector2(400, 90) * dialog.content_scale_factor
add_child(dialog)
var status = await dialog.enter_text("Library item aliases", "Updated aliases for "+item_path, aliases)
Expand Down
9 changes: 3 additions & 6 deletions material_maker/panels/parameters/parameters.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,14 @@
[ext_resource type="Script" uid="uid://chqn6bm8u2bjm" path="res://material_maker/panels/parameters/parameters.gd" id="1"]

[node name="BrushParams" type="ScrollContainer"]
custom_minimum_size = Vector2(200, 250)
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
custom_minimum_size = Vector2(200, 250)
size_flags_horizontal = 3
scroll_horizontal_enabled = false
script = ExtResource("1")
__meta__ = {
"_edit_use_anchors_": false
}

[node name="Parameters" type="GridContainer" parent="."]
offset_right = 1280.0
layout_mode = 2
size_flags_horizontal = 3
columns = 2
2 changes: 1 addition & 1 deletion material_maker/panels/preview_2d/preview_2d_panel.gd
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ const CHECKER_BRIGHTNESS_OPTIONS: Array[Vector2] = [
]

func _ready():
var content_scale_factor = mm_globals.get_window().content_scale_factor
var content_scale_factor = mm_globals.ui_scale_factor()
%GuidesColor.get_popup().content_scale_factor = content_scale_factor
%GuidesColor.get_popup().min_size = %GuidesColor.get_popup().get_contents_minimum_size() * content_scale_factor

Expand Down
2 changes: 1 addition & 1 deletion material_maker/panels/preview_3d/mesh_config_popup.gd
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ var mesh : MeshInstance3D
const config_key : String = "3D_preview_objects/%s_uv_scale"

func _ready() -> void:
content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
content_scale_factor = mm_globals.ui_scale_factor()
min_size = get_contents_minimum_size() * content_scale_factor
%ScaleLinked.icon = get_theme_icon("link", "MM_Icons")

Expand Down
Loading