2
0
Эх сурвалжийг харах

Make Level3D column layout persistent

Leonardo Jeanteur 4 жил өмнө
parent
commit
5ee63edf5d

+ 2 - 0
hide/Config.hx

@@ -12,6 +12,8 @@ typedef HideGlobalConfig = {
 	var recentProjects : Array<String>;
 	var recentProjects : Array<String>;
 
 
 	var windowPos : { x : Int, y : Int, w : Int, h : Int, max : Bool };
 	var windowPos : { x : Int, y : Int, w : Int, h : Int, max : Bool };
+
+	@:optional var sceneEditorLayout : { colsVisible : Bool, colsCombined : Bool };
 }
 }
 
 
 typedef HideProjectConfig = {
 typedef HideProjectConfig = {

+ 1 - 1
hide/Ide.hx

@@ -35,7 +35,7 @@ class Ide {
 		user : Config,
 		user : Config,
 		current : Config,
 		current : Config,
 	};
 	};
-	var ideConfig(get, never) : hide.Config.HideGlobalConfig;
+	public var ideConfig(get, never) : hide.Config.HideGlobalConfig;
 	public var projectConfig(get, never) : hide.Config.HideProjectConfig;
 	public var projectConfig(get, never) : hide.Config.HideProjectConfig;
 
 
 	var window : nw.Window;
 	var window : nw.Window;

+ 28 - 11
hide/view/l3d/Level3D.hx

@@ -359,19 +359,12 @@ class Level3D extends FileView {
 		element.find(".heaps-scene").first().append(scene.element);
 		element.find(".heaps-scene").first().append(scene.element);
 		sceneEditor.tree.element.addClass("small");
 		sceneEditor.tree.element.addClass("small");
 
 
+		refreshColLayout();
 		element.find(".combine-btn").first().click((_) -> setCombine(true));
 		element.find(".combine-btn").first().click((_) -> setCombine(true));
 		element.find(".separate-btn").first().click((_) -> setCombine(false));
 		element.find(".separate-btn").first().click((_) -> setCombine(false));
-		var columnComb = getDisplayState("columnsCombined");
-		if( columnComb == null ) columnComb = false;
-		setCombine(columnComb);
 
 
 		element.find(".show-cols-btn").first().click(showColumns);
 		element.find(".show-cols-btn").first().click(showColumns);
 		element.find(".hide-cols-btn").first().click(hideColumns);
 		element.find(".hide-cols-btn").first().click(hideColumns);
-		var columnVis = getDisplayState("columnsVisible");
-		if( columnVis == null || columnVis )
-			showColumns();
-		else
-			hideColumns();
 
 
 		element.find(".collapse-btn").click(function(e) {
 		element.find(".collapse-btn").click(function(e) {
 			sceneEditor.collapseTree();
 			sceneEditor.collapseTree();
@@ -381,11 +374,33 @@ class Level3D extends FileView {
 		refreshGraphicsFilters();
 		refreshGraphicsFilters();
 	}
 	}
 
 
+	function refreshColLayout() {
+		var config = ide.ideConfig;
+		if( config.sceneEditorLayout == null ) {
+			config.sceneEditorLayout = {
+				colsVisible: true,
+				colsCombined: false,
+			};
+		}
+		setCombine(config.sceneEditorLayout.colsCombined);
+
+		if( config.sceneEditorLayout.colsVisible )
+			showColumns();
+		else
+			hideColumns();
+	}
+
+	override function onActivate() {
+		if( sceneEditor != null )
+			refreshColLayout();
+	}
+
 	function hideColumns(?_) {
 	function hideColumns(?_) {
 		element.find(".tree-column").first().hide();
 		element.find(".tree-column").first().hide();
 		element.find(".props-column").first().hide();
 		element.find(".props-column").first().hide();
 		element.find(".show-cols-btn").first().show();
 		element.find(".show-cols-btn").first().show();
-		saveDisplayState("columnsVisible", false);
+		ide.ideConfig.sceneEditorLayout.colsVisible = false;
+		@:privateAccess ide.config.global.save();
 		@:privateAccess if( scene.window != null) scene.window.checkResize();
 		@:privateAccess if( scene.window != null) scene.window.checkResize();
 	}
 	}
 
 
@@ -393,7 +408,8 @@ class Level3D extends FileView {
 		element.find(".tree-column").first().show();
 		element.find(".tree-column").first().show();
 		element.find(".props-column").first().show();
 		element.find(".props-column").first().show();
 		element.find(".show-cols-btn").first().hide();
 		element.find(".show-cols-btn").first().hide();
-		saveDisplayState("columnsVisible", true);
+		ide.ideConfig.sceneEditorLayout.colsVisible = true;
+		@:privateAccess ide.config.global.save();
 		@:privateAccess if( scene.window != null) scene.window.checkResize();
 		@:privateAccess if( scene.window != null) scene.window.checkResize();
 	}
 	}
 
 
@@ -410,7 +426,8 @@ class Level3D extends FileView {
 			element.find(".combine-btn").first().show();
 			element.find(".combine-btn").first().show();
 			element.find(".separate-btn").first().hide();
 			element.find(".separate-btn").first().hide();
 		}
 		}
-		saveDisplayState("columnsCombined", val);
+		ide.ideConfig.sceneEditorLayout.colsCombined = val;
+		@:privateAccess ide.config.global.save();
 		@:privateAccess if( scene.window != null) scene.window.checkResize();
 		@:privateAccess if( scene.window != null) scene.window.checkResize();
 	}
 	}