]> cloud.milkyroute.net Git - dolphin.git/commit
Fix item highlighting through DBus
authorFelix Ernst <fe.a.ernst@gmail.com>
Tue, 9 Aug 2022 14:02:55 +0000 (16:02 +0200)
committerFelix Ernst <fe.a.ernst@gmail.com>
Tue, 11 Oct 2022 13:26:31 +0000 (15:26 +0200)
commit4d81aabd1ee78c2fca61452ef3a866cfad0c88a5
tree83b182680cfd8bab3a76054478a56896e60b8f61
parent8916a647d6701c910c04c2cacecf60c014ac944f
Fix item highlighting through DBus

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
src/dolphinmainwindow.cpp
src/dolphinmainwindow.h
src/dolphintabwidget.cpp
src/dolphintabwidget.h
src/global.cpp
src/views/dolphinview.cpp
src/views/dolphinview.h