浏览代码

Project Settings: add loading

lviguier 8 月之前
父节点
当前提交
122c8779d3
共有 3 个文件被更改,包括 40 次插入8 次删除
  1. 8 0
      bin/style.css
  2. 10 0
      bin/style.less
  3. 22 8
      hide/view/settings/ProjectSettings.hx

+ 8 - 0
bin/style.css

@@ -3545,6 +3545,14 @@ div.gradient-box {
 .project-settings h1 {
   margin: 5px 5px 5px 10px;
 }
+.project-settings .loading {
+  display: flex;
+  margin-left: 10px;
+}
+.project-settings .loading .ico {
+  margin-right: 5px;
+  align-self: center;
+}
 .project-settings .body {
   width: 100%;
   height: 100%;

+ 10 - 0
bin/style.less

@@ -4142,6 +4142,16 @@ div.gradient-box {
 		margin: 5px 5px 5px 10px;
 	}
 
+	.loading {
+		display: flex;
+		margin-left: 10px;
+
+		.ico {
+			margin-right: 5px;
+			align-self: center;
+		}
+	}
+
 	.body {
 		width: 100%;
 		height:100%;

+ 22 - 8
hide/view/settings/ProjectSettings.hx

@@ -8,7 +8,6 @@ typedef LocalSetting = {
 
 enum Filter {
 	NONE;
-	LOD;
 	MATLIB;
 	RENDERPROPS;
 }
@@ -18,15 +17,13 @@ class ProjectSettings extends hide.ui.View<{}> {
 
 	public static var MATLIB_ENTRY = "materialLibraries";
 	public static var RENDERPROPS_ENTRY = "scene.renderProps";
-	public static var LOD_ENTRY = "lods.screenRatio";
 
 	var settings : Array<LocalSetting>;
 	var currentFilter = Filter.NONE;
 
 	public function new( ?state ) {
 		super(state);
-		settings = [];
-		getPropsFiles(ide.projectDir);
+		settings = null;
 	}
 
 	override function getTitle() {
@@ -37,6 +34,25 @@ class ProjectSettings extends hide.ui.View<{}> {
 		keys.register("undo", function() undo.undo());
 		keys.register("redo", function() undo.redo());
 
+		new Element('<div class="project-settings">
+			<h1>Project settings</h1>
+			<div class="loading">
+				<div class="ico ico-spinner fa-spin"></div>
+				<p>Loading settings ...</p>
+			</div>
+		</div>').appendTo(element);
+	}
+
+	override function onActivate() {
+		super.onActivate();
+
+		if (settings != null)
+			return;
+
+		settings = [];
+		getPropsFiles(ide.projectDir);
+
+		element.empty();
 		var root = new Element('<div class="project-settings">
 			<h1>Project settings</h1>
 			<div class="body">
@@ -46,9 +62,8 @@ class ProjectSettings extends hide.ui.View<{}> {
 						<p>Filter : </p>
 						<select class="filter">
 							<option value="0" selected>None</option>
-							<option value="1">LODs</option>
-							<option value="2">Material libraries</option>
-							<option value="3">Render props</option>
+							<option value="1">Material libraries</option>
+							<option value="2">Render props</option>
 						</select>
 					</div>
 				</div>
@@ -86,7 +101,6 @@ class ProjectSettings extends hide.ui.View<{}> {
 
 				var filtered = false;
 				if (!currentFilter.match(Filter.NONE)) {
-					filtered = filtered || currentFilter.match(Filter.LOD) && !Reflect.hasField(s.content, LOD_ENTRY);
 					filtered = filtered || currentFilter.match(Filter.MATLIB) && !Reflect.hasField(s.content, MATLIB_ENTRY);
 					filtered = filtered || currentFilter.match(Filter.RENDERPROPS) && !Reflect.hasField(s.content, RENDERPROPS_ENTRY);
 				}