Force editor progress dialog size update.
This commit is contained in:
parent
5833f59786
commit
564ebd7ba4
|
@ -126,6 +126,16 @@ void BackgroundProgress::end_task(const String &p_task) {
|
||||||
|
|
||||||
ProgressDialog *ProgressDialog::singleton = nullptr;
|
ProgressDialog *ProgressDialog::singleton = nullptr;
|
||||||
|
|
||||||
|
void ProgressDialog::_update_ui() {
|
||||||
|
// Run main loop for two frames.
|
||||||
|
if (is_inside_tree()) {
|
||||||
|
DisplayServer::get_singleton()->process_events();
|
||||||
|
#ifndef ANDROID_ENABLED
|
||||||
|
Main::iteration();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ProgressDialog::_popup() {
|
void ProgressDialog::_popup() {
|
||||||
Size2 ms = main->get_combined_minimum_size();
|
Size2 ms = main->get_combined_minimum_size();
|
||||||
ms.width = MAX(500 * EDSCALE, ms.width);
|
ms.width = MAX(500 * EDSCALE, ms.width);
|
||||||
|
@ -138,7 +148,13 @@ void ProgressDialog::_popup() {
|
||||||
main->set_offset(SIDE_TOP, style->get_margin(SIDE_TOP));
|
main->set_offset(SIDE_TOP, style->get_margin(SIDE_TOP));
|
||||||
main->set_offset(SIDE_BOTTOM, -style->get_margin(SIDE_BOTTOM));
|
main->set_offset(SIDE_BOTTOM, -style->get_margin(SIDE_BOTTOM));
|
||||||
|
|
||||||
if (!is_inside_tree()) {
|
if (is_inside_tree()) {
|
||||||
|
Rect2i adjust = _popup_adjust_rect();
|
||||||
|
if (adjust != Rect2i()) {
|
||||||
|
set_position(adjust.position);
|
||||||
|
set_size(adjust.size);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
for (Window *window : host_windows) {
|
for (Window *window : host_windows) {
|
||||||
if (window->has_focus()) {
|
if (window->has_focus()) {
|
||||||
popup_exclusive_centered(window, ms);
|
popup_exclusive_centered(window, ms);
|
||||||
|
@ -182,6 +198,7 @@ void ProgressDialog::add_task(const String &p_task, const String &p_label, int p
|
||||||
if (p_can_cancel) {
|
if (p_can_cancel) {
|
||||||
cancel->grab_focus();
|
cancel->grab_focus();
|
||||||
}
|
}
|
||||||
|
_update_ui();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ProgressDialog::task_step(const String &p_task, const String &p_state, int p_step, bool p_force_redraw) {
|
bool ProgressDialog::task_step(const String &p_task, const String &p_state, int p_step, bool p_force_redraw) {
|
||||||
|
@ -203,11 +220,8 @@ bool ProgressDialog::task_step(const String &p_task, const String &p_state, int
|
||||||
|
|
||||||
t.state->set_text(p_state);
|
t.state->set_text(p_state);
|
||||||
last_progress_tick = OS::get_singleton()->get_ticks_usec();
|
last_progress_tick = OS::get_singleton()->get_ticks_usec();
|
||||||
DisplayServer::get_singleton()->process_events();
|
_update_ui();
|
||||||
|
|
||||||
#ifndef ANDROID_ENABLED
|
|
||||||
Main::iteration(); // this will not work on a lot of platforms, so it's only meant for the editor
|
|
||||||
#endif
|
|
||||||
return canceled;
|
return canceled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,6 +85,8 @@ class ProgressDialog : public PopupPanel {
|
||||||
void _popup();
|
void _popup();
|
||||||
|
|
||||||
void _cancel_pressed();
|
void _cancel_pressed();
|
||||||
|
|
||||||
|
void _update_ui();
|
||||||
bool canceled = false;
|
bool canceled = false;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in New Issue