packages feed

hxournal 0.6.1 → 0.6.1.0

raw patch · 22 files changed

+77/−103 lines, 22 filesdep ~xournal-render

Dependency ranges changed: xournal-render

Files

hxournal.cabal view
@@ -1,5 +1,5 @@ Name:		hxournal-Version:	0.6.1+Version:	0.6.1.0 Synopsis:	A pen notetaking program written in haskell  Description: 	notetaking program written in haskell and gtk2hs Homepage:       http://ianwookim.org/hxournal@@ -50,7 +50,7 @@                      transformers == 0.2.*,                      xournal-types == 0.2.*,                      xournal-parser == 0.3.*,-                     xournal-render == 0.4.*,+                     xournal-render >= 0.4.0.0 && < 0.5,                      xournal-builder == 0.1.*,                      containers == 0.4.*,                      template-haskell == 2.*,@@ -72,7 +72,7 @@                      transformers == 0.2.*,                      xournal-types == 0.2.*,                      xournal-parser == 0.3.*,-                     xournal-render == 0.4.*,+                     xournal-render >= 0.4.0.0 && < 0.5,                      xournal-builder == 0.1.*,                      containers == 0.4.*,                      template-haskell == 2.*,
lib/Application/HXournal/Accessor.hs view
@@ -18,7 +18,7 @@ import Graphics.UI.Gtk hiding (get,set)  import Data.Xournal.BBox-import Data.Xournal.Simple+ import Data.Xournal.Generic  getSt :: Iteratee MyEvent XournalStateIO HXournalState
lib/Application/HXournal/Coroutine/Commit.hs view
@@ -14,7 +14,7 @@ import Control.Monad.Trans import Application.HXournal.Accessor -import Graphics.Xournal.Render.BBoxMapPDF+  commit :: HXournalState -> Iteratee MyEvent XournalStateIO () commit xstate = do 
lib/Application/HXournal/Coroutine/Default.hs view
@@ -7,7 +7,7 @@ import Application.HXournal.Type.Canvas import Application.HXournal.Type.XournalState import Application.HXournal.Type.Clipboard-import Application.HXournal.Draw+ import Application.HXournal.Accessor  import Application.HXournal.GUI.Menu@@ -24,8 +24,8 @@ import Application.HXournal.Coroutine.Mode import Application.HXournal.Coroutine.Window -import Application.HXournal.ModelAction.Adjustment-import Application.HXournal.ModelAction.Page++ import Application.HXournal.ModelAction.Window  import Application.HXournal.Type.Window  import Application.HXournal.Device@@ -39,8 +39,8 @@ import Data.Label import Prelude hiding ((.), id) import Data.IORef-import Data.Xournal.Map + import Data.Xournal.Generic  guiProcess :: Iteratee MyEvent XournalStateIO () @@ -163,7 +163,7 @@     lift . St.put $ xstate'     invalidate cid defaultEventProcess (VScrollBarStart cid _v) = vscrollStart cid -defaultEventProcess (CanvasConfigure cid w' h') = canvasZoomUpdate Nothing cid +defaultEventProcess (CanvasConfigure cid _w' _h') = canvasZoomUpdate Nothing cid  --    xstate <- getSt --    let cinfoMap = get canvasInfoMap xstate 
lib/Application/HXournal/Coroutine/Draw.hs view
@@ -7,7 +7,7 @@ import Application.HXournal.Draw import Application.HXournal.Accessor -import Data.Xournal.Simple+ import Data.Xournal.BBox  import Control.Applicative @@ -58,17 +58,12 @@                     $ cvsInfo )  -invalidateGen  :: [CanvasId] -> Maybe BBox -> PageDrawF-               -> Iteratee MyEvent XournalStateIO ()-invalidateGen cids mbbox drawf = do                -  forM_ cids $ \x -> invalidateSelSingle x mbbox drawf drawSelectionInBBox- invalidateAll :: Iteratee MyEvent XournalStateIO () invalidateAll = do   xstate <- getSt   let cinfoMap  = get canvasInfoMap xstate       keys = M.keys cinfoMap -  invalidateGen keys Nothing drawPageInBBox+  forM_ keys invalidate   invalidateOther :: Iteratee MyEvent XournalStateIO () invalidateOther = do @@ -76,15 +71,15 @@   let currCvsId = get currentCanvas xstate       cinfoMap  = get canvasInfoMap xstate       keys = M.keys cinfoMap -  invalidateGen (filter (/=currCvsId) keys) Nothing drawPageInBBox+  mapM_ invalidate (filter (/=currCvsId) keys)+   --- | invalidate everything+-- | invalidate clear   invalidate :: CanvasId -> Iteratee MyEvent XournalStateIO ()  invalidate cid = invalidateSelSingle cid Nothing drawPageClearly drawPageSelClearly-                 -- drawSelectionInBBox-                 -- drawPageInBBox drawSelectionInBBox + -- | Drawing objects only in BBox  invalidateInBBox :: CanvasId -> BBox -> Iteratee MyEvent XournalStateIO ()@@ -95,32 +90,16 @@ invalidateDrawBBox :: CanvasId -> BBox -> Iteratee MyEvent XournalStateIO ()  invalidateDrawBBox cid bbox = invalidateSelSingle cid (Just bbox) drawBBox drawBBoxSel --{---- | Drawing pen strokes as bbox--invalidateBBoxOnly :: CanvasId -> Iteratee MyEvent XournalStateIO () -invalidateBBoxOnly cid = invalidateBBoxOnlyInBBox cid Nothing-  -- invalidateSelSingle cid Nothing drawBBoxOnly drawSelectionInBBoxOnly--invalidateBBoxOnlyInBBox :: CanvasId -> Maybe BBox -> Iteratee MyEvent XournalStateIO () -invalidateBBoxOnlyInBBox cid mbbox  = invalidateSelSingle cid mbbox drawBBoxOnly drawSelectionInBBoxOnly--}- -- | Drawing using layer buffer  invalidateWithBuf :: CanvasId -> Iteratee MyEvent XournalStateIO ()  invalidateWithBuf = invalidateWithBufInBBox Nothing   -  -- invalidateSelSingle cid Nothing drawBuf drawSelectionInBBox-                        -- drawSelectionInBBoxOnly -- drawSelBuf -- temporarily - -- | Drawing using layer buffer in BBox  invalidateWithBufInBBox :: Maybe BBox -> CanvasId -> Iteratee MyEvent XournalStateIO ()  invalidateWithBufInBBox mbbox cid = invalidateSelSingle cid mbbox drawBuf drawSelectionInBBox                                     -                                   -- drawSelectionInBBoxOnly -- drawSelBuf  --temporarily  
lib/Application/HXournal/Coroutine/Eraser.hs view
@@ -13,9 +13,9 @@ import Application.HXournal.Accessor import Application.HXournal.ModelAction.Page import Application.HXournal.ModelAction.Eraser-import Data.Xournal.Simple+ import Data.Xournal.Generic-import Data.Xournal.Map+ import Data.Xournal.BBox import Graphics.Xournal.Render.HitTest import Graphics.Xournal.Render.BBox
lib/Application/HXournal/Coroutine/File.hs view
@@ -12,7 +12,7 @@ import Control.Monad.Trans import Control.Applicative import Data.Xournal.Generic-import Graphics.Xournal.Render.BBoxMapPDF+ import Graphics.UI.Gtk hiding (get,set) import Control.Category import Data.Label@@ -20,7 +20,7 @@ import qualified Data.ByteString.Lazy as L  import Data.Xournal.Simple-import Data.Xournal.Map+  import System.Directory 
lib/Application/HXournal/Coroutine/Mode.hs view
@@ -7,11 +7,11 @@  --import Data.Foldable import Data.Traversable-import Data.Xournal.Map + import Control.Monad.Trans -import Control.Applicative+ import Control.Category import Data.Label 
lib/Application/HXournal/Coroutine/Page.hs view
@@ -9,13 +9,13 @@ import Application.HXournal.Coroutine.Draw import Application.HXournal.Coroutine.Commit import Application.HXournal.ModelAction.Adjustment-import Graphics.Xournal.Render.Type + import Graphics.Xournal.Render.BBoxMapPDF import Data.Xournal.Generic-import Data.Xournal.Map+ import Graphics.UI.Gtk hiding (get,set) import Application.HXournal.ModelAction.Page-import qualified Control.Monad.State as St + import Control.Monad.Trans import Control.Category import Data.Label
lib/Application/HXournal/Coroutine/Pen.hs view
@@ -15,7 +15,7 @@ import Application.HXournal.ModelAction.Page import Application.HXournal.Draw import Control.Monad.Trans-import qualified Control.Monad.State as St+ import Control.Monad.Coroutine.SuspensionFunctors import Data.Sequence hiding (filter) import qualified Data.Map as M@@ -31,7 +31,6 @@     xstate <- changeCurrentCanvasId cid      let cvsInfo = getCanvasInfo cid xstate      let currxoj = unView . get xournalstate $ xstate        -        -- page = getPage cvsInfo          pagenum = get currentPageNum cvsInfo         pinfo = get penInfo xstate         zmode = get (zoomMode.viewInfo) cvsInfo@@ -56,7 +55,7 @@            -> Iteratee MyEvent XournalStateIO (Seq (Double,Double)) penProcess cid cpg connidmove connidup pdraw (x0,y0) = do    r <- await -  xstate <- lift St.get+  xstate <- getSt   let cvsInfo = getCanvasInfo cid xstate   case r of      PenMove _cid' pcoord -> do 
lib/Application/HXournal/Coroutine/Select.hs view
@@ -21,7 +21,7 @@ import Control.Category import Data.Label import Prelude hiding ((.), id)-import Data.Xournal.Simple+ import Data.Xournal.Generic import Data.Xournal.BBox import Graphics.Xournal.Render.Type@@ -94,15 +94,12 @@           prevbbox = BBox orig prev           hittestbbox = mkHitTestInsideBBox bbox strs           hittedstrs = concat . map unHitted . getB $ hittestbbox-      -- for the time being (until double buffer)-             if not (isBBoxDeltaSmallerThan 1.0 geometry zmode bbox prevbbox)           then do flip invalidateWithBufInBBox cid . Just $                    (inflate (fromJust (Just bbox `merge` Just prevbbox)) 5.0)-                -                 -- invalidateBBoxOnly cid                   invalidateDrawBBox cid bbox-                 mapM_ (invalidateDrawBBox cid . strokebbox_bbox) hittedstrs+                 -- for the time being +                 -- mapM_ (invalidateDrawBBox cid . strokebbox_bbox) hittedstrs          else return ()       newSelectRectangle cinfo geometry zmode connidmove connidup strs orig (x,y)      PenUp _cid' pcoord -> do @@ -168,7 +165,7 @@       case epage of          Right tpage -> do            let newtpage = changeSelectionByOffset tpage offset-              newtxoj = updateTempXournalSelect txoj newtpage pagenum +          newtxoj <- liftIO $ updateTempXournalSelectIO txoj newtpage pagenum            commit . set xournalstate (SelectState newtxoj)                  . updatePageAll (SelectState newtxoj)                   $ xstate @@ -191,8 +188,8 @@       let newlayer = Left . concat . getA $ alist           oldlayers = glayers tpage           newpage = tpage { glayers = oldlayers { gselectedlayerbuf = GLayerBuf (get g_buffer slayer) (TEitherAlterHitted newlayer) } } -          newtxoj = updateTempXournalSelect txoj newpage n          -          newxstate = updatePageAll (SelectState newtxoj) +      newtxoj <- liftIO $ updateTempXournalSelectIO txoj newpage n          +      let newxstate = updatePageAll (SelectState newtxoj)                        . set xournalstate (SelectState newtxoj)                       $ xstate        commit newxstate @@ -254,8 +251,8 @@                             :- Hitted clipstrs                              :- Empty )       tpage' = tpage { glayers = ls { gselectedlayerbuf = newlayerselect } } -      txoj' = updateTempXournalSelect txoj tpage' pagenum -      xstate' = updatePageAll (SelectState txoj') +  txoj' <- liftIO $ updateTempXournalSelectIO txoj tpage' pagenum +  let xstate' = updatePageAll (SelectState txoj')                  . set xournalstate (SelectState txoj')                  $ xstate    commit xstate' @@ -278,7 +275,7 @@           newlayer = Right alist'           ls = glayers tpage            newpage = tpage { glayers = ls { gselectedlayerbuf = GLayerBuf (get g_buffer slayer) (TEitherAlterHitted newlayer) }} -          newtxoj = updateTempXournalSelect txoj newpage n+      newtxoj <- liftIO $ updateTempXournalSelectIO txoj newpage n       commit . updatePageAll (SelectState newtxoj)               . set xournalstate (SelectState newtxoj)               $ xstate                       @@ -299,7 +296,7 @@           newlayer = Right alist'           ls = get g_layers tpage            newpage = tpage { glayers = ls { gselectedlayerbuf = GLayerBuf (get g_buffer slayer) (TEitherAlterHitted newlayer) }} -          newtxoj = updateTempXournalSelect txoj newpage n          +      newtxoj <- liftIO $ updateTempXournalSelectIO txoj newpage n                 commit . updatePageAll (SelectState newtxoj)               . set xournalstate (SelectState newtxoj)              $ xstate 
lib/Application/HXournal/Draw.hs view
@@ -11,10 +11,10 @@ import Data.Monoid import Data.Xournal.Simple import Data.Xournal.Generic-import Data.Xournal.Map+ import Data.Xournal.BBox import Graphics.Xournal.Render.Type-import Graphics.Xournal.Render.Simple+ import Graphics.Xournal.Render.BBox  import Graphics.Xournal.Render.BBoxMapPDF  import Graphics.Xournal.Render.PDFBackground@@ -23,8 +23,8 @@ import Application.HXournal.Type  import Application.HXournal.Device -import qualified Data.IntMap as M + data CanvasPageGeometry =    CanvasPageGeometry { screen_size :: (Double,Double)                       , canvas_size :: (Double,Double)@@ -59,7 +59,7 @@                               (xorig, yorig)  visibleViewPort :: CanvasPageGeometry -> ZoomMode -> BBox  -visibleViewPort cpg@(CanvasPageGeometry (ws,hs) (w',h') (w,h) (x0,y0) (xorig,yorig)) zmode = +visibleViewPort cpg@(CanvasPageGeometry (_ws,_hs) (w',h') (_w,_h) (_x0,_y0) (xorig,yorig)) zmode =    let (xend,yend) = canvasToPageCoord cpg zmode (w',h')   in  BBox (xorig,yorig) (xend,yend) @@ -123,24 +123,6 @@   scale s s   translate (-xo) (-yo)         -{--updateCanvas :: DrawingArea -> TXournalBBoxMapPDF -> Int -> ViewInfo -> IO ()-updateCanvas canvas xoj pagenum vinfo = do -  let zmode  = get zoomMode vinfo-      origin = get viewPortOrigin vinfo-  let currpage = case M.lookup pagenum (gpages xoj) of -                   Nothing -> error "updateCanvas"-                   Just  p -> p -  geometry <- getCanvasPageGeometry canvas currpage origin-  win <- widgetGetDrawWindow canvas-  let viewbbox = visibleViewPort geometry zmode-      newmbbox = Just viewbbox-  renderWithDrawable win $ do-    transformForPageCoord geometry zmode-    -- cairoRenderOption (InBBoxOption newmbbox) (InBBox currpage)-    cairoRenderOption (DrawBkgPDF,DrawFull)  currpage-  return ()--}  drawFuncGen :: (TPageBBoxMapPDFBuf -> Maybe BBox -> Render ()) -> PageDrawF  drawFuncGen render canvas page vinfo mbbox = do @@ -178,7 +160,7 @@                       drawPageSelClearly :: PageDrawFSel                       drawPageSelClearly = drawFuncSelGen rendercontent renderselect -  where rendercontent tpg mbbox = do+  where rendercontent tpg _mbbox = do           let pg = (gcast tpg :: TPageBBoxMapPDFBuf)           cairoRenderOption (DrawBkgPDF,DrawFull) (gcast pg :: TPageBBoxMapPDF)         renderselect tpg mbbox = 
lib/Application/HXournal/GUI.hs view
@@ -98,7 +98,6 @@   window `on` deleteEvent $ do     liftIO $ bouncecallback tref sref (Menu MenuQuit)     return True-    -- mainQuit   widgetShowAll window      -- initialized
lib/Application/HXournal/Job.hs view
@@ -4,8 +4,8 @@  import Application.HXournal.GUI -- import Application.HXournal.Builder-import qualified Data.ByteString.Lazy as L-import Text.Xournal.Parse++  startJob :: Maybe FilePath -> IO ()  startJob mfname = do 
lib/Application/HXournal/ModelAction/File.hs view
@@ -55,10 +55,10 @@     return (set canvasInfoMap cmap' xstate')  constructNewHXournalStateFromXournal :: Xournal -> HXournalState -> IO HXournalState -constructNewHXournalStateFromXournal xoj xstate = do +constructNewHXournalStateFromXournal xoj' xstate = do      let currcid = get currentCanvas xstate          cmap = get canvasInfoMap xstate -    xoj <- mkTXournalBBoxMapPDFBufFromNoBuf <=< mkTXournalBBoxMapPDF $ xoj+    xoj <- mkTXournalBBoxMapPDFBufFromNoBuf <=< mkTXournalBBoxMapPDF $ xoj'     let Dim width height = case M.lookup 0 (gpages xoj) of                                  Nothing -> error "no first page in getFileContent"                               Just p -> gdimension p 
lib/Application/HXournal/ModelAction/Page.hs view
@@ -3,9 +3,9 @@ import Application.HXournal.Type.XournalState import Application.HXournal.Type.Canvas import Data.Xournal.Simple-import Data.Xournal.Map+ import Data.Xournal.Generic-import Graphics.Xournal.Render.Generic+ import Graphics.Xournal.Render.BBoxMapPDF  import Control.Category
lib/Application/HXournal/ModelAction/Pen.hs view
@@ -17,12 +17,12 @@ import Data.Xournal.Simple import Data.Xournal.Generic import Data.Xournal.BBox-import Graphics.Xournal.Render.Generic + import Graphics.Xournal.Render.BBoxMapPDF-import Graphics.Xournal.Render.Simple-import Data.Xournal.Map  ++ addPDraw :: PenInfo -> TXournalBBoxMapPDFBuf -> Int -> Seq (Double,Double)              -> IO (TXournalBBoxMapPDFBuf,BBox) addPDraw pinfo xoj pgnum pdraw = do @@ -47,6 +47,14 @@   let newpagebbox = set g_layers (IM.adjust (const newlayerbbox) 0 (get g_layers currpage)) currpage        newxojbbox = set g_pages (IM.adjust (const newpagebbox) pgnum (get g_pages xoj) ) xoj        -  return (newxojbbox,strokebbox_bbox newstrokebbox)+  return (newxojbbox,bbox) -- strokebbox_bbox newstrokebbox)++++++++  
lib/Application/HXournal/ModelAction/Select.hs view
@@ -4,7 +4,7 @@ import Application.HXournal.Type.Canvas import Application.HXournal.Draw -import Data.Xournal.Simple+ import Data.Xournal.Generic import Data.Xournal.BBox import Graphics.Xournal.Render.Type@@ -70,8 +70,18 @@      . set g_selectSelected (Just (pagenum,tpage))      $ txoj       --    +updateTempXournalSelectIO :: TTempXournalSelectPDFBuf+                             -> TTempPageSelectPDFBuf+                             -> Int+                             -> IO TTempXournalSelectPDFBuf+updateTempXournalSelectIO txoj tpage pagenum = do   +  let pgs = gselectAll txoj +  newpage <- resetPageBuffers (gcast tpage)+  let pgs' = M.adjust (const newpage) pagenum pgs+  return $  set g_selectAll pgs' +            . set g_selectSelected (Just (pagenum,tpage))+            $ txoj +        hitInSelection :: TTempPageSelectPDFBuf -> (Double,Double) -> Bool  hitInSelection tpage point = 
lib/Application/HXournal/ModelAction/Window.hs view
@@ -47,7 +47,7 @@       liftIO (callback (PenDown cid p))     canvas `on` configureEvent $ tryEvent $ do        (w,h) <- eventSize -      liftIO $ callback -- bouncecallback tref sref +      liftIO $ callback                   (CanvasConfigure cid (fromIntegral w) (fromIntegral h))     canvas `on` buttonReleaseEvent $ tryEvent $ do        p <- getPointer dev
lib/Application/HXournal/Type/Canvas.hs view
@@ -8,7 +8,7 @@ import Data.Label  import Prelude hiding ((.), id) import Graphics.Xournal.Render.BBoxMapPDF-import Data.Xournal.Map+ import Graphics.UI.Gtk hiding (get,set)  type CanvasId = Int 
lib/Application/HXournal/Type/Undo.hs view
@@ -1,7 +1,7 @@ module Application.HXournal.Type.Undo where  import Data.Sequence-import Control.Monad+  type SeqZipper a = (a, (Seq a,Seq a)) 
lib/Application/HXournal/Type/XournalState.hs view
@@ -15,7 +15,7 @@  import Control.Category import Control.Monad.State-import Data.Xournal.Simple+ import Data.Xournal.Predefined  import Graphics.UI.Gtk hiding (Clipboard) import Data.Maybe