From a8f1968d4b855f27f30965e571f01f0b97920605 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 7 Jul 2024 23:36:33 +0100 Subject: [PATCH] imp: ui: menu screen: support the shift arrow and shift T keys, for consistency --- hledger-ui/Hledger/UI/MenuScreen.hs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hledger-ui/Hledger/UI/MenuScreen.hs b/hledger-ui/Hledger/UI/MenuScreen.hs index 40467c1b2..331ff11f7 100644 --- a/hledger-ui/Hledger/UI/MenuScreen.hs +++ b/hledger-ui/Hledger/UI/MenuScreen.hs @@ -36,6 +36,7 @@ import Hledger.UI.UIScreens import Hledger.UI.ErrorScreen (uiReloadJournal, uiCheckBalanceAssertions, uiReloadJournalIfChanged) import Hledger.UI.Editor (runIadd, runEditor, endPosition) import Brick.Widgets.Edit (getEditContents, handleEditorEvent) +import Control.Arrow ((>>>)) msDraw :: UIState -> [Widget Name] @@ -113,6 +114,7 @@ msHandle ev = do Nothing -> Nothing nonblanks = V.takeWhile (not . T.null . msItemScreenName) $ listElements $ _mssList sst lastnonblankidx = max 0 (length nonblanks - 1) + journalspan = journalDateSpan False j d <- liftIO getCurrentDay case mode of @@ -193,6 +195,13 @@ msHandle ev = do VtyEvent (EvKey (KChar '/') []) -> put' $ regenerateScreens j d $ showMinibuffer "filter" Nothing ui VtyEvent (EvKey k []) | k `elem` [KBS, KDel] -> (put' $ regenerateScreens j d $ resetFilter ui) + -- narrow/widen/move the period as on other screens, for consistency + VtyEvent (EvKey (KChar 'T') []) -> modify' (setReportPeriod (DayPeriod d) >>> regenerateScreens j d) + VtyEvent (EvKey (KDown) [MShift]) -> modify' (shrinkReportPeriod d >>> regenerateScreens j d) + VtyEvent (EvKey (KUp) [MShift]) -> modify' (growReportPeriod d >>> regenerateScreens j d) + VtyEvent (EvKey (KRight) [MShift]) -> modify' (nextReportPeriod journalspan >>> regenerateScreens j d) + VtyEvent (EvKey (KLeft) [MShift]) -> modify' (previousReportPeriod journalspan >>> regenerateScreens j d) + VtyEvent (EvKey (KChar 'l') [MCtrl]) -> scrollSelectionToMiddle (_mssList sst) >> redraw VtyEvent (EvKey (KChar 'z') [MCtrl]) -> suspend ui