packages feed

ghcprofview 0.1.0.0 → 0.1.0.1

raw patch · 4 files changed

+35/−20 lines, 4 filesdep +mtldep −regex-tdfa-text

Dependencies added: mtl

Dependencies removed: regex-tdfa-text

Files

README.md view
@@ -1,6 +1,8 @@ ghcprofview README ================== +[![Build Status](https://travis-ci.org/portnov/ghcprofview-hs.svg?branch=master)](https://travis-ci.org/portnov/ghcprofview-hs) + This is GHC `.prof` files viewer, implemented in Haskell + Gtk3.  Unlike [profiterole][1] and [profiteur][2], `ghcprofview` uses a traditional
ghcprofview.cabal view
@@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.31.1.+-- This file has been generated from package.yaml by hpack version 0.33.0. -- -- see: https://github.com/sol/hpack ----- hash: b1508baa3bc5a0e04f53b8a9b3d8f2faca0079ca881ff61113d2b31c5f472e93+-- hash: 1af11545e3da13219f5e775588be3ada381d8abd4cee98035bc3d0891a341388  name:           ghcprofview-version:        0.1.0.0+version:        0.1.0.1 synopsis:       GHC .prof files viewer description:    Please see the README on GitHub at <https://github.com/portnov/ghcprofview-hs#readme> category:       Development@@ -50,8 +50,8 @@     , ghc-prof     , gi-gtk     , haskell-gi-base+    , mtl >=2.2     , regex-tdfa-    , regex-tdfa-text     , scientific     , text   default-language: Haskell2010
src/Gui/Page.hs view
@@ -67,7 +67,7 @@       let subtrees = ccdFindIncoming mod src name ccd           result = ccdSum subtrees       showTree ("Calls to " <> name) result-      +   return menu  mkPage :: Statusbar -> T.Text -> CostCentreData -> ShowTree -> IO Page@@ -75,6 +75,8 @@   vbox <- boxNew OrientationVertical 0   searchHbox <- boxNew OrientationHorizontal 0   filterBox <- boxNew OrientationHorizontal 0+  filterSettingsBox <- flowBoxNew+  flowBoxSetSelectionMode filterSettingsBox SelectionModeNone    entry <- searchEntryNew   boxPackStart searchHbox entry True True 0@@ -93,27 +95,29 @@    on entry #activate $ buttonClicked searchButton -  let addFilterPercent name = do+  let mkEntry :: IsWidget w => T.Text -> w -> IO (Box, w)+      mkEntry name widget = do         lbl <- labelNew (Just name)-        spin <- spinButtonNewWithRange 0 100 1+        box <- boxNew OrientationHorizontal 0+        boxPackStart box lbl False False 0+        boxPackStart box widget True True 10+        return (box, widget)++  let addFilterPercent name = do+        (box, spin) <- mkEntry name =<< spinButtonNewWithRange 0 100 1         spinButtonSetDigits spin 2-        boxPackStart filterBox lbl False False 10-        boxPackStart filterBox spin True True 0+        containerAdd filterSettingsBox box         return spin    let addFilterNumber name = do-        lbl <- labelNew (Just name)-        spin <- spinButtonNewWithRange 0 (1e38) 1+        (box, spin) <- mkEntry name =<< spinButtonNewWithRange 0 (1e38) 1         spinButtonSetDigits spin 0-        boxPackStart filterBox lbl False False 10-        boxPackStart filterBox spin True True 0+        containerAdd filterSettingsBox box         return spin    let addFilterText name = do-        lbl <- labelNew (Just name)-        entry <- entryNew-        boxPackStart filterBox lbl False False 10-        boxPackStart filterBox entry True True 0+        (box, spin) <- mkEntry name =<< entryNew+        containerAdd filterSettingsBox box         return entry    fltrEntries <- addFilterNumber "Entries:"@@ -126,6 +130,7 @@    filterButton <- buttonNewWithLabel "Filter" +  boxPackStart filterBox filterSettingsBox True True 0   boxPackStart filterBox filterButton False False 0   boxPackStart vbox filterBox False False 0 
src/Gui/TreeWidget.hs view
@@ -4,15 +4,18 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE MonoLocalBinds #-}  module Gui.TreeWidget where  import Control.Monad import qualified Data.Text as T+import Data.Int  import Data.GI.Base.GType import Data.GI.Base.GValue-import GI.Gtk +import Data.GI.Base.Signals+import GI.Gtk  import Types @@ -47,7 +50,7 @@       forM_ (zip [0..] (twcColumns cfg)) $ \(i, column) ->           treeStoreSetValue store item i =<< columnData column cc       forM_ (treeChildren node) $ fill store (Just item)-  + mkTreeView :: forall t a . IsTree t a => TreeWidgetConfig a -> t -> IO TreeView mkTreeView cfg@(TreeWidgetConfig columns) tree = do     srcStore <- mkTreeStore cfg tree@@ -59,6 +62,11 @@      return view   where+    addColumn :: TreeView+                   -> Int32+                   -> ColumnType+                   -> T.Text+                   -> IO SignalHandlerId     addColumn view i ctype title = do       column <- treeViewColumnNew       treeViewColumnSetTitle column title@@ -81,7 +89,7 @@               return True           else return False -    withRenderer :: ColumnType -> (forall r. IsCellRenderer r => r -> IO x) -> IO x+    withRenderer :: forall x. ColumnType -> (forall r. IsCellRenderer r => r -> IO Int32) -> IO Int32     withRenderer TextColumn f = cellRendererTextNew >>= f     withRenderer PercentColumn f = cellRendererProgressNew >>= f