From 2e280d3001080cb3fc508485933a0eb798d29148 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Sat, 25 Feb 2017 15:40:47 -0700 Subject: read /etc/papersize, and presets restore paper size --- Main.hs | 21 +++++++++++---------- Presets.hs | 9 ++++++--- Types/State.hs | 3 ++- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/Main.hs b/Main.hs index 21f1747..d4b50c6 100644 --- a/Main.hs +++ b/Main.hs @@ -66,16 +66,6 @@ appEvent st (VtyEvent e) = _ -> continue st appEvent st _ = continue st -initialState :: St -initialState = - St { _stScanningSession = Nothing - , _stOCR = True - , _stColour = Greyscale - , _stPaper = A4 - , _stDPI = 300 - , _stOutdir = "" - } - theApp :: App St e () theApp = App { appDraw = drawUI @@ -86,4 +76,15 @@ theApp = } main = do + papersize <- init <$> readFile "/etc/papersize" + let paper = if papersize == "letter" then Letter else A4 + initialState = St + { _stScanningSession = Nothing + , _stOCR = True + , _stColour = Greyscale + , _stPaper = paper + , _stDefaultPaper = paper + , _stDPI = 300 + , _stOutdir = "" + } void $ defaultMain theApp initialState diff --git a/Presets.hs b/Presets.hs index a783eb8..b31aefc 100644 --- a/Presets.hs +++ b/Presets.hs @@ -2,10 +2,11 @@ module Presets (presets, lookupPreset) where -import Data.List (find) +import Data.List (find) +import Lens.Micro ((&), (.~), (^.)) -import Types.Preset -import Types.State +import Types.Preset +import Types.State presets :: [Preset] presets = [ Preset 'h' "handwritten notes" handwrittenNotes @@ -19,10 +20,12 @@ handwrittenNotes = \st -> st { _stOCR = False , _stColour = Greyscale , _stDPI = 75 + , _stPaper = st^.stDefaultPaper } typewrittenDocs = \st -> st { _stOCR = True , _stColour = Greyscale , _stDPI = 300 + , _stPaper = st^.stDefaultPaper } diff --git a/Types/State.hs b/Types/State.hs index 139310d..c8948a0 100644 --- a/Types/State.hs +++ b/Types/State.hs @@ -34,7 +34,8 @@ data St = -- scans in this dir , _stOCR :: Bool -- ^ whether to use OCRmyPDF , _stColour :: Colour - , _stPaper :: Paper + , _stPaper :: Paper -- ^ currently selected paper size + , _stDefaultPaper :: Paper -- ^ locale's default paper size , _stDPI :: DPI , _stOutdir :: FilePath -- ^ where to save final PDFs } -- cgit v1.2.3