D12462: Add support for icon-only tasks (what browsers call pinned tabs)

Christian noreply at phabricator.kde.org
Mon Apr 23 20:25:05 UTC 2018


Fuchs added a comment.


  On the existing bug: it's related to the TODO, changing that to
  
    for (int i = 0; i < d->concatProxyModel->rowCount(); ++i) {
        const QModelIndex &itIndex = d->concatProxyModel->index(i, 0);
    
        // Launchers can't be pinned / unpinned
        if (itIndex.data(AbstractTasksModel::IsLauncher).toBool()) {
            continue;
        }
        
        dataChanged(itIndex, itIndex, QVector<int>{AbstractTasksModel::IsPinned});
        
    }
  
  fixes the bug, but of course that goes through all items and not only the needed ones, so it's bad performance-wise.
  
                
  
  Oddly enough, changing the second part to
  
    // Check all windows if they match, then update the isPinned for them too. 
    // This is needed so if you pin / unpin an app that has multiple instances open, all are updated.
    if (appsMatch(index, itIndex)) {
        dataChanged(itIndex, itIndex, QVector<int>{AbstractTasksModel::IsPinned});
    }
  
  matched only parts of the same window, so if I e.g. had 3 konsole instances open, it affected 2/3 sometimes.
  
  No idea what I am doing wrong here, hopefully @hein  will know what list I best iterate over and how to best compare them, so it's not only fixed, but fixed without performance impact.

REPOSITORY
  R120 Plasma Workspace

REVISION DETAIL
  https://phabricator.kde.org/D12462

To: Fuchs, hein
Cc: plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20180423/d2ef7557/attachment.html>


More information about the Plasma-devel mailing list