tianbar 0.4.0.0 → 0.4.0.1
raw patch · 2 files changed
+55/−1 lines, 2 files
Files
+ src/System/Tianbar/Plugin/DBus/FromData.hs view
@@ -0,0 +1,53 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+module System.Tianbar.Plugin.DBus.FromData () where++import Control.Monad++import Data.List.Split+import Data.Maybe++import DBus+import DBus.Client++import Happstack.Server++instance FromData MatchRule where+ fromData = do+ objPath <- fromData+ iface <- fromData+ memberName <- fromData+ return $ matchAny { matchSender = Nothing+ , matchDestination = Nothing+ , matchPath = objPath+ , matchInterface = iface+ , matchMember = memberName+ }++instance FromData MethodCall where+ fromData = do+ callPath <- fromData+ iface <- fromData+ member <- fromData+ callBody <- liftM (map variantFromString) $ looks "body[]"+ dest <- fromData+ let setBodyDest mcall = mcall { methodCallBody = callBody+ , methodCallDestination = dest+ }+ return $ setBodyDest $ methodCall callPath iface member++instance FromData ObjectPath where+ fromData = liftM (fromJust . parseObjectPath) $ look "path"++instance FromData InterfaceName where+ fromData = liftM (fromJust . parseInterfaceName) $ look "iface"++instance FromData MemberName where+ fromData = liftM (fromJust . parseMemberName) $ look "member"++instance FromData BusName where+ fromData = liftM (fromJust . parseBusName) $ look "destination"++variantFromString :: String -> Variant+variantFromString param = case splitOn ":" param of+ ["string", str] -> toVariant str+ _ -> error "Invalid variant string"
tianbar.cabal view
@@ -1,5 +1,5 @@ name: tianbar-version: 0.4.0.0+version: 0.4.0.1 synopsis: A desktop bar based on WebKit description: A desktop bar using WebKit for rendering as much as possible.@@ -54,6 +54,7 @@ , System.Tianbar.Plugin.Basic , System.Tianbar.Plugin.Combined , System.Tianbar.Plugin.DBus+ , System.Tianbar.Plugin.DBus.FromData , System.Tianbar.Plugin.DBus.JSON , System.Tianbar.Plugin.Socket , System.Tianbar.Utils