@@ -276,7 +276,8 @@ StyledListView {
276276
277277 property var control: null
278278 property var model: null
279- property alias isOpened: palettePopup .active
279+
280+ readonly property bool isOpened: palettePopup .active && palettePopup .item .isOpened
280281
281282 sourceComponent: MoreElementsPopup {
282283 id: moreElementsPopup
@@ -320,7 +321,6 @@ StyledListView {
320321
321322 onClosed: {
322323 enablePaletteAnimations = false ;
323- palettePopup .active = false ;
324324 }
325325
326326 function scrollToPopupBottom () {
@@ -349,25 +349,28 @@ StyledListView {
349349 }
350350
351351 function close () {
352- if (palettePopup .active ) {
353- palettePopup .item .close ();
352+ if (palettePopup .isOpened ) {
353+ palettePopup .item .close ()
354354 }
355355 }
356356
357357 function toggleOpened (model , control , parent ) {
358- if (palettePopup .active ) {
359- palettePopup .close ();
360- return ;
358+ if (palettePopup .isOpened ) {
359+ palettePopup .close ()
360+ return
361361 }
362362
363- palettePopup .parent = parent;
364- palettePopup .model = model;
365- palettePopup .control = control;
363+ // Force a full re-load of the component (ensures the geometry updates, etc.)
364+ palettePopup .active = false
365+
366+ palettePopup .parent = parent
367+ palettePopup .model = model
368+ palettePopup .control = control
366369
367- palettePopup .active = true ;
368- palettePopup .item .setParentItem (parent);
370+ palettePopup .active = true
371+ palettePopup .item .setParentItem (parent)
369372
370- palettePopup .item .toggleOpened ();
373+ palettePopup .item .toggleOpened ()
371374 }
372375 }
373376
@@ -407,7 +410,7 @@ StyledListView {
407410 }
408411
409412 Component .onDestruction : {
410- if (palettePopup .active && palettePopup .model === model) {
413+ if (palettePopup .isOpened && palettePopup .model === model) {
411414 palettePopup .close ()
412415 }
413416 }
0 commit comments