Skip to content

Commit 5195e63

Browse files
committed
Code review
1 parent 4222d8b commit 5195e63

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

editor/src/messages/tool/tool_messages/line_tool.rs

+14-13
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,12 @@ enum LineToolFsmState {
142142
Drawing,
143143
}
144144

145+
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
146+
enum LineEnd {
147+
Start,
148+
End,
149+
}
150+
145151
#[derive(Clone, Debug, Default)]
146152
struct LineToolData {
147153
drag_start: DVec2,
@@ -152,8 +158,7 @@ struct LineToolData {
152158
editing_layer: Option<LayerNodeIdentifier>,
153159
snap_manager: SnapManager,
154160
auto_panning: AutoPanning,
155-
// True means dragging end point, false means dragging start point
156-
dragging_end: Option<bool>,
161+
dragging_endpoint: Option<LineEnd>,
157162
}
158163

159164
impl Fsm for LineToolFsmState {
@@ -214,7 +219,7 @@ impl Fsm for LineToolFsmState {
214219
let end_click = (drag_start.y - end.y).abs() < threshold_y && (drag_start.x - end.x).abs() < threshold_x;
215220

216221
if start_click || end_click {
217-
tool_data.dragging_end = Some(end_click);
222+
tool_data.dragging_endpoint = Some(if end_click { LineEnd::End } else { LineEnd::Start });
218223
tool_data.drag_start = if end_click { *document_start } else { *document_end };
219224
tool_data.editing_layer = Some(*layer);
220225
return LineToolFsmState::Drawing;
@@ -249,9 +254,7 @@ impl Fsm for LineToolFsmState {
249254
LineToolFsmState::Drawing
250255
}
251256
(LineToolFsmState::Drawing, LineToolMessage::PointerMove { center, snap_angle, lock_angle }) => {
252-
let Some(layer) = tool_data.editing_layer else {
253-
return LineToolFsmState::Ready;
254-
};
257+
let Some(layer) = tool_data.editing_layer else { return LineToolFsmState::Ready };
255258

256259
tool_data.drag_current = document.metadata().transform_to_viewport(layer).inverse().transform_point2(input.mouse.position);
257260

@@ -260,10 +263,8 @@ impl Fsm for LineToolFsmState {
260263
let snap_data = SnapData::ignore(document, input, &ignore);
261264
let mut document_points = generate_line(tool_data, snap_data, keyboard.key(lock_angle), keyboard.key(snap_angle), keyboard.key(center));
262265

263-
if let Some(dragging_end) = tool_data.dragging_end {
264-
if !dragging_end {
265-
document_points.swap(0, 1);
266-
}
266+
if tool_data.dragging_endpoint == Some(LineEnd::Start) {
267+
document_points.swap(0, 1);
267268
}
268269

269270
let Some(node_id) = graph_modification_utils::get_line_id(layer, &document.network_interface) else {
@@ -287,7 +288,7 @@ impl Fsm for LineToolFsmState {
287288
];
288289
tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses);
289290

290-
self
291+
LineToolFsmState::Drawing
291292
}
292293
(_, LineToolMessage::PointerMove { .. }) => {
293294
tool_data.snap_manager.preview_draw(&SnapData::new(document, input), input.mouse.position);
@@ -298,7 +299,7 @@ impl Fsm for LineToolFsmState {
298299
// Auto-panning
299300
let _ = tool_data.auto_panning.shift_viewport(input, responses);
300301

301-
self
302+
LineToolFsmState::Drawing
302303
}
303304
(state, LineToolMessage::PointerOutsideViewport { center, lock_angle, snap_angle }) => {
304305
// Auto-panning
@@ -319,7 +320,7 @@ impl Fsm for LineToolFsmState {
319320
(LineToolFsmState::Drawing, LineToolMessage::Abort) => {
320321
tool_data.snap_manager.cleanup(responses);
321322
tool_data.editing_layer.take();
322-
if tool_data.dragging_end.is_none() {
323+
if tool_data.dragging_endpoint.is_none() {
323324
responses.add(DocumentMessage::AbortTransaction);
324325
}
325326
LineToolFsmState::Ready

0 commit comments

Comments
 (0)