aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2017-02-25 15:40:47 -0700
committerSean Whitton <spwhitton@spwhitton.name>2017-02-25 15:40:47 -0700
commit2e280d3001080cb3fc508485933a0eb798d29148 (patch)
tree03bf2e74e928d8e7a811ebab01015e28e7db0dbd
parentc4a2d0cdd5be556848627fb65d603e1fd5d66a2f (diff)
downloadsscan-2e280d3001080cb3fc508485933a0eb798d29148.tar.gz
read /etc/papersize, and presets restore paper size
-rw-r--r--Main.hs21
-rw-r--r--Presets.hs9
-rw-r--r--Types/State.hs3
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
}