[EditorProgress] Use BackgroundProgress
instead of ProgressDialog
when called for a thread.
This commit is contained in:
parent
71699e08c9
commit
7acaa0d320
1 changed files with 20 additions and 3 deletions
|
@ -928,12 +928,29 @@ public:
|
||||||
|
|
||||||
struct EditorProgress {
|
struct EditorProgress {
|
||||||
String task;
|
String task;
|
||||||
bool step(const String &p_state, int p_step = -1, bool p_force_refresh = true) { return EditorNode::progress_task_step(task, p_state, p_step, p_force_refresh); }
|
bool step(const String &p_state, int p_step = -1, bool p_force_refresh = true) {
|
||||||
|
if (Thread::is_main_thread()) {
|
||||||
|
return EditorNode::progress_task_step(task, p_state, p_step, p_force_refresh);
|
||||||
|
} else {
|
||||||
|
EditorNode::progress_task_step_bg(task, p_step);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
EditorProgress(const String &p_task, const String &p_label, int p_amount, bool p_can_cancel = false) {
|
EditorProgress(const String &p_task, const String &p_label, int p_amount, bool p_can_cancel = false) {
|
||||||
|
if (Thread::is_main_thread()) {
|
||||||
EditorNode::progress_add_task(p_task, p_label, p_amount, p_can_cancel);
|
EditorNode::progress_add_task(p_task, p_label, p_amount, p_can_cancel);
|
||||||
|
} else {
|
||||||
|
EditorNode::progress_add_task_bg(p_task, p_label, p_amount);
|
||||||
|
}
|
||||||
task = p_task;
|
task = p_task;
|
||||||
}
|
}
|
||||||
~EditorProgress() { EditorNode::progress_end_task(task); }
|
~EditorProgress() {
|
||||||
|
if (Thread::is_main_thread()) {
|
||||||
|
EditorNode::progress_end_task(task);
|
||||||
|
} else {
|
||||||
|
EditorNode::progress_end_task_bg(task);
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class EditorPluginList : public Object {
|
class EditorPluginList : public Object {
|
||||||
|
|
Loading…
Reference in a new issue