|
@@ -134,29 +134,21 @@ void BackgroundProgress::end_task(const String &p_task) {
|
|
|
|
|
|
ProgressDialog *ProgressDialog::singleton = nullptr;
|
|
ProgressDialog *ProgressDialog::singleton = nullptr;
|
|
|
|
|
|
-void ProgressDialog::_notification(int p_what) {
|
|
|
|
- if (p_what == NOTIFICATION_VISIBILITY_CHANGED) {
|
|
|
|
- if (!is_visible()) {
|
|
|
|
- Node *p = get_parent();
|
|
|
|
- if (p) {
|
|
|
|
- p->remove_child(this);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
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);
|
|
|
|
|
|
Ref<StyleBox> style = main->get_theme_stylebox(SNAME("panel"), SNAME("PopupMenu"));
|
|
Ref<StyleBox> style = main->get_theme_stylebox(SNAME("panel"), SNAME("PopupMenu"));
|
|
ms += style->get_minimum_size();
|
|
ms += style->get_minimum_size();
|
|
|
|
+
|
|
main->set_offset(SIDE_LEFT, style->get_margin(SIDE_LEFT));
|
|
main->set_offset(SIDE_LEFT, style->get_margin(SIDE_LEFT));
|
|
main->set_offset(SIDE_RIGHT, -style->get_margin(SIDE_RIGHT));
|
|
main->set_offset(SIDE_RIGHT, -style->get_margin(SIDE_RIGHT));
|
|
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));
|
|
|
|
|
|
- EditorInterface::get_singleton()->popup_dialog_centered(this, ms);
|
|
|
|
|
|
+ if (!is_inside_tree()) {
|
|
|
|
+ EditorInterface::get_singleton()->popup_dialog_centered(this, ms);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void ProgressDialog::add_task(const String &p_task, const String &p_label, int p_steps, bool p_can_cancel) {
|
|
void ProgressDialog::add_task(const String &p_task, const String &p_label, int p_steps, bool p_can_cancel) {
|