From a706fecda4cef15627288c32b32e14675b2999eb Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 09:56:29 +0200 Subject: [PATCH] process app events before scrolling instead of each widget --- openpype/tools/settings/settings/categories.py | 5 +++++ openpype/tools/settings/settings/dict_conditional.py | 1 - openpype/tools/settings/settings/dict_mutable_widget.py | 1 - openpype/tools/settings/settings/item_widgets.py | 1 - openpype/tools/settings/settings/list_item_widget.py | 1 - 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index d524462600..6d8a5aa6b2 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -258,6 +258,11 @@ class SettingsCategoryWidget(QtWidgets.QWidget): def scroll_to(self, widget): if widget: + # Process events which happened before ensurence + # - that is because some widgets could be not visible before + # this method was called and have incorrect size + QtWidgets.QApplication.processEvents() + # Scroll to widget self.scroll_widget.ensureWidgetVisible(widget) def set_path(self, path): diff --git a/openpype/tools/settings/settings/dict_conditional.py b/openpype/tools/settings/settings/dict_conditional.py index c30159195c..3e3270cac9 100644 --- a/openpype/tools/settings/settings/dict_conditional.py +++ b/openpype/tools/settings/settings/dict_conditional.py @@ -227,7 +227,6 @@ class DictConditionalWidget(BaseWidget): if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) - QtWidgets.QApplication.processEvents() for input_field in self.input_fields: if input_field.make_sure_is_visible(path, scroll_to): diff --git a/openpype/tools/settings/settings/dict_mutable_widget.py b/openpype/tools/settings/settings/dict_mutable_widget.py index 5bab74fabf..25908f5a60 100644 --- a/openpype/tools/settings/settings/dict_mutable_widget.py +++ b/openpype/tools/settings/settings/dict_mutable_widget.py @@ -861,7 +861,6 @@ class DictMutableKeysWidget(BaseWidget): if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) - QtWidgets.QApplication.processEvents() for input_field in self.input_fields: if input_field.make_sure_is_visible(path, scroll_to): diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index 9c69ee6705..fed924e0bf 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -171,7 +171,6 @@ class DictImmutableKeysWidget(BaseWidget): if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) - QtWidgets.QApplication.processEvents() for direct_child in self._direct_children_widgets: if direct_child.make_sure_is_visible(path, scroll_to): diff --git a/openpype/tools/settings/settings/list_item_widget.py b/openpype/tools/settings/settings/list_item_widget.py index 50630986d6..17412a30b9 100644 --- a/openpype/tools/settings/settings/list_item_widget.py +++ b/openpype/tools/settings/settings/list_item_widget.py @@ -281,7 +281,6 @@ class ListWidget(InputWidget): if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) - QtWidgets.QApplication.processEvents() for input_field in self.input_fields: if input_field.make_sure_is_visible(path, scroll_to):