diff options
author | tv <tv@shackspace.de> | 2014-12-25 03:48:26 +0100 |
---|---|---|
committer | tv <tv@shackspace.de> | 2014-12-25 03:48:26 +0100 |
commit | e4b5558bfed7d0428707bb7859a1afd41d3eef23 (patch) | |
tree | fa77abad8cd6e9236fd07c5bf98db49a18aa7e53 /ThreadView.hs | |
parent | 2d3088c15975ed129fa12e779769396b1ede2883 (diff) |
use rosezipper as cursor
Diffstat (limited to 'ThreadView.hs')
-rw-r--r-- | ThreadView.hs | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/ThreadView.hs b/ThreadView.hs index 1c908bb..2b1c1fb 100644 --- a/ThreadView.hs +++ b/ThreadView.hs @@ -64,6 +64,11 @@ instance Eq ThreadView where _ == _ = False +isTVSearchResult :: ThreadView -> Bool +isTVSearchResult (TVSearchResult _) = True +isTVSearchResult _ = False + + describe :: ThreadView -> String describe (TVMessage m) = "TVMessage " <> unMessageID (messageId m) describe (TVMessagePart m p) = "TVMessagePart " <> (unMessageID $ messageId m) <> " " <> show (partID p) @@ -72,23 +77,6 @@ describe (TVSearch s) = "TVSearch " <> show s describe (TVSearchResult sr) = "TVSearchResult " <> show (searchTotal sr) -focusPrev :: Tree ThreadView -> Maybe ThreadView -> Maybe ThreadView -focusPrev v Nothing = lastMay (flatten v) -focusPrev v (Just cur) = do - i <- elemIndex cur items - maybe (lastMay items) Just $ atMay items (i - 1) - where - items = flatten v - -focusNext :: Tree ThreadView -> Maybe ThreadView -> Maybe ThreadView -focusNext v Nothing = headMay (flatten v) -focusNext v (Just cur) = do - i <- elemIndex cur items - maybe (headMay items) Just $ atMay items (i + 1) - where - items = flatten v - - findMessage :: MessageID -> Tree ThreadView -> Maybe ThreadView findMessage i = find p . flatten |