packages feed

tart 0.1.1 → 0.1.2

raw patch · 10 files changed

+50/−13 lines, 10 filesdep ~brick

Dependency ranges changed: brick

Files

CHANGELOG.md view
@@ -1,4 +1,12 @@ +0.1.2+-----++Bug fixes:+ * Exceptions triggered during an attempt to save to an invalid path no+   longer cause a crash and are now reported to the user (#4)+ * Canvas size dialog fields are now clickable (#5)+ 0.1.1 ----- 
programs/App.hs view
@@ -91,6 +91,7 @@                       , _canvasPath              = fp                       , _canvasDirty             = False                       , _askToSaveFilenameEdit   = editor AskToSaveFilenameEdit (Just 1) ""+                      , _saveError               = Nothing                       , _appEventChannel         = chan                       , _textEntered             = mempty                       , _textEntryStart          = (0, 0)
programs/Events/AskForSaveFilename.hs view
@@ -22,7 +22,7 @@         then if isQuitting then halt s else continue $ popMode s         else let s' = s & canvasPath .~ Just (T.unpack fn)              in if isQuitting-                then quit False s'+                then quit False (popMode s')                 else continue =<< (popMode <$> saveAndContinue s') handleAskForSaveFilenameEvent _ s (VtyEvent e) =     continue =<< handleEventLensed s askToSaveFilenameEdit handleEditorEvent e
programs/Events/CanvasSizePrompt.hs view
@@ -14,6 +14,12 @@ import State  handleCanvasSizePromptEvent :: AppState -> BrickEvent Name e -> EventM Name (Next AppState)+handleCanvasSizePromptEvent s (MouseDown CanvasSizeWidthEdit _ _ _) =+    continue $ s & canvasSizeFocus %~ focusSetCurrent CanvasSizeWidthEdit+handleCanvasSizePromptEvent s (MouseDown CanvasSizeHeightEdit _ _ _) =+    continue $ s & canvasSizeFocus %~ focusSetCurrent CanvasSizeHeightEdit+handleCanvasSizePromptEvent s (MouseDown _ _ _ _) =+    continue $ popMode s handleCanvasSizePromptEvent s (VtyEvent (V.EvKey (V.KChar '\t') [])) =     continue $ s & canvasSizeFocus %~ focusNext handleCanvasSizePromptEvent s (VtyEvent (V.EvKey V.KBackTab [])) =
programs/State.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TupleSections #-}+{-# LANGUAGE ScopedTypeVariables #-} module State   ( checkForMouseSupport   , setTool@@ -78,6 +79,7 @@  import Control.Monad (when, forM, forM_) import Control.Monad.Trans (liftIO)+import qualified Control.Exception as E import Data.Monoid ((<>)) import qualified Graphics.Vty as V import qualified Data.Vector as Vec@@ -369,8 +371,12 @@                     if ask                     then continue $ askToSave s                     else do-                        liftIO $ saveToDisk s p-                        halt s+                        result <- liftIO $ E.try $ saveToDisk s p+                        case result of+                            Left (e::E.SomeException) ->+                                continue $ askForSaveFilename True $+                                    s & saveError .~ (Just $ T.pack $ show e)+                            Right () -> halt s         False -> halt s  saveToDisk :: AppState -> FilePath -> IO ()@@ -382,9 +388,10 @@ saveAndContinue :: AppState -> EventM Name AppState saveAndContinue s = do     case s^.canvasPath of-        Nothing -> return ()-        Just p -> liftIO $ saveToDisk s p-    return $ s & canvasDirty .~ False+        Nothing -> return s+        Just p -> do+            liftIO $ saveToDisk s p+            return $ s & canvasDirty .~ False  writeCanvasFiles :: FilePath -> [Canvas] -> [Int] -> [String] -> IO () writeCanvasFiles path cs order names = do
programs/Theme.hs view
@@ -5,6 +5,7 @@   , keybindingAttr   , selectedLayerAttr   , clickableAttr+  , errorAttr   ) where @@ -21,6 +22,9 @@ clickableAttr :: AttrName clickableAttr = "clickable" +errorAttr :: AttrName+errorAttr = "error"+ theme :: AttrMap theme = attrMap defAttr   [ (keybindingAttr,        fg white `withStyle` underline)@@ -28,4 +32,5 @@   , (editFocusedAttr,       black `on` yellow)   , (selectedLayerAttr,     white `on` magenta)   , (clickableAttr,         fg white `withStyle` bold)+  , (errorAttr,             fg red)   ]
programs/Types.hs view
@@ -63,6 +63,7 @@   , undoStack   , redoStack   , drawStyle+  , saveError   ) where @@ -233,6 +234,7 @@              , _canvasPath              :: Maybe FilePath              , _canvasDirty             :: Bool              , _askToSaveFilenameEdit   :: Editor T.Text Name+             , _saveError               :: Maybe T.Text              , _appEventChannel         :: BChan AppEvent              , _textEntered             :: [(Char, V.Attr)]              , _textEntryStart          :: (Int, Int)
programs/UI/AskForSaveFilename.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE OverloadedStrings #-} module UI.AskForSaveFilename   ( drawAskForSaveFilenameUI   )@@ -37,8 +38,13 @@                             , withDefAttr keybindingAttr $ str "Esc"                             , str " to cancel)"                             ]-        body = (hCenter $ str "Save changes to:") <=>+        body = maybeError <=>+               (hCenter $ str "Save changes to:") <=>                (hCenter help) <=>                padTopBottom 1 fn+        maybeError = maybe emptyWidget mkSaveError (s^.saveError)+        mkSaveError msg = withDefAttr errorAttr $+                          (hCenter $ txt "Error saving:") <=>+                          (padBottom (Pad 1) $ txtWrap msg)         renderString = txt . T.unlines         fn = str "Path: " <+> renderEditor renderString True (s^.askToSaveFilenameEdit)
programs/UI/CanvasSizePrompt.hs view
@@ -26,7 +26,9 @@     where         body = padBottom (Pad 1) width <=> height         renderString = txt . T.unlines-        width = str "Width: "  <+> withFocusRing (s^.canvasSizeFocus)-            (renderEditor renderString) (s^.canvasSizeWidthEdit)-        height = str "Height: " <+> withFocusRing (s^.canvasSizeFocus)-            (renderEditor renderString) (s^.canvasSizeHeightEdit)+        width = str "Width: "  <+>+                (clickable CanvasSizeWidthEdit $+                 withFocusRing (s^.canvasSizeFocus) (renderEditor renderString) (s^.canvasSizeWidthEdit))+        height = str "Height: " <+>+                (clickable CanvasSizeHeightEdit $+                 withFocusRing (s^.canvasSizeFocus) (renderEditor renderString) (s^.canvasSizeHeightEdit))
tart.cabal view
@@ -1,5 +1,5 @@ name:                tart-version:             0.1.1+version:             0.1.2 synopsis:            Terminal Art description:         A program to make ASCII art license:             BSD3@@ -77,7 +77,7 @@                        Draw.Box   default-language:    Haskell2010   build-depends:       base >=4.9 && < 5,-                       brick >= 0.24,+                       brick >= 0.30,                        vty >= 5.17,                        vector,                        microlens-platform,