diff options
| author | Rémi Verschelde <remi@verschelde.fr> | 2016-01-11 14:53:35 +0100 | 
|---|---|---|
| committer | Rémi Verschelde <remi@verschelde.fr> | 2016-01-11 14:53:35 +0100 | 
| commit | e212058841ea300c75764da4fa3d1b10f02c03e5 (patch) | |
| tree | 770300950a57a820440ab38d0b4060fe05968dc1 | |
| parent | 7f82c8d7c5cbcb07bddf98a5006706d1f77c4444 (diff) | |
| parent | aa9c2e68c620ba9e7358f83c8202a7cea025eafb (diff) | |
Merge pull request #3308 from neikeq/keep_xform_settings
Remember Transform menu settings for the Spatial Editor
| -rw-r--r-- | tools/editor/plugins/spatial_editor_plugin.cpp | 74 | 
1 files changed, 48 insertions, 26 deletions
diff --git a/tools/editor/plugins/spatial_editor_plugin.cpp b/tools/editor/plugins/spatial_editor_plugin.cpp index 0fac1346fc..29d2a7774c 100644 --- a/tools/editor/plugins/spatial_editor_plugin.cpp +++ b/tools/editor/plugins/spatial_editor_plugin.cpp @@ -2629,6 +2629,13 @@ Dictionary SpatialEditor::get_state() const {  	Dictionary d; +	d["snap_enabled"]=snap_enabled; +	d["translate_snap"]=get_translate_snap(); +	d["rotate_snap"]=get_rotate_snap(); +	d["scale_snap"]=get_scale_snap(); + +	int local_coords_index=transform_menu->get_popup()->get_item_index(MENU_TRANSFORM_LOCAL_COORDS); +	d["local_coords"]=transform_menu->get_popup()->is_item_checked( local_coords_index );  	int vc=0;  	if (view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT) )) @@ -2670,37 +2677,52 @@ void SpatialEditor::set_state(const Dictionary& p_state) {  	Dictionary d = p_state; -	ERR_FAIL_COND(!d.has("viewport_mode")); -	ERR_FAIL_COND(!d.has("viewports")); -	ERR_FAIL_COND(!d.has("default_light")); -	ERR_FAIL_COND(!d.has("show_grid")); -	ERR_FAIL_COND(!d.has("show_origin")); -	ERR_FAIL_COND(!d.has("fov")); -	ERR_FAIL_COND(!d.has("znear")); -	ERR_FAIL_COND(!d.has("zfar")); +	if (d.has("snap_enabled")) { +		snap_enabled=d["snap_enabled"]; +		int snap_enabled_idx=transform_menu->get_popup()->get_item_index(MENU_TRANSFORM_USE_SNAP); +		transform_menu->get_popup()->set_item_checked( snap_enabled_idx, snap_enabled ); +	} -	int vc = d["viewport_mode"]; +	if (d.has("translate_snap")) +		snap_translate->set_text(d["translate_snap"]); -	if (vc==1) -		_menu_item_pressed(MENU_VIEW_USE_1_VIEWPORT); -	else if (vc==2) -		_menu_item_pressed(MENU_VIEW_USE_2_VIEWPORTS); -	else if (vc==3) -		_menu_item_pressed(MENU_VIEW_USE_3_VIEWPORTS); -	else if (vc==4) -		_menu_item_pressed(MENU_VIEW_USE_4_VIEWPORTS); -	else if (vc==5) -		_menu_item_pressed(MENU_VIEW_USE_2_VIEWPORTS_ALT); -	else if (vc==6) -		_menu_item_pressed(MENU_VIEW_USE_3_VIEWPORTS_ALT); - -	Array vp = d["viewports"]; -	ERR_FAIL_COND(vp.size()>4); +	if (d.has("rotate_snap")) +		snap_rotate->set_text(d["rotate_snap"]); -	for(int i=0;i<4;i++) { -		viewports[i]->set_state(vp[i]); +	if (d.has("scale_snap")) +		snap_scale->set_text(d["scale_snap"]); + +	if (d.has("local_coords")) { +		int local_coords_idx=transform_menu->get_popup()->get_item_index(MENU_TRANSFORM_LOCAL_COORDS); +		transform_menu->get_popup()->set_item_checked( local_coords_idx, d["local_coords"] ); +		update_transform_gizmo(); +	} + +	if (d.has("viewport_mode")) { +		int vc = d["viewport_mode"]; + +		if (vc==1) +			_menu_item_pressed(MENU_VIEW_USE_1_VIEWPORT); +		else if (vc==2) +			_menu_item_pressed(MENU_VIEW_USE_2_VIEWPORTS); +		else if (vc==3) +			_menu_item_pressed(MENU_VIEW_USE_3_VIEWPORTS); +		else if (vc==4) +			_menu_item_pressed(MENU_VIEW_USE_4_VIEWPORTS); +		else if (vc==5) +			_menu_item_pressed(MENU_VIEW_USE_2_VIEWPORTS_ALT); +		else if (vc==6) +			_menu_item_pressed(MENU_VIEW_USE_3_VIEWPORTS_ALT);  	} +	if (d.has("viewports")) { +		Array vp = d["viewports"]; +		ERR_FAIL_COND(vp.size()>4); + +		for(int i=0;i<4;i++) { +			viewports[i]->set_state(vp[i]); +		} +	}  	if (d.has("zfar"))  		settings_zfar->set_val(float(d["zfar"]));  |