From 3f88a247ce10af1d5304589f99ecdbc1e58b880a Mon Sep 17 00:00:00 2001 From: Joscha Date: Sat, 29 Sep 2018 11:21:51 +0000 Subject: [PATCH] Clean up behaviors --- src/TaskMachine/UI.hs | 11 +++---- .../{Behaviors/TaskEdit.hs => Behaviors.hs} | 25 +++++++++++++-- src/TaskMachine/UI/Behaviors/TaskList.hs | 31 ------------------- 3 files changed, 28 insertions(+), 39 deletions(-) rename src/TaskMachine/UI/{Behaviors/TaskEdit.hs => Behaviors.hs} (63%) delete mode 100644 src/TaskMachine/UI/Behaviors/TaskList.hs diff --git a/src/TaskMachine/UI.hs b/src/TaskMachine/UI.hs index 1c1d375..12a13bf 100644 --- a/src/TaskMachine/UI.hs +++ b/src/TaskMachine/UI.hs @@ -4,14 +4,13 @@ module TaskMachine.UI , loadTasks ) where -import qualified Brick as B -import qualified Brick.Themes as B -import qualified Data.Vector as V -import qualified Graphics.Vty.Input.Events as VTY +import qualified Brick as B +import qualified Brick.Themes as B +import qualified Data.Vector as V +import qualified Graphics.Vty.Input.Events as VTY import TaskMachine.Options -import TaskMachine.UI.Behaviors.TaskEdit -import TaskMachine.UI.Behaviors.TaskList +import TaskMachine.UI.Behaviors import TaskMachine.UI.TaskList import TaskMachine.UI.Types diff --git a/src/TaskMachine/UI/Behaviors/TaskEdit.hs b/src/TaskMachine/UI/Behaviors.hs similarity index 63% rename from src/TaskMachine/UI/Behaviors/TaskEdit.hs rename to src/TaskMachine/UI/Behaviors.hs index dc495fb..a8358e3 100644 --- a/src/TaskMachine/UI/Behaviors/TaskEdit.hs +++ b/src/TaskMachine/UI/Behaviors.hs @@ -1,5 +1,6 @@ -module TaskMachine.UI.Behaviors.TaskEdit - ( taskEditBehavior +module TaskMachine.UI.Behaviors + ( taskListBehavior + , taskEditBehavior ) where import qualified Brick as B @@ -13,6 +14,14 @@ import TaskMachine.Task import TaskMachine.UI.TaskList import TaskMachine.UI.Types +startEdit :: UIState -> UIState +startEdit s = + case taskListSelectedElement (tasks s) of + Nothing -> undefined -- TODO: Add popup notification + Just t -> + let edit = B.editor RTaskEdit (Just 1) (formatTask t) + in s{taskEdit=Just edit} + finishEdit :: B.Editor String RName -> UIState -> UIState finishEdit edit s = let editedText = unlines $ B.getEditContents edit @@ -33,3 +42,15 @@ taskEditBehavior edit s (VTY.EvKey VTY.KEnter []) = do taskEditBehavior edit s e = do newEdit <- B.handleEditorEvent e edit B.continue s{taskEdit=Just newEdit} + +taskListBehavior :: UIState -> VTY.Event -> NewState +-- Mark/unmark a task as completed +taskListBehavior s (VTY.EvKey (VTY.KChar 'x') []) = undefined s +-- Delete tasks +taskListBehavior s (VTY.EvKey (VTY.KChar 'd') []) = undefined s +-- Start editing a new task +taskListBehavior s (VTY.EvKey (VTY.KChar 'e') []) = B.continue (startEdit s) +-- Update the task list (scroll etc.) +taskListBehavior s e = do + newTasks <- updateTaskList e (tasks s) + B.continue s{tasks=newTasks} diff --git a/src/TaskMachine/UI/Behaviors/TaskList.hs b/src/TaskMachine/UI/Behaviors/TaskList.hs deleted file mode 100644 index cfe5fff..0000000 --- a/src/TaskMachine/UI/Behaviors/TaskList.hs +++ /dev/null @@ -1,31 +0,0 @@ -module TaskMachine.UI.Behaviors.TaskList - ( taskListBehavior - ) where - -import qualified Brick as B -import qualified Brick.Widgets.Edit as B -import qualified Graphics.Vty as VTY - -import TaskMachine.Task -import TaskMachine.UI.TaskList -import TaskMachine.UI.Types - -startEdit :: UIState -> UIState -startEdit s = - case taskListSelectedElement (tasks s) of - Nothing -> undefined -- TODO: Add popup notification - Just t -> - let edit = B.editor RTaskEdit (Just 1) (formatTask t) - in s{taskEdit=Just edit} - -taskListBehavior :: UIState -> VTY.Event -> NewState --- Mark/unmark a task as completed -taskListBehavior s (VTY.EvKey (VTY.KChar 'x') []) = undefined s --- Delete tasks -taskListBehavior s (VTY.EvKey (VTY.KChar 'd') []) = undefined s --- Start editing a new task -taskListBehavior s (VTY.EvKey (VTY.KChar 'e') []) = B.continue (startEdit s) --- Update the task list (scroll etc.) -taskListBehavior s e = do - newTasks <- updateTaskList e (tasks s) - B.continue s{tasks=newTasks}