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():
|
||||
OS.set_window_title(ProjectSettings.get_setting("application/config/name")+" v"+ProjectSettings.get_setting("application/config/release"))
|
||||
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()
|
||||
|
||||
func create_menu(menu, menu_name):
|
||||
@ -60,6 +62,18 @@ func create_menu(menu, menu_name):
|
||||
menu.add_separator()
|
||||
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():
|
||||
var graph_edit = preload("res://addons/procedural_material/graph_edit.tscn").instance()
|
||||
$VBoxContainer/HBoxContainer/Projects.add_child(graph_edit)
|
||||
@ -115,6 +129,12 @@ func export_material():
|
||||
if graph_edit != null :
|
||||
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():
|
||||
if Engine.editor_hint:
|
||||
get_parent().hide()
|
||||
@ -127,16 +147,27 @@ func edit_cut():
|
||||
if graph_edit != null:
|
||||
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():
|
||||
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
||||
if graph_edit != null:
|
||||
graph_edit.copy()
|
||||
|
||||
func edit_copy_is_disabled():
|
||||
return edit_cut_is_disabled()
|
||||
|
||||
func edit_paste():
|
||||
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
||||
if graph_edit != null:
|
||||
graph_edit.paste()
|
||||
|
||||
func edit_paste_is_disabled():
|
||||
var data = parse_json(OS.clipboard)
|
||||
return data == null
|
||||
|
||||
func add_to_user_library():
|
||||
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
||||
if graph_edit != null and graph_edit is GraphEdit:
|
||||
|
Loading…
Reference in New Issue
Block a user