@@ -319,6 +319,11 @@ QStandardItem * TraySortOrderModel::createTrayItem(const QString & name, const Q
319319
320320void TraySortOrderModel::updateVisualIndexes ()
321321{
322+ for (int i = 0 ; i < rowCount (); i++) {
323+ auto results = item (i);
324+ results->setData (-1 , TraySortOrderModel::VisualIndexRole);
325+ }
326+
322327 // stashed action
323328 // "internal/action-stash-placeholder"
324329 QList<QStandardItem *> results = findItems (" internal/action-stash-placeholder" );
@@ -332,10 +337,10 @@ void TraySortOrderModel::updateVisualIndexes()
332337 for (const QString & id : std::as_const (m_stashedIds)) {
333338 QList<QStandardItem *> results = findItems (id);
334339 if (results.isEmpty ()) continue ;
340+ if (results[0 ]->data (TraySortOrderModel::VisualIndexRole).toInt () != -1 ) continue ;
335341 if (stashPlaceholder == results[0 ]) continue ;
336342 bool itemVisible = results[0 ]->data (TraySortOrderModel::IsForceDockRole).toBool () || !m_hiddenIds.contains (id);
337343 results[0 ]->setData (SECTION_STASHED , TraySortOrderModel::SectionTypeRole);
338- results[0 ]->setData (itemVisible, TraySortOrderModel::VisibilityRole);
339344 if (itemVisible) {
340345 showStashActionVisible = true ;
341346 results[0 ]->setData (stashedVisualIndex, TraySortOrderModel::VisualIndexRole);
@@ -360,10 +365,10 @@ void TraySortOrderModel::updateVisualIndexes()
360365 for (const QString & id : std::as_const (m_collapsableIds)) {
361366 QList<QStandardItem *> results = findItems (id);
362367 if (results.isEmpty ()) continue ;
368+ if (results[0 ]->data (TraySortOrderModel::VisualIndexRole).toInt () != -1 ) continue ;
363369 bool itemVisible = results[0 ]->data (TraySortOrderModel::IsForceDockRole).toBool () || !m_hiddenIds.contains (id);
364370 results[0 ]->setData (SECTION_COLLAPSABLE , TraySortOrderModel::SectionTypeRole);
365371 results[0 ]->setData (itemVisible, TraySortOrderModel::VisibilityRole);
366- results[0 ]->setData (-1 , TraySortOrderModel::VisualIndexRole);
367372 if (itemVisible) {
368373 toogleCollapseActionVisible = true ;
369374 if (!m_collapsed) {
@@ -378,7 +383,6 @@ void TraySortOrderModel::updateVisualIndexes()
378383 results = findItems (" internal/action-toggle-collapse" );
379384 Q_ASSERT (!results.isEmpty ());
380385 results[0 ]->setData (toogleCollapseActionVisible, TraySortOrderModel::VisibilityRole);
381- results[0 ]->setData (-1 , TraySortOrderModel::VisualIndexRole);
382386 if (toogleCollapseActionVisible) {
383387 results[0 ]->setData (currentVisualIndex, TraySortOrderModel::VisualIndexRole);
384388 currentVisualIndex++;
@@ -388,10 +392,10 @@ void TraySortOrderModel::updateVisualIndexes()
388392 for (const QString & id : std::as_const (m_pinnedIds)) {
389393 QList<QStandardItem *> results = findItems (id);
390394 if (results.isEmpty ()) continue ;
395+ if (results[0 ]->data (TraySortOrderModel::VisualIndexRole).toInt () != -1 ) continue ;
391396 bool itemVisible = results[0 ]->data (TraySortOrderModel::IsForceDockRole).toBool () || !m_hiddenIds.contains (id);
392397 results[0 ]->setData (SECTION_PINNED , TraySortOrderModel::SectionTypeRole);
393398 results[0 ]->setData (itemVisible, TraySortOrderModel::VisibilityRole);
394- results[0 ]->setData (-1 , TraySortOrderModel::VisualIndexRole);
395399 if (itemVisible) {
396400 results[0 ]->setData (currentVisualIndex, TraySortOrderModel::VisualIndexRole);
397401 currentVisualIndex++;
@@ -411,10 +415,10 @@ void TraySortOrderModel::updateVisualIndexes()
411415 for (const QString & id : std::as_const (m_fixedIds)) {
412416 QList<QStandardItem *> results = findItems (id);
413417 if (results.isEmpty ()) continue ;
418+ if (results[0 ]->data (TraySortOrderModel::VisualIndexRole).toInt () != -1 ) continue ;
414419 bool itemVisible = results[0 ]->data (TraySortOrderModel::IsForceDockRole).toBool () || !m_hiddenIds.contains (id);
415420 results[0 ]->setData (SECTION_FIXED , TraySortOrderModel::SectionTypeRole);
416421 results[0 ]->setData (itemVisible, TraySortOrderModel::VisibilityRole);
417- results[0 ]->setData (-1 , TraySortOrderModel::VisualIndexRole);
418422 if (itemVisible) {
419423 results[0 ]->setData (currentVisualIndex, TraySortOrderModel::VisualIndexRole);
420424 currentVisualIndex++;
0 commit comments