diff --git a/Bustle/Diagram.hs b/Bustle/Diagram.hs
index d558beb..ef96d60 100644
--- a/Bustle/Diagram.hs
+++ b/Bustle/Diagram.hs
@@ -450,7 +450,7 @@ mkLayout :: (MonadIO m)
mkLayout s e a = liftIO $ do
ctx <- cairoCreateContext Nothing
layout <- layoutEmpty ctx
- layoutSetMarkup layout (Markup.unMarkup s)
+ layoutSetMarkup layout (Markup.unMarkup s) :: IO String
layoutSetFontDescription layout (Just font)
layoutSetEllipsize layout e
layoutSetAlignment layout a
diff --git a/Bustle/UI.hs b/Bustle/UI.hs
index a78797e..9843b29 100644
--- a/Bustle/UI.hs
+++ b/Bustle/UI.hs
@@ -30,6 +30,7 @@ import Data.IORef
import qualified Data.Set as Set
import Data.List (intercalate)
import Data.Time
+import qualified Data.Text as T
import Data.Monoid (mempty)
import Text.Printf
@@ -281,6 +282,7 @@ promptToSave wi = io $ do
case mdetails of
Just (RecordedLog tempFilePath) -> do
let tempFileName = takeFileName tempFilePath
+ title :: String
title = printf (__ "Save log '%s' before closing?") tempFileName
prompt <- messageDialogNew (Just (wiWindow wi))
[DialogModal]
@@ -459,7 +461,7 @@ wiSetLogDetails :: WindowInfo
-> IO ()
wiSetLogDetails wi logDetails = do
writeIORef (wiLogDetails wi) (Just logDetails)
- windowSetTitle (wiWindow wi) (printf (__ "%s - Bustle") (logWindowTitle logDetails))
+ windowSetTitle (wiWindow wi) (printf (__ "%s - Bustle") (logWindowTitle logDetails) :: String)
setPage :: MonadIO io
=> WindowInfo
@@ -525,7 +527,7 @@ loadPixbuf :: FilePath -> IO (Maybe Pixbuf)
loadPixbuf filename = do
iconName <- getDataFileName $ "data/" ++ filename
C.catch (fmap Just (pixbufNewFromFile iconName))
- (\(GError _ _ msg) -> warn msg >> return Nothing)
+ (\(GError _ _ msg) -> warn (T.unpack msg) >> return Nothing)
openDialogue :: Window -> B ()
openDialogue window = embedIO $ \r -> do
diff --git a/Bustle/UI/Canvas.hs b/Bustle/UI/Canvas.hs
index 46c1582..5a28761 100644
--- a/Bustle/UI/Canvas.hs
+++ b/Bustle/UI/Canvas.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE OverloadedStrings #-}
{-
Bustle.UI.Canvas: displays diagrams
Copyright © 2008–2012 Collabora Ltd.
@@ -58,7 +59,7 @@ canvasNew :: Eq a
-> (Maybe a -> IO ())
-> IO (Canvas a)
canvasNew builder showBounds selectionChangedCb = do
- layout <- builderGetObject builder castToLayout "diagramLayout"
+ layout <- builderGetObject builder castToLayout ("diagramLayout" :: String)
idRef <- newIORef Nothing
shapesRef <- newIORef []
widthRef <- newIORef 0
diff --git a/Bustle/UI/DetailsView.hs b/Bustle/UI/DetailsView.hs
index 35e80d6..d1b9d96 100644
--- a/Bustle/UI/DetailsView.hs
+++ b/Bustle/UI/DetailsView.hs
@@ -55,7 +55,7 @@ addValue :: Table
-> Int
-> IO Label
addValue table row = do
- label <- labelNew Nothing
+ label <- labelNew (Nothing :: Maybe String)
miscSetAlignment label 0 0
labelSetEllipsize label EllipsizeStart
labelSetSelectable label True
@@ -77,7 +77,7 @@ detailsViewNew = do
, tableColumnSpacing := 6
]
- title <- labelNew Nothing
+ title <- labelNew (Nothing :: Maybe String)
miscSetAlignment title 0 0
tableAttach table title 0 2 0 1 [Fill] [Fill] 0 0
diff --git a/Bustle/UI/FilterDialog.hs b/Bustle/UI/FilterDialog.hs
index 9560507..152931e 100644
--- a/Bustle/UI/FilterDialog.hs
+++ b/Bustle/UI/FilterDialog.hs
@@ -99,7 +99,7 @@ runFilterDialog parent names currentlyHidden = do
nameStore <- makeStore names currentlyHidden
sw <- makeView nameStore
- instructions <- labelNew Nothing
+ instructions <- labelNew (Nothing :: Maybe String)
widgetSetSizeRequest instructions 600 (-1)
labelSetMarkup instructions
(__ "Unticking a service hides its column in the diagram, \
diff --git a/Bustle/UI/Recorder.hs b/Bustle/UI/Recorder.hs
index 1e98a68..085eea2 100644
--- a/Bustle/UI/Recorder.hs
+++ b/Bustle/UI/Recorder.hs
@@ -27,6 +27,7 @@ import Control.Monad (when, liftM)
import Control.Concurrent.MVar
import qualified Data.Map as Map
import Data.Monoid
+import qualified Data.Text as T
import Control.Monad.State (runStateT)
import Text.Printf
@@ -77,8 +78,7 @@ processBatch pendingRef n label incoming = do
-- message from the user's perspective.
i <- takeMVar n
let j = i + (length pending)
- labelSetMarkup label $
- printf (__ "Logged %u messages…") j
+ labelSetMarkup label $ (printf (__ "Logged %u messages…") j :: String)
putMVar n j
incoming rr'
@@ -97,8 +97,8 @@ recorderRun filename mwindow incoming finished = C.handle newFailed $ do
maybe (return ()) (windowSetTransientFor dialog) mwindow
dialog `set` [ windowModal := True ]
- label <- labelNew Nothing
- labelSetMarkup label $ printf (__ "Logged %u messages…") (0 :: Int)
+ label <- labelNew (Nothing :: Maybe String)
+ labelSetMarkup label $ (printf (__ "Logged %u messages…") (0 :: Int) :: String)
loaderStateRef <- newMVar Map.empty
pendingRef <- newMVar []
let updateLabel µs body = do
@@ -142,7 +142,7 @@ recorderRun filename mwindow incoming finished = C.handle newFailed $ do
widgetShowAll dialog
where
newFailed (GError _ _ message) = do
- displayError mwindow message Nothing
+ displayError mwindow (T.unpack message) Nothing
recorderChooseFile :: FilePath
-> Maybe Window
diff --git a/bustle.cabal b/bustle.cabal
index 4ac107c..2d1f907 100644
--- a/bustle.cabal
+++ b/bustle.cabal
@@ -106,10 +106,10 @@ Executable bustle
, directory
, filepath
, glib
- , gtk >= 0.12.4
+ , gtk >= 0.13
, hgettext >= 0.1.5
, mtl
- , pango
+ , pango >= 0.13
, parsec
, pcap
, process
@@ -136,7 +136,7 @@ Executable test-monitor
, dbus
, directory
, filepath
- , gtk > 0.12
+ , gtk >= 0.13
, glib
, hgettext
, mtl