mirror of
https://github.com/Relintai/material-maker.git
synced 2024-12-23 21:16:54 +01:00
Disabled menu items when they cannot be used.
This commit is contained in:
parent
5184f6375e
commit
467ba24a5f
@ -29,7 +29,9 @@ const MENU = [
|
|||||||
func _ready():
|
func _ready():
|
||||||
OS.set_window_title(ProjectSettings.get_setting("application/config/name")+" v"+ProjectSettings.get_setting("application/config/release"))
|
OS.set_window_title(ProjectSettings.get_setting("application/config/name")+" v"+ProjectSettings.get_setting("application/config/release"))
|
||||||
for m in $VBoxContainer/Menu.get_children():
|
for m in $VBoxContainer/Menu.get_children():
|
||||||
create_menu(m.get_popup(), m.name)
|
var menu = m.get_popup()
|
||||||
|
create_menu(menu, m.name)
|
||||||
|
m.connect("about_to_show", self, "menu_about_to_show", [ m.name, menu ])
|
||||||
new_material()
|
new_material()
|
||||||
|
|
||||||
func create_menu(menu, menu_name):
|
func create_menu(menu, menu_name):
|
||||||
@ -60,6 +62,18 @@ func create_menu(menu, menu_name):
|
|||||||
menu.add_separator()
|
menu.add_separator()
|
||||||
return menu
|
return menu
|
||||||
|
|
||||||
|
func menu_about_to_show(name, menu):
|
||||||
|
for i in MENU.size():
|
||||||
|
if MENU[i].menu != name:
|
||||||
|
continue
|
||||||
|
if MENU[i].has("submenu"):
|
||||||
|
pass
|
||||||
|
elif MENU[i].has("command"):
|
||||||
|
var command_name = MENU[i].command+"_is_disabled"
|
||||||
|
if has_method(command_name):
|
||||||
|
var is_disabled = call(command_name)
|
||||||
|
menu.set_item_disabled(menu.get_item_index(i), is_disabled)
|
||||||
|
|
||||||
func new_pane():
|
func new_pane():
|
||||||
var graph_edit = preload("res://addons/procedural_material/graph_edit.tscn").instance()
|
var graph_edit = preload("res://addons/procedural_material/graph_edit.tscn").instance()
|
||||||
$VBoxContainer/HBoxContainer/Projects.add_child(graph_edit)
|
$VBoxContainer/HBoxContainer/Projects.add_child(graph_edit)
|
||||||
@ -115,6 +129,12 @@ func export_material():
|
|||||||
if graph_edit != null :
|
if graph_edit != null :
|
||||||
graph_edit.export_textures()
|
graph_edit.export_textures()
|
||||||
|
|
||||||
|
func export_material_is_disabled():
|
||||||
|
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
||||||
|
if graph_edit == null or graph_edit.save_path == null:
|
||||||
|
return true
|
||||||
|
return false
|
||||||
|
|
||||||
func quit():
|
func quit():
|
||||||
if Engine.editor_hint:
|
if Engine.editor_hint:
|
||||||
get_parent().hide()
|
get_parent().hide()
|
||||||
@ -127,16 +147,27 @@ func edit_cut():
|
|||||||
if graph_edit != null:
|
if graph_edit != null:
|
||||||
graph_edit.cut()
|
graph_edit.cut()
|
||||||
|
|
||||||
|
func edit_cut_is_disabled():
|
||||||
|
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
||||||
|
return graph_edit == null or !graph_edit.can_copy()
|
||||||
|
|
||||||
func edit_copy():
|
func edit_copy():
|
||||||
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
||||||
if graph_edit != null:
|
if graph_edit != null:
|
||||||
graph_edit.copy()
|
graph_edit.copy()
|
||||||
|
|
||||||
|
func edit_copy_is_disabled():
|
||||||
|
return edit_cut_is_disabled()
|
||||||
|
|
||||||
func edit_paste():
|
func edit_paste():
|
||||||
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
||||||
if graph_edit != null:
|
if graph_edit != null:
|
||||||
graph_edit.paste()
|
graph_edit.paste()
|
||||||
|
|
||||||
|
func edit_paste_is_disabled():
|
||||||
|
var data = parse_json(OS.clipboard)
|
||||||
|
return data == null
|
||||||
|
|
||||||
func add_to_user_library():
|
func add_to_user_library():
|
||||||
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
||||||
if graph_edit != null and graph_edit is GraphEdit:
|
if graph_edit != null and graph_edit is GraphEdit:
|
||||||
|
Loading…
Reference in New Issue
Block a user