[go: nahoru, domu]

Skip to content

Commit

Permalink
Restore visualization focus functionality. enso-org#11 enso-org#59
Browse files Browse the repository at this point in the history
  • Loading branch information
ljkania committed Jun 30, 2017
1 parent d3dcbde commit 66e0f96
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 12 deletions.
4 changes: 2 additions & 2 deletions luna-studio/node-editor/src/NodeEditor/Action/State/Action.hs
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,5 @@ endAll = mapM_ end =<< use (actions . currentActions)
endAllButVisualizationZoomed :: Command State ()
endAllButVisualizationZoomed = mapM_ endAction =<< use (actions . currentActions) where
endAction action = case fromSomeAction action of
Just (VisualizationActive _ _ FullScreen) -> return ()
_ -> end action
Just (VisualizationActive _ _ FullScreen _) -> return ()
_ -> end action
20 changes: 12 additions & 8 deletions luna-studio/node-editor/src/NodeEditor/Action/Visualization.hs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import NodeEditor.React.Model.Visualization (IdleVisualization (
import NodeEditor.State.Action (Action (begin, continue, end, update),
VisualizationActive (VisualizationActive), visualizationActiveAction,
visualizationActiveNodeLoc, visualizationActiveSelectedMode,
visualizationActiveVisualizationId)
visualizationActiveTriggeredByVis, visualizationActiveVisualizationId)
import NodeEditor.State.Global (State)


Expand All @@ -48,15 +48,18 @@ instance Action (Command State) VisualizationActive where
removeActionFromState visualizationActiveAction

focusVisualization :: NodeLoc -> VisualizationId -> Command State ()
focusVisualization nl visId = begin $ VisualizationActive nl visId Focused
focusVisualization nl visId = begin $ VisualizationActive nl visId Focused False

closeVisualization :: VisualizationActive -> Command State ()
closeVisualization = end
exitVisualizationMode :: VisualizationActive -> Command State ()
exitVisualizationMode action = if action ^. visualizationActiveTriggeredByVis
then begin $ action & visualizationActiveSelectedMode .~ Focused
& visualizationActiveTriggeredByVis .~ False
else end action

selectVisualizer :: NodeLoc -> VisualizationId -> VisualizerName -> Command State ()
selectVisualizer nl visId visName = withJustM (getNodeVisualizations nl) $ \nodeVis ->
withJust ((,) <$> Map.lookup visId (nodeVis ^. visualizations) <*> Map.lookup visName (nodeVis ^. visualizers)) $ \(prevVis, visPath) -> do
continue $ closeVisualization
continue (end :: VisualizationActive -> Command State ())
let visualizer' = (visName, visPath)
updateDefaultVisualizer nl $ Just visualizer'
when (prevVis ^. runningVisualizer /= visualizer') $ getVisualizationsBackupMap >>= \visBackup ->
Expand Down Expand Up @@ -94,12 +97,12 @@ handleZoomVisualization :: Command State ()
handleZoomVisualization = do
mayMode <- view visualizationActiveSelectedMode `fmap2` checkAction visualizationActiveAction
if mayMode == Just FullScreen
then continue closeVisualization
then continue exitVisualizationMode
else enterVisualizationMode FullScreen

exitPreviewMode :: VisualizationActive -> Command State ()
exitPreviewMode action = when (Preview == action ^. visualizationActiveSelectedMode) $
closeVisualization action
exitVisualizationMode action

enterVisualizationMode :: VisualizationMode -> Command State ()
enterVisualizationMode visMode = do
Expand All @@ -108,7 +111,8 @@ enterVisualizationMode visMode = do
[n] -> let nl = n ^. nodeLoc in
fmap (nl,) . maybe def (listToMaybe . Map.keys . view visualizations) <$> getNodeVisualizations nl
_ -> return Nothing
withJust visLoc $ \(nl, visId) -> begin $ VisualizationActive nl visId visMode
fromVis <- maybe False (\action -> action ^. visualizationActiveSelectedMode == Focused || action ^. visualizationActiveTriggeredByVis) <$> checkAction visualizationActiveAction
withJust visLoc $ \(nl, visId) -> begin $ VisualizationActive nl visId visMode fromVis

toggleVisualizations :: NodeLoc -> Command State ()
toggleVisualizations nl = do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ handle (UI (VisualizationEvent (Visualization.ToggleVisualizations nl)))
handle (Shortcut (Shortcut.Event Shortcut.ZoomVisualization _)) = Just $ Visualization.handleZoomVisualization
handle (Shortcut (Shortcut.Event Shortcut.OpenVisualizationPreview _)) = Just $ Visualization.enterVisualizationMode Preview
handle (Shortcut (Shortcut.Event Shortcut.CloseVisualizationPreview _)) = Just $ continue $ Visualization.exitPreviewMode
handle (UI (NodeEditorEvent (NodeEditor.Wheel _ _))) = Just $ continue $ Visualization.closeVisualization
handle (UI (NodeEditorEvent (NodeEditor.Wheel _ _))) = Just $ continue $ Visualization.exitVisualizationMode
handle _ = Nothing

-- handle :: Event -> Maybe (Command State ())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ visualization = React.defineView viewName $ \(ref, nl, vis) -> do
div_
[ "className" $= Style.prefixFromList [ "noselect", "visualization-container" ]
] $ do
div_ [ "className" $= Style.prefix "visualization-cover" ] mempty -- TODO: LJK: add events to the cover
div_ ([ "className" $= Style.prefix "visualization-cover" ] ++ coverHandler) mempty -- TODO: LJK: add events to the cover
visualizationIframe_ visId visualizer vmode

visualizationIframe_ :: VisualizationId -> Visualizer -> VisualizationMode -> ReactElementM ViewEventHandler ()
Expand Down
1 change: 1 addition & 0 deletions luna-studio/node-editor/src/NodeEditor/State/Action.hs
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ data VisualizationActive = VisualizationActive
{ _visualizationActiveNodeLoc :: NodeLoc
, _visualizationActiveVisualizationId :: VisualizationId
, _visualizationActiveSelectedMode :: VisualizationMode
, _visualizationActiveTriggeredByVis :: Bool
} deriving (Eq, Show, Generic, Typeable)

makeLenses ''VisualizationActive
Expand Down

0 comments on commit 66e0f96

Please sign in to comment.