status: improve the behavior when operating on selections
commit736edfe390541e8b50cf56013eaa0c298780d338
authorDavid Aguilar <davvid@gmail.com>
Sun, 14 Mar 2021 13:04:52 +0000 (14 06:04 -0700)
committerDavid Aguilar <davvid@gmail.com>
Sun, 14 Mar 2021 18:26:45 +0000 (14 11:26 -0700)
tree17d608c0626c2cabddd25206ece5829221c2951f
parentbeb2a960f6f2c21c80dd00d09d189588cfe73d1f
status: improve the behavior when operating on selections

Improve the usability when interacting with selections in the status
widget. Ensure that all files are processed in a sensible way without
surprises.

We now can operate on both header items and individual files in a single
operation. When the header items are selected, we now detect when
modified and untracked headers are both selected, and correctly stage
all files in this situation.

If a header item such as "Modified" is selected alongside individually
selected Untracked files, the behavior is now that all modified files
and just the selected subset of untracked files is staged.

We can now use ctrl-a to select everything followed by ctrl-s and the
files will be staged as expected.

Closes #1117
Reported-by: nyanpasu64 <nyanpasu64@tuta.io>
Signed-off-by: David Aguilar <davvid@gmail.com>
cola/widgets/status.py