-Fix problem of order of import plugins, closes #26340
-Ensure resource previewer does not start until first import is done
This commit is contained in:
parent
ce615c1a82
commit
a5370b1b1b
|
@ -406,9 +406,14 @@ bool ResourceFormatImporter::are_import_settings_valid(const String &p_path) con
|
|||
}
|
||||
|
||||
String ResourceFormatImporter::get_import_settings_hash() const {
|
||||
|
||||
Vector<Ref<ResourceImporter> > sorted_importers = importers;
|
||||
|
||||
sorted_importers.sort_custom<SortImporterByName>();
|
||||
|
||||
String hash;
|
||||
for (int i = 0; i < importers.size(); i++) {
|
||||
hash += ":" + importers[i]->get_importer_name() + ":" + importers[i]->get_import_settings_string();
|
||||
for (int i = 0; i < sorted_importers.size(); i++) {
|
||||
hash += ":" + sorted_importers[i]->get_importer_name() + ":" + sorted_importers[i]->get_import_settings_string();
|
||||
}
|
||||
return hash.md5_text();
|
||||
}
|
||||
|
|
|
@ -77,7 +77,6 @@ public:
|
|||
|
||||
void add_importer(const Ref<ResourceImporter> &p_importer) {
|
||||
importers.push_back(p_importer);
|
||||
importers.sort_custom<SortImporterByName>();
|
||||
}
|
||||
void remove_importer(const Ref<ResourceImporter> &p_importer) { importers.erase(p_importer); }
|
||||
Ref<ResourceImporter> get_importer_by_name(const String &p_name) const;
|
||||
|
|
|
@ -531,6 +531,8 @@ void EditorNode::_sources_changed(bool p_exist) {
|
|||
|
||||
if (waiting_for_first_scan) {
|
||||
|
||||
EditorResourcePreview::get_singleton()->start(); //start previes now that it's safe
|
||||
|
||||
_load_docks();
|
||||
|
||||
if (defer_load_scene != "") {
|
||||
|
|
|
@ -417,6 +417,10 @@ void EditorResourcePreview::check_for_invalidation(const String &p_path) {
|
|||
}
|
||||
}
|
||||
|
||||
void EditorResourcePreview::start() {
|
||||
ERR_FAIL_COND(thread);
|
||||
thread = Thread::create(_thread_func, this);
|
||||
}
|
||||
void EditorResourcePreview::stop() {
|
||||
if (thread) {
|
||||
exit = true;
|
||||
|
@ -428,13 +432,12 @@ void EditorResourcePreview::stop() {
|
|||
}
|
||||
|
||||
EditorResourcePreview::EditorResourcePreview() {
|
||||
thread = NULL;
|
||||
singleton = this;
|
||||
preview_mutex = Mutex::create();
|
||||
preview_sem = Semaphore::create();
|
||||
order = 0;
|
||||
exit = false;
|
||||
|
||||
thread = Thread::create(_thread_func, this);
|
||||
}
|
||||
|
||||
EditorResourcePreview::~EditorResourcePreview() {
|
||||
|
|
|
@ -126,6 +126,7 @@ public:
|
|||
void remove_preview_generator(const Ref<EditorResourcePreviewGenerator> &p_generator);
|
||||
void check_for_invalidation(const String &p_path);
|
||||
|
||||
void start();
|
||||
void stop();
|
||||
|
||||
EditorResourcePreview();
|
||||
|
|
Loading…
Reference in New Issue