Sfoglia il codice sorgente

defer project export filesystem update if not visible

Juan Linietsky 9 anni fa
parent
commit
1d99e71d94

+ 1 - 1
tools/editor/editor_node.cpp

@@ -2214,7 +2214,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
 
 		case FILE_EXPORT_PROJECT: {
 
-			project_export_settings->popup_centered_ratio();
+			project_export_settings->popup_export();
 			/*
 			String target = export_db->get_current_platform();
 			Ref<EditorExporter> exporter = export_db->get_exporter(target);

+ 18 - 1
tools/editor/project_export.cpp

@@ -122,6 +122,15 @@ void ProjectExportDialog::_tree_changed() {
 
 }
 
+void ProjectExportDialog::popup_export() {
+	popup_centered_ratio();
+	if (pending_update_tree) {
+		_update_tree();
+		_update_group_tree();
+		pending_update_tree=false;
+	}
+}
+
 void ProjectExportDialog::_update_tree() {
 
 
@@ -168,6 +177,11 @@ void ProjectExportDialog::_scan_finished() {
 	print_line("**********SCAN DONEEE********");
 	print_line("**********SCAN DONEEE********");*/
 
+	if (!is_visible()) {
+		pending_update_tree=true;
+		return;
+	}
+
 	_update_tree();
 	_update_group_tree();
 }
@@ -1446,7 +1460,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
 
 	ei="EditorIcons";
 	ot="Object";
-
+	pending_update_tree=true;
 }
 
 
@@ -1480,6 +1494,8 @@ void ProjectExport::popup_export() {
 
 	popup_centered(Size2(300,100));
 
+
+
 }
 Error ProjectExport::export_project(const String& p_preset) {
 
@@ -1880,5 +1896,6 @@ ProjectExport::ProjectExport(EditorData* p_data) {
 	error = memnew( AcceptDialog );
 	add_child(error);
 
+
 }
 

+ 2 - 0
tools/editor/project_export.h

@@ -70,6 +70,7 @@ private:
 
 	TabContainer *sections;
 	bool updating_tree;
+	bool pending_update_tree;
 	AcceptDialog *error;
 	ConfirmationDialog *confirm;
 
@@ -203,6 +204,7 @@ public:
 
 	Error export_platform(const String& p_platform, const String& p_path, bool p_debug,const String& p_password,bool p_quit_after=false);
 
+	void popup_export();
 	ProjectExportDialog(EditorNode *p_editor);
 	~ProjectExportDialog();
 };