• Harald Sitter's avatar
    make services disqualification much stricter · 7b1dc9a4
    Harald Sitter authored
    Summary:
    after the recent set of changes to disqualification we ended up with a bit
    too lax disqualification. if we saw the exec OR the storageid we'd
    hence forth disqualify a service with either of them being equal.
    
    in case of system settings this causes a match problem. systemsettings
    has two desktop files one !KDE and one OnlyKDE they are however exactly
    the same except for a different name and storageid. as a result if the !KDE
    one is encountered first it will be disqualified on account of
    noDisplay=true and marked as seen. when the OnlyKDE systemsettings is then
    iterated it will already have the Exec entry in the seen list and be
    disqualified on account of that.
    
    to prevent this type of confusion make it a requirement to match both
    storageid AND exec before disqualifying.
    
    it may actually be suitable to drop the exec altogether. say I copy firefox
    into the user local applications dir and set it NoDisplay=true but change
    the exec. this would still lead to the system-wide firefox being found as
    it is not getting disqualified. long story short: maybe we should
    disqualify services solely on the storageid?
    
    Test Plan:
    - new autotest case
    - fails without changes
    - passes with changes
    
    Reviewers: broulik
    
    Reviewed By: broulik
    
    Subscribers: plasma-devel
    
    Tags: #plasma
    
    Differential Revision: https://phabricator.kde.org/D4415
    7b1dc9a4