Skip to content

Commit ea2d003

Browse files
committed
Modify all message enum data to use named struct values, not tuples (#479)
* Massively reorganize and clean up the whole Rust codebase * Modify all message enum data to use named struct values, not tuples
1 parent 9b6cbb5 commit ea2d003

25 files changed

+614
-392
lines changed

editor/src/communication/dispatcher.rs

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -161,10 +161,10 @@ mod test {
161161
let mut editor = create_editor_with_three_layers();
162162

163163
let document_before_copy = editor.dispatcher.message_handlers.portfolio_message_handler.active_document().graphene_document.clone();
164-
editor.handle_message(PortfolioMessage::Copy(Clipboard::User));
164+
editor.handle_message(PortfolioMessage::Copy { clipboard: Clipboard::User });
165165
editor.handle_message(PortfolioMessage::PasteIntoFolder {
166166
clipboard: Clipboard::User,
167-
path: vec![],
167+
folder_path: vec![],
168168
insert_index: -1,
169169
});
170170
let document_after_copy = editor.dispatcher.message_handlers.portfolio_message_handler.active_document().graphene_document.clone();
@@ -197,11 +197,13 @@ mod test {
197197
let document_before_copy = editor.dispatcher.message_handlers.portfolio_message_handler.active_document().graphene_document.clone();
198198
let shape_id = document_before_copy.root.as_folder().unwrap().layer_ids[1];
199199

200-
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![shape_id]]));
201-
editor.handle_message(PortfolioMessage::Copy(Clipboard::User));
200+
editor.handle_message(DocumentMessage::SetSelectedLayers {
201+
replacement_selected_layers: vec![vec![shape_id]],
202+
});
203+
editor.handle_message(PortfolioMessage::Copy { clipboard: Clipboard::User });
202204
editor.handle_message(PortfolioMessage::PasteIntoFolder {
203205
clipboard: Clipboard::User,
204-
path: vec![],
206+
folder_path: vec![],
205207
insert_index: -1,
206208
});
207209

@@ -235,7 +237,7 @@ mod test {
235237
const LINE_INDEX: usize = 0;
236238
const PEN_INDEX: usize = 1;
237239

238-
editor.handle_message(DocumentMessage::CreateEmptyFolder(vec![]));
240+
editor.handle_message(DocumentMessage::CreateEmptyFolder { container_path: vec![] });
239241

240242
let document_before_added_shapes = editor.dispatcher.message_handlers.portfolio_message_handler.active_document().graphene_document.clone();
241243
let folder_id = document_before_added_shapes.root.as_folder().unwrap().layer_ids[FOLDER_INDEX];
@@ -257,20 +259,22 @@ mod test {
257259
points: vec![(10.0, 20.0), (30.0, 40.0)],
258260
});
259261

260-
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![folder_id]]));
262+
editor.handle_message(DocumentMessage::SetSelectedLayers {
263+
replacement_selected_layers: vec![vec![folder_id]],
264+
});
261265

262266
let document_before_copy = editor.dispatcher.message_handlers.portfolio_message_handler.active_document().graphene_document.clone();
263267

264-
editor.handle_message(PortfolioMessage::Copy(Clipboard::User));
268+
editor.handle_message(PortfolioMessage::Copy { clipboard: Clipboard::User });
265269
editor.handle_message(DocumentMessage::DeleteSelectedLayers);
266270
editor.handle_message(PortfolioMessage::PasteIntoFolder {
267271
clipboard: Clipboard::User,
268-
path: vec![],
272+
folder_path: vec![],
269273
insert_index: -1,
270274
});
271275
editor.handle_message(PortfolioMessage::PasteIntoFolder {
272276
clipboard: Clipboard::User,
273-
path: vec![],
277+
folder_path: vec![],
274278
insert_index: -1,
275279
});
276280

@@ -329,18 +333,20 @@ mod test {
329333
let rect_id = document_before_copy.root.as_folder().unwrap().layer_ids[RECT_INDEX];
330334
let ellipse_id = document_before_copy.root.as_folder().unwrap().layer_ids[ELLIPSE_INDEX];
331335

332-
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![rect_id], vec![ellipse_id]]));
333-
editor.handle_message(PortfolioMessage::Copy(Clipboard::User));
336+
editor.handle_message(DocumentMessage::SetSelectedLayers {
337+
replacement_selected_layers: vec![vec![rect_id], vec![ellipse_id]],
338+
});
339+
editor.handle_message(PortfolioMessage::Copy { clipboard: Clipboard::User });
334340
editor.handle_message(DocumentMessage::DeleteSelectedLayers);
335341
editor.draw_rect(0., 800., 12., 200.);
336342
editor.handle_message(PortfolioMessage::PasteIntoFolder {
337343
clipboard: Clipboard::User,
338-
path: vec![],
344+
folder_path: vec![],
339345
insert_index: -1,
340346
});
341347
editor.handle_message(PortfolioMessage::PasteIntoFolder {
342348
clipboard: Clipboard::User,
343-
path: vec![],
349+
folder_path: vec![],
344350
insert_index: -1,
345351
});
346352

@@ -385,17 +391,19 @@ mod test {
385391
)
386392
};
387393

388-
editor.handle_message(DocumentMessage::SetSelectedLayers(sorted_layers[..2].to_vec()));
394+
editor.handle_message(DocumentMessage::SetSelectedLayers {
395+
replacement_selected_layers: sorted_layers[..2].to_vec(),
396+
});
389397

390-
editor.handle_message(DocumentMessage::ReorderSelectedLayers(1));
398+
editor.handle_message(DocumentMessage::ReorderSelectedLayers { relative_index_offset: 1 });
391399
let (all, non_selected, selected) = verify_order(editor.dispatcher.message_handlers.portfolio_message_handler.active_document_mut());
392400
assert_eq!(all, non_selected.into_iter().chain(selected.into_iter()).collect::<Vec<_>>());
393401

394-
editor.handle_message(DocumentMessage::ReorderSelectedLayers(-1));
402+
editor.handle_message(DocumentMessage::ReorderSelectedLayers { relative_index_offset: -1 });
395403
let (all, non_selected, selected) = verify_order(editor.dispatcher.message_handlers.portfolio_message_handler.active_document_mut());
396404
assert_eq!(all, selected.into_iter().chain(non_selected.into_iter()).collect::<Vec<_>>());
397405

398-
editor.handle_message(DocumentMessage::ReorderSelectedLayers(i32::MAX));
406+
editor.handle_message(DocumentMessage::ReorderSelectedLayers { relative_index_offset: isize::MAX });
399407
let (all, non_selected, selected) = verify_order(editor.dispatcher.message_handlers.portfolio_message_handler.active_document_mut());
400408
assert_eq!(all, non_selected.into_iter().chain(selected.into_iter()).collect::<Vec<_>>());
401409
}

editor/src/document/document_message.rs

Lines changed: 67 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,23 @@ use serde::{Deserialize, Serialize};
1414
#[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
1515
pub enum DocumentMessage {
1616
AbortTransaction,
17-
AddSelectedLayers(Vec<Vec<LayerId>>),
18-
AlignSelectedLayers(AlignAxis, AlignAggregate),
17+
AddSelectedLayers {
18+
additional_layers: Vec<Vec<LayerId>>,
19+
},
20+
AlignSelectedLayers {
21+
axis: AlignAxis,
22+
aggregate: AlignAggregate,
23+
},
1924
#[child]
2025
Artboard(ArtboardMessage),
2126
CommitTransaction,
22-
CreateEmptyFolder(Vec<LayerId>),
27+
CreateEmptyFolder {
28+
container_path: Vec<LayerId>,
29+
},
2330
DebugPrintDocument,
24-
DeleteLayer(Vec<LayerId>),
31+
DeleteLayer {
32+
layer_path: Vec<LayerId>,
33+
},
2534
DeleteSelectedLayers,
2635
DeselectAllLayers,
2736
DirtyRenderDocument,
@@ -32,41 +41,78 @@ pub enum DocumentMessage {
3241
DocumentStructureChanged,
3342
DuplicateSelectedLayers,
3443
ExportDocument,
35-
FlipSelectedLayers(FlipAxis),
36-
FolderChanged(Vec<LayerId>),
44+
FlipSelectedLayers {
45+
flip_axis: FlipAxis,
46+
},
47+
FolderChanged {
48+
affected_folder_path: Vec<LayerId>,
49+
},
3750
GroupSelectedLayers,
38-
LayerChanged(Vec<LayerId>),
51+
LayerChanged {
52+
affected_layer_path: Vec<LayerId>,
53+
},
3954
#[child]
4055
Movement(MovementMessage),
4156
MoveSelectedLayersTo {
42-
path: Vec<LayerId>,
57+
folder_path: Vec<LayerId>,
4358
insert_index: isize,
4459
},
45-
NudgeSelectedLayers(f64, f64),
60+
NudgeSelectedLayers {
61+
delta_x: f64,
62+
delta_y: f64,
63+
},
4664
#[child]
4765
Overlays(OverlaysMessage),
4866
Redo,
49-
RenameLayer(Vec<LayerId>, String),
67+
RenameLayer {
68+
layer_path: Vec<LayerId>,
69+
new_name: String,
70+
},
5071
RenderDocument,
51-
ReorderSelectedLayers(i32), // relative_position,
72+
ReorderSelectedLayers {
73+
relative_index_offset: isize,
74+
},
5275
RollbackTransaction,
5376
SaveDocument,
5477
SelectAllLayers,
5578
SelectionChanged,
56-
SelectLayer(Vec<LayerId>, bool, bool),
57-
SetBlendModeForSelectedLayers(BlendMode),
58-
SetLayerExpansion(Vec<LayerId>, bool),
59-
SetOpacityForSelectedLayers(f64),
60-
SetSelectedLayers(Vec<Vec<LayerId>>),
61-
SetSnapping(bool),
62-
SetViewMode(ViewMode),
79+
SelectLayer {
80+
layer_path: Vec<LayerId>,
81+
ctrl: bool,
82+
shift: bool,
83+
},
84+
SetBlendModeForSelectedLayers {
85+
blend_mode: BlendMode,
86+
},
87+
SetLayerExpansion {
88+
layer_path: Vec<LayerId>,
89+
set_expanded: bool,
90+
},
91+
SetOpacityForSelectedLayers {
92+
opacity: f64,
93+
},
94+
SetSelectedLayers {
95+
replacement_selected_layers: Vec<Vec<LayerId>>,
96+
},
97+
SetSnapping {
98+
snap: bool,
99+
},
100+
SetViewMode {
101+
view_mode: ViewMode,
102+
},
63103
StartTransaction,
64-
ToggleLayerExpansion(Vec<LayerId>),
65-
ToggleLayerVisibility(Vec<LayerId>),
104+
ToggleLayerExpansion {
105+
layer_path: Vec<LayerId>,
106+
},
107+
ToggleLayerVisibility {
108+
layer_path: Vec<LayerId>,
109+
},
66110
#[child]
67111
TransformLayers(TransformLayerMessage),
68112
Undo,
69-
UngroupLayers(Vec<LayerId>),
113+
UngroupLayers {
114+
folder_path: Vec<LayerId>,
115+
},
70116
UngroupSelectedLayers,
71117
UpdateLayerMetadata {
72118
layer_path: Vec<LayerId>,

0 commit comments

Comments
 (0)