Skip to content

Commit f1b0d8f

Browse files
authored
Improve the node graph with revamped top bar and disabling tools when graph is open (#2093)
* Add "Fade Artwork" slider and disable tools when graph is open * Add navigation and layer/node management buttons to graph top bar * Reduce code duplication
1 parent 12ca060 commit f1b0d8f

File tree

19 files changed

+479
-284
lines changed

19 files changed

+479
-284
lines changed

editor/src/dispatcher.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,11 @@ impl Dispatcher {
199199
Message::Portfolio(message) => {
200200
let ipp = &self.message_handlers.input_preprocessor_message_handler;
201201
let preferences = &self.message_handlers.preferences_message_handler;
202+
let current_tool = &self.message_handlers.tool_message_handler.tool_state.tool_data.active_tool_type;
202203

203204
self.message_handlers
204205
.portfolio_message_handler
205-
.process_message(message, &mut queue, PortfolioMessageData { ipp, preferences });
206+
.process_message(message, &mut queue, PortfolioMessageData { ipp, preferences, current_tool });
206207
}
207208
Message::Preferences(message) => {
208209
self.message_handlers.preferences_message_handler.process_message(message, &mut queue, ());
@@ -244,8 +245,10 @@ impl Dispatcher {
244245
list.extend(self.message_handlers.input_preprocessor_message_handler.actions());
245246
list.extend(self.message_handlers.key_mapping_message_handler.actions());
246247
list.extend(self.message_handlers.debug_message_handler.actions());
247-
if self.message_handlers.portfolio_message_handler.active_document().is_some() {
248-
list.extend(self.message_handlers.tool_message_handler.actions());
248+
if let Some(document) = self.message_handlers.portfolio_message_handler.active_document() {
249+
if !document.graph_view_overlay_open {
250+
list.extend(self.message_handlers.tool_message_handler.actions());
251+
}
249252
}
250253
list.extend(self.message_handlers.portfolio_message_handler.actions());
251254
list

editor/src/messages/frontend/frontend_message.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,6 @@ pub enum FrontendMessage {
8484
#[serde(rename = "isDefault")]
8585
is_default: bool,
8686
},
87-
TriggerGraphViewOverlay {
88-
open: bool,
89-
},
9087
TriggerImport,
9188
TriggerIndexedDbRemoveDocument {
9289
#[serde(rename = "documentId")]
@@ -153,6 +150,9 @@ pub enum FrontendMessage {
153150
#[serde(rename = "clickTargets")]
154151
click_targets: Option<FrontendClickTargets>,
155152
},
153+
UpdateGraphViewOverlay {
154+
open: bool,
155+
},
156156
UpdateLayerWidths {
157157
#[serde(rename = "layerWidths")]
158158
layer_widths: HashMap<NodeId, u32>,
@@ -221,6 +221,9 @@ pub enum FrontendMessage {
221221
#[serde(rename = "setColorChoice")]
222222
set_color_choice: Option<String>,
223223
},
224+
UpdateGraphFadeArtwork {
225+
percentage: f64,
226+
},
224227
UpdateInputHints {
225228
#[serde(rename = "hintData")]
226229
hint_data: HintData,

editor/src/messages/input_mapper/input_mappings.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ pub fn input_mappings() -> Mapping {
5252
//
5353
// Hack to prevent Left Click + Accel + Z combo (this effectively blocks you from making a double undo with AbortTransaction)
5454
entry!(KeyDown(KeyZ); modifiers=[Accel, MouseLeft], action_dispatch=DocumentMessage::Noop),
55+
//
5556
// NodeGraphMessage
5657
entry!(KeyDown(MouseLeft); action_dispatch=NodeGraphMessage::PointerDown {shift_click: false, control_click: false, alt_click: false, right_click: false}),
5758
entry!(KeyDown(MouseLeft); modifiers=[Shift], action_dispatch=NodeGraphMessage::PointerDown {shift_click: true, control_click: false, alt_click: false, right_click: false}),
@@ -69,6 +70,8 @@ pub fn input_mappings() -> Mapping {
6970
entry!(KeyDown(KeyX); modifiers=[Accel], action_dispatch=NodeGraphMessage::Cut),
7071
entry!(KeyDown(KeyC); modifiers=[Accel], action_dispatch=NodeGraphMessage::Copy),
7172
entry!(KeyDown(KeyD); modifiers=[Accel], action_dispatch=NodeGraphMessage::DuplicateSelectedNodes),
73+
entry!(KeyDown(KeyH); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedVisibility),
74+
entry!(KeyDown(KeyL); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedLocked),
7275
entry!(KeyDown(KeyL); modifiers=[Alt], action_dispatch=NodeGraphMessage::ToggleSelectedAsLayersOrNodes),
7376
entry!(KeyDown(KeyC); modifiers=[Shift], action_dispatch=NodeGraphMessage::PrintSelectedNodeCoordinates),
7477
entry!(KeyDown(KeyC); modifiers=[Alt], action_dispatch=NodeGraphMessage::SendClickTargets),

editor/src/messages/portfolio/document/document_message.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ pub enum DocumentMessage {
131131
SetBlendModeForSelectedLayers {
132132
blend_mode: BlendMode,
133133
},
134+
SetGraphFadeArtwork {
135+
percentage: f64,
136+
},
134137
SetNodePinned {
135138
node_id: NodeId,
136139
pinned: bool,

0 commit comments

Comments
 (0)