Skip to content

Commit dbcf350

Browse files
authored
Fix widget flashing on init by properly parenting (#95)
# References and relevant issues Depends on #94 Here is the diff TimMonko/napari-metadata@mnt/proj-reorg...TimMonko:napari-metadata:fix/widget-flash # Description This passes the parent to the collapsible widgets so that they do not briefly flash before being docked in the main container. Tested locally with napari.
1 parent 9c26f6d commit dbcf350

2 files changed

Lines changed: 14 additions & 14 deletions

File tree

src/napari_metadata/widgets/_containers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def __init__(
4444
main_widget: MetadataWidgetAPI,
4545
orientation: Literal['vertical', 'horizontal'] = 'vertical',
4646
):
47-
super().__init__()
47+
super().__init__(parent=main_widget)
4848
self._viewer = viewer
4949
self._container_name = container_name
5050
self._main_widget = main_widget
@@ -72,7 +72,7 @@ def __init__(
7272
self._layout.addWidget(self._button, 0)
7373

7474
# Create expanding area
75-
self._expanding_area = QScrollArea()
75+
self._expanding_area = QScrollArea(self)
7676
self._expanding_area.setWidgetResizable(True)
7777

7878
if orientation == 'vertical':
@@ -191,7 +191,7 @@ def _set_expanding_area_widget(self, setting_widget: QWidget) -> None:
191191
self._expanding_area.setWidget(setting_widget)
192192
else: # horizontal
193193
# Horizontal containers need a wrapper with stretch
194-
wrapper = QWidget()
194+
wrapper = QWidget(self._expanding_area)
195195
wrapper_layout = QVBoxLayout(wrapper)
196196
wrapper_layout.setContentsMargins(0, 0, 0, 0)
197197
wrapper_layout.addWidget(setting_widget)

src/napari_metadata/widgets/_main.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -103,25 +103,25 @@ def __init__(self, napari_viewer: 'ViewerModel'):
103103
)
104104
self._connect_file_general_metadata_components()
105105

106-
self._vert_file_general_metadata_container: QWidget = QWidget()
106+
self._vert_file_general_metadata_container: QWidget = QWidget(self)
107107
self._vert_file_general_metadata_layout: QGridLayout = QGridLayout()
108108
self._vert_file_general_metadata_container.setLayout(
109109
self._vert_file_general_metadata_layout
110110
)
111-
self._hori_file_general_metadata_container: QWidget = QWidget()
111+
self._hori_file_general_metadata_container: QWidget = QWidget(self)
112112
self._hori_file_general_metadata_layout: QGridLayout = QGridLayout()
113113
self._hori_file_general_metadata_container.setLayout(
114114
self._hori_file_general_metadata_layout
115115
)
116116

117117
self._axis_metadata_instance = AxisMetadata(napari_viewer, self)
118118

119-
self._vert_axis_metadata_container: QWidget = QWidget()
119+
self._vert_axis_metadata_container: QWidget = QWidget(self)
120120
self._vert_axis_metadata_layout: QGridLayout = QGridLayout()
121121
self._vert_axis_metadata_container.setLayout(
122122
self._vert_axis_metadata_layout
123123
)
124-
self._hori_axis_metadata_container: QWidget = QWidget()
124+
self._hori_axis_metadata_container: QWidget = QWidget(self)
125125
self._hori_axis_metadata_layout: QGridLayout = QGridLayout()
126126
self._hori_axis_metadata_container.setLayout(
127127
self._hori_axis_metadata_layout
@@ -132,25 +132,25 @@ def __init__(self, napari_viewer: 'ViewerModel'):
132132
napari_viewer, self
133133
)
134134

135-
self._vert_inheritance_container: QWidget = QWidget()
135+
self._vert_inheritance_container: QWidget = QWidget(self)
136136
self._vert_inhertiance_layout: QGridLayout = QGridLayout()
137137
self._vert_inheritance_container.setLayout(
138138
self._vert_inhertiance_layout
139139
)
140-
self._hori_inheritance_container: QWidget = QWidget()
140+
self._hori_inheritance_container: QWidget = QWidget(self)
141141
self._hori_inheritance_layout: QGridLayout = QGridLayout()
142142
self._hori_inheritance_container.setLayout(
143143
self._hori_inheritance_layout
144144
)
145145

146-
vertical_container: QScrollArea = QScrollArea()
146+
vertical_container: QScrollArea = QScrollArea(self)
147147
vertical_container.setWidgetResizable(True)
148148
vertical_container.setHorizontalScrollBarPolicy(
149149
Qt.ScrollBarPolicy.ScrollBarAlwaysOff
150150
)
151151
vertical_container.container_orientation = 'vertical'
152152

153-
vertical_content = QWidget()
153+
vertical_content = QWidget(vertical_container)
154154
vertical_content.setLayout(self._vertical_layout)
155155
vertical_container.setWidget(vertical_content)
156156

@@ -208,7 +208,7 @@ def __init__(self, napari_viewer: 'ViewerModel'):
208208
self._vertical_layout.addStretch(1)
209209

210210
horizontal_container: HorizontalOnlyOuterScrollArea = (
211-
HorizontalOnlyOuterScrollArea()
211+
HorizontalOnlyOuterScrollArea(self)
212212
)
213213
horizontal_container.setWidgetResizable(True)
214214
horizontal_container.setVerticalScrollBarPolicy(
@@ -219,7 +219,7 @@ def __init__(self, napari_viewer: 'ViewerModel'):
219219
)
220220
horizontal_container.container_orientation = 'horizontal'
221221

222-
horizontal_content: QWidget = QWidget()
222+
horizontal_content: QWidget = QWidget(horizontal_container)
223223
horizontal_content.setLayout(self._horizontal_layout)
224224
horizontal_container.setWidget(horizontal_content)
225225
self._stacked_layout.addWidget(horizontal_container)
@@ -274,7 +274,7 @@ def __init__(self, napari_viewer: 'ViewerModel'):
274274
)
275275
self._horizontal_layout.addStretch(1)
276276

277-
no_layer_container: QWidget = QWidget()
277+
no_layer_container: QWidget = QWidget(self)
278278
no_layer_container.container_orientation = 'no_layer'
279279
no_layer_container.setLayout(self._no_layer_layout)
280280
self._no_layer_label: QLabel = QLabel(

0 commit comments

Comments
 (0)