@@ -22,7 +22,7 @@ import Data.Map.Strict (Map, (!))
2222import Data.Map.Strict qualified as Map
2323import Data.Text qualified as Text
2424import Data.Time (getCurrentTime , toGregorian , utctDay )
25- import Foreign.Hoppy.Runtime (fromCppEnum , toGc )
25+ import Foreign.Hoppy.Runtime (fromCppEnum , nullptr , toGc )
2626import Graphics.UI.Qtah.Core.Types qualified as Qt
2727import Graphics.UI.Qtah.Gui.QFont (QFont )
2828import Graphics.UI.Qtah.Gui.QFont qualified as QFont
@@ -115,8 +115,8 @@ setDebugInfoVisible this v = do
115115 QTreeView. setColumnHidden this. parent (fromEnum SortKeyField ) $ not v
116116 QTreeView. setHeaderHidden this. parent $ not v
117117
118- upsertTask :: TaskListWidget -> EntityView Note -> IO ()
119- upsertTask this entity = do
118+ upsertTask :: TaskListWidget -> Bool -> EntityView Note -> IO ()
119+ upsertTask this keepTaskOpen entity = do
120120 today <- utctDay <$> getCurrentTime -- TODO get local day
121121 let mode = taskMode today note
122122 mExisting <- Map. lookup noteId <$> readIORef this. taskItems
@@ -127,15 +127,20 @@ upsertTask this entity = do
127127 modifyIORef this. taskItems $ Map. insert noteId (mode, item)
128128 Just (oldMode, item) -> do
129129 updateTaskItem item entity
130+ wasSelected <- QTreeWidgetItem. isSelected item
130131 when (oldMode /= mode) do
131- wasSelected <- QTreeWidgetItem. isSelected item
132132 oldModeItem <- (! oldMode) <$> readIORef this. modeItems
133133 idx <- QTreeWidgetItem. indexOfChild oldModeItem item
134134 _ <- QTreeWidgetItem. takeChild oldModeItem idx
135135 newModeItem <- getOrCreateModeItem this mode
136136 QTreeWidgetItem. addChild newModeItem item
137- when wasSelected $ QTreeWidget. setCurrentItem this. parent item
138137 modifyIORef this. taskItems $ Map. insert noteId (mode, item)
138+ if keepTaskOpen then
139+ when wasSelected $ QTreeWidget. setCurrentItem this. parent item
140+ else
141+ QTreeWidget. setCurrentItem
142+ this. parent
143+ (nullptr :: QTreeWidgetItem )
139144 where
140145 Entity {entityId = DocId noteId, entityVal = NoteView {note}} = entity
141146
0 commit comments