aboutsummaryrefslogtreecommitdiff
path: root/lib/Daffm/View.hs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/Daffm/View.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Daffm/View.hs b/lib/Daffm/View.hs
index 01488af..fb72ea6 100644
--- a/lib/Daffm/View.hs
+++ b/lib/Daffm/View.hs
@@ -44,21 +44,23 @@ fileListView appState@(AppState {stateFiles}) =
L.renderListWithIndex (fileItemView appState) True stateFiles
fileItemView :: AppState -> Int -> Bool -> FileInfo -> Widget FocusTarget
-fileItemView appState index sel fileInfo@(FileInfo {filePath, fileSize, fileType, fileMode, fileUser, fileGroup}) =
+fileItemView appState index sel fileInfo@(FileInfo {filePath, fileSize, fileType, fileMode}) =
hBox
[ hFixed 2 fileSelectionView,
hFixed 1 $ fileTypeView fileType,
hFixed 10 $ fileModeView fileMode,
- hFixed 16 $ fileOwnerView fileUser fileGroup,
+ hFixed (maxOwnerSize + 1) $ fileOwnerView fileInfo,
hFixed 7 $ fileSizeView fileSize,
fileNameView sel fileInfo,
searchMatchIndicatorView
]
where
+ maxOwnerSize = Vec.maximum . Vec.map (Text.length . ownerInfo) . L.listElements $ stateFiles appState
+ ownerInfo (FileInfo {fileUser = user, fileGroup = group}) = user <> ":" <> group
fileSizeView = txt . prettyFileSize . fromIntegral
fileTypeView = withAttr fileTypeAttr . txt . showFileType
fileModeView = withAttr fileModeAttr . txt . showFileMode
- fileOwnerView user group = withAttr fileOwnerAttr . txt $ user <> ":" <> group
+ fileOwnerView = withAttr fileOwnerAttr . txt . ownerInfo
fileSelectionView = txt $ if Set.member filePath $ stateFileSelections appState then ">" else " "
searchMatchIndicatorView
| index `Vec.elem` stateSearchMatches appState = padLeft (Pad 1) $ withAttr searchMarchAttr $ txt "*"