diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-10-03 17:30:44 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-10-03 17:30:44 +0530 |
| commit | 4d669ba5d5858e47b8d5723aae89b75481a2df2f (patch) | |
| tree | 8a939aa17cf850a74b51637a8a7e1a1846e3a02a /lib/Daffm/View.hs | |
| parent | a3d5295ee745ab851c28d0a53147cbad65a7805f (diff) | |
| download | daffm-4d669ba5d5858e47b8d5723aae89b75481a2df2f.tar.gz daffm-4d669ba5d5858e47b8d5723aae89b75481a2df2f.zip | |
Add multifile selection/marking
Diffstat (limited to '')
| -rw-r--r-- | lib/Daffm/View.hs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/Daffm/View.hs b/lib/Daffm/View.hs index 906fe26..9e0294d 100644 --- a/lib/Daffm/View.hs +++ b/lib/Daffm/View.hs @@ -7,6 +7,7 @@ import qualified Brick.Widgets.List as L import Daffm.Attrs (directoryAttr, directorySelectedAttr, fileAttr, fileSelectedAttr) import Daffm.Types (AppState (..), FileInfo (..), FileType (..), FocusTarget (..)) import Data.Int (Int64) +import qualified Data.Set as Set import qualified Data.Vector as Vec import System.Posix.Types (FileMode) import qualified System.PosixCompat as Posix @@ -18,7 +19,7 @@ appView appState@(AppState {stateFiles}) = [ui] ui = vBox [vLimit 1 header, box, vLimit 1 cmdline] header = headerView appState cmdline = cmdlineView appState - box = L.renderList fileItemView True stateFiles + box = L.renderList (fileItemView appState) True stateFiles hFixed :: Int -> Widget n -> Widget n hFixed w = hLimit w . padRight Max @@ -26,10 +27,11 @@ hFixed w = hLimit w . padRight Max headerView :: AppState -> Widget n headerView (AppState {stateCwd}) = str stateCwd -fileItemView :: Bool -> FileInfo -> Widget FocusTarget -fileItemView sel fileInfo@(FileInfo {fileSize, fileType, fileMode}) = +fileItemView :: AppState -> Bool -> FileInfo -> Widget FocusTarget +fileItemView appState sel fileInfo@(FileInfo {filePath, fileSize, fileType, fileMode}) = hBox - [ hFixed 10 $ fileModeView fileMode, + [ hFixed 2 fileSelectionView, + hFixed 10 $ fileModeView fileMode, hFixed 6 $ fileTypeView fileType, hFixed 7 $ fileSizeView fileSize, fileNameView sel fileInfo @@ -38,6 +40,7 @@ fileItemView sel fileInfo@(FileInfo {fileSize, fileType, fileMode}) = fileSizeView = str . prettyFileSize . fromIntegral fileTypeView = str . showFileType fileModeView = str . showFileMode + fileSelectionView = str $ if Set.member filePath $ stateFileSelections appState then ">" else " " showFileType :: FileType -> String showFileType Directory = "dir" |
