ui: use only shift-cursor keys for period; simplify
This commit is contained in:
parent
a263d50275
commit
af9daa3b11
@ -287,19 +287,15 @@ asHandle ui0@UIState{
|
|||||||
EvKey (KChar '_') [] -> continue $ regenerateScreens j d $ decDepth ui
|
EvKey (KChar '_') [] -> continue $ regenerateScreens j d $ decDepth ui
|
||||||
EvKey (KChar c) [] | c `elem` ['+','='] -> continue $ regenerateScreens j d $ incDepth ui
|
EvKey (KChar c) [] | c `elem` ['+','='] -> continue $ regenerateScreens j d $ incDepth ui
|
||||||
EvKey (KChar 't') [] -> continue $ regenerateScreens j d $ setReportPeriod (DayPeriod d) ui
|
EvKey (KChar 't') [] -> continue $ regenerateScreens j d $ setReportPeriod (DayPeriod d) ui
|
||||||
EvKey (KChar 'd') [] -> continue $ regenerateScreens j d $ cycleReportDurationDown d ui
|
|
||||||
EvKey (KChar 'u') [] -> continue $ regenerateScreens j d $ cycleReportDurationUp d ui
|
|
||||||
EvKey (KDown) [MShift] -> continue $ regenerateScreens j d $ cycleReportDurationDown d ui
|
|
||||||
EvKey (KUp) [MShift] -> continue $ regenerateScreens j d $ cycleReportDurationUp d ui
|
|
||||||
EvKey (KChar 'n') [] -> continue $ regenerateScreens j d $ nextReportPeriod ui
|
|
||||||
EvKey (KChar 'p') [] -> continue $ regenerateScreens j d $ previousReportPeriod ui
|
|
||||||
EvKey (KRight) [MShift] -> continue $ regenerateScreens j d $ nextReportPeriod ui
|
|
||||||
EvKey (KLeft) [MShift] -> continue $ regenerateScreens j d $ previousReportPeriod ui
|
|
||||||
EvKey (KChar 'F') [] -> continue $ regenerateScreens j d $ toggleFlat ui
|
EvKey (KChar 'F') [] -> continue $ regenerateScreens j d $ toggleFlat ui
|
||||||
EvKey (KChar 'Z') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleEmpty ui)
|
EvKey (KChar 'Z') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleEmpty ui)
|
||||||
EvKey (KChar 'C') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleCleared ui)
|
EvKey (KChar 'C') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleCleared ui)
|
||||||
EvKey (KChar 'U') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleUncleared ui)
|
EvKey (KChar 'U') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleUncleared ui)
|
||||||
EvKey (KChar 'R') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleReal ui)
|
EvKey (KChar 'R') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleReal ui)
|
||||||
|
EvKey (KDown) [MShift] -> continue $ regenerateScreens j d $ shrinkReportPeriod d ui
|
||||||
|
EvKey (KUp) [MShift] -> continue $ regenerateScreens j d $ growReportPeriod d ui
|
||||||
|
EvKey (KRight) [MShift] -> continue $ regenerateScreens j d $ nextReportPeriod ui
|
||||||
|
EvKey (KLeft) [MShift] -> continue $ regenerateScreens j d $ previousReportPeriod ui
|
||||||
EvKey (KChar '/') [] -> continue $ regenerateScreens j d $ showMinibuffer ui
|
EvKey (KChar '/') [] -> continue $ regenerateScreens j d $ showMinibuffer ui
|
||||||
EvKey k [] | k `elem` [KBS, KDel] -> (continue $ regenerateScreens j d $ resetFilter ui)
|
EvKey k [] | k `elem` [KBS, KDel] -> (continue $ regenerateScreens j d $ resetFilter ui)
|
||||||
EvKey k [] | k `elem` [KLeft, KChar 'h'] -> continue $ popScreen ui
|
EvKey k [] | k `elem` [KLeft, KChar 'h'] -> continue $ popScreen ui
|
||||||
|
|||||||
@ -260,14 +260,6 @@ rsHandle ui@UIState{
|
|||||||
EvKey (KChar 'I') [] -> continue $ uiCheckBalanceAssertions d (toggleIgnoreBalanceAssertions ui)
|
EvKey (KChar 'I') [] -> continue $ uiCheckBalanceAssertions d (toggleIgnoreBalanceAssertions ui)
|
||||||
EvKey (KChar 'a') [] -> suspendAndResume $ clearScreen >> setCursorPosition 0 0 >> add copts j >> uiReloadJournalIfChanged copts d j ui
|
EvKey (KChar 'a') [] -> suspendAndResume $ clearScreen >> setCursorPosition 0 0 >> add copts j >> uiReloadJournalIfChanged copts d j ui
|
||||||
EvKey (KChar 't') [] -> continue $ regenerateScreens j d $ setReportPeriod (DayPeriod d) ui
|
EvKey (KChar 't') [] -> continue $ regenerateScreens j d $ setReportPeriod (DayPeriod d) ui
|
||||||
EvKey (KChar 'd') [] -> continue $ regenerateScreens j d $ cycleReportDurationDown d ui
|
|
||||||
EvKey (KChar 'u') [] -> continue $ regenerateScreens j d $ cycleReportDurationUp d ui
|
|
||||||
EvKey (KDown) [MShift] -> continue $ regenerateScreens j d $ cycleReportDurationDown d ui
|
|
||||||
EvKey (KUp) [MShift] -> continue $ regenerateScreens j d $ cycleReportDurationUp d ui
|
|
||||||
EvKey (KChar 'n') [] -> continue $ regenerateScreens j d $ nextReportPeriod ui
|
|
||||||
EvKey (KChar 'p') [] -> continue $ regenerateScreens j d $ previousReportPeriod ui
|
|
||||||
EvKey (KRight) [MShift] -> continue $ regenerateScreens j d $ nextReportPeriod ui
|
|
||||||
EvKey (KLeft) [MShift] -> continue $ regenerateScreens j d $ previousReportPeriod ui
|
|
||||||
EvKey (KChar 'E') [] -> suspendAndResume $ void (runEditor pos f) >> uiReloadJournalIfChanged copts d j ui
|
EvKey (KChar 'E') [] -> suspendAndResume $ void (runEditor pos f) >> uiReloadJournalIfChanged copts d j ui
|
||||||
where
|
where
|
||||||
(pos,f) = case listSelectedElement rsList of
|
(pos,f) = case listSelectedElement rsList of
|
||||||
@ -279,6 +271,10 @@ rsHandle ui@UIState{
|
|||||||
EvKey (KChar 'U') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleUncleared ui)
|
EvKey (KChar 'U') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleUncleared ui)
|
||||||
EvKey (KChar 'R') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleReal ui)
|
EvKey (KChar 'R') [] -> scrollTop >> (continue $ regenerateScreens j d $ toggleReal ui)
|
||||||
EvKey (KChar '/') [] -> (continue $ regenerateScreens j d $ showMinibuffer ui)
|
EvKey (KChar '/') [] -> (continue $ regenerateScreens j d $ showMinibuffer ui)
|
||||||
|
EvKey (KDown) [MShift] -> continue $ regenerateScreens j d $ shrinkReportPeriod d ui
|
||||||
|
EvKey (KUp) [MShift] -> continue $ regenerateScreens j d $ growReportPeriod d ui
|
||||||
|
EvKey (KRight) [MShift] -> continue $ regenerateScreens j d $ nextReportPeriod ui
|
||||||
|
EvKey (KLeft) [MShift] -> continue $ regenerateScreens j d $ previousReportPeriod ui
|
||||||
EvKey k [] | k `elem` [KBS, KDel] -> (continue $ regenerateScreens j d $ resetFilter ui)
|
EvKey k [] | k `elem` [KBS, KDel] -> (continue $ regenerateScreens j d $ resetFilter ui)
|
||||||
EvKey k [] | k `elem` [KLeft, KChar 'h'] -> continue $ popScreen ui
|
EvKey k [] | k `elem` [KLeft, KChar 'h'] -> continue $ popScreen ui
|
||||||
EvKey k [] | k `elem` [KRight, KChar 'l', KEnter] -> do
|
EvKey k [] | k `elem` [KRight, KChar 'l', KEnter] -> do
|
||||||
|
|||||||
@ -68,36 +68,15 @@ toggleIgnoreBalanceAssertions :: UIState -> UIState
|
|||||||
toggleIgnoreBalanceAssertions ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{}}} =
|
toggleIgnoreBalanceAssertions ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{}}} =
|
||||||
ui{aopts=uopts{cliopts_=copts{ignore_assertions_=not $ ignore_assertions_ copts}}}
|
ui{aopts=uopts{cliopts_=copts{ignore_assertions_=not $ ignore_assertions_ copts}}}
|
||||||
|
|
||||||
-- | Cycle through larger report periods.
|
-- | Step through larger report periods, up to all.
|
||||||
cycleReportDurationUp :: Day -> UIState -> UIState
|
growReportPeriod :: Day -> UIState -> UIState
|
||||||
cycleReportDurationUp d ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
growReportPeriod _d ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
||||||
ui{aopts=uopts{cliopts_=copts{reportopts_=reportOptsCycleDurationUp d ropts}}}
|
ui{aopts=uopts{cliopts_=copts{reportopts_=ropts{period_=periodGrow $ period_ ropts}}}}
|
||||||
|
|
||||||
-- | Cycle through smaller report periods.
|
-- | Step through smaller report periods, down to a day.
|
||||||
cycleReportDurationDown :: Day -> UIState -> UIState
|
shrinkReportPeriod :: Day -> UIState -> UIState
|
||||||
cycleReportDurationDown d ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
shrinkReportPeriod d ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
||||||
ui{aopts=uopts{cliopts_=copts{reportopts_=reportOptsCycleDurationDown d ropts}}}
|
ui{aopts=uopts{cliopts_=copts{reportopts_=ropts{period_=periodShrink d $ period_ ropts}}}}
|
||||||
|
|
||||||
-- | Cycle through increasingly large report periods using periodGrow,
|
|
||||||
-- then start again at today.
|
|
||||||
reportOptsCycleDurationUp :: Day -> ReportOpts -> ReportOpts
|
|
||||||
reportOptsCycleDurationUp d ropts@ReportOpts{period_=p} = ropts{period_=p'}
|
|
||||||
where
|
|
||||||
p' = case p of
|
|
||||||
PeriodAll -> DayPeriod d
|
|
||||||
PeriodFrom _ -> DayPeriod d
|
|
||||||
PeriodTo _ -> DayPeriod d
|
|
||||||
PeriodBetween _ _ -> DayPeriod d
|
|
||||||
_ -> periodGrow p
|
|
||||||
|
|
||||||
-- | Cycle through increasingly small report periods using periodShrink,
|
|
||||||
-- then start again at unlimited.
|
|
||||||
reportOptsCycleDurationDown :: Day -> ReportOpts -> ReportOpts
|
|
||||||
reportOptsCycleDurationDown d ropts@ReportOpts{period_=p} = ropts{period_=p'}
|
|
||||||
where
|
|
||||||
p' = case p of
|
|
||||||
DayPeriod _ -> PeriodAll
|
|
||||||
_ -> periodShrink d p
|
|
||||||
|
|
||||||
-- | Step the report start/end dates to the next period of same duration.
|
-- | Step the report start/end dates to the next period of same duration.
|
||||||
nextReportPeriod :: UIState -> UIState
|
nextReportPeriod :: UIState -> UIState
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user