Skip to content
  • Felix Ernst's avatar
    Fix item highlighting through DBus · 4d81aabd
    Felix Ernst authored
    Before this commit, even items that are distant children of
    currently open views were considered selectable. This lead to the
    bug that items meant to be highlighted through DBus would not be
    highlighted if any ancestor of the item was open in any view.
    
    This was fixed by only considering items in view if they can be
    seen by scrolling. Main difficulty here was to make this also work
    for the details view mode which allows expanding.
    
    To implement this cleanly, some refactoring seemed necessary
    because the logic to determine if an item is already in view
    was previously intertwined with the logic to identify already open
    directories.
    
    This commit also contains the following refactorings aiming to
    make the code more readable:
    - A magic value (-1) is replaced using std::optional.
    - A boolean trap is removed.
    - A QPair is replaced by a struct with named variables.
    - More and improved documentation
    4d81aabd