Refactor the WidgetLayout struct to remove SubLayout and avoid sending LayoutTarget to frontend

This commit is contained in:
Keavon Chambers
2025-12-04 02:44:54 -08:00
parent 4581689d9c
commit 3c4ad8b720
50 changed files with 207 additions and 247 deletions
@@ -220,7 +220,7 @@ impl LayoutHolder for BrushTool {
.widget_instance(),
);
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }]))
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets }]))
}
}
@@ -151,7 +151,7 @@ impl LayoutHolder for FreehandTool {
widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance());
widgets.push(create_weight_widget(self.options.line_weight));
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }]))
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets }]))
}
}
@@ -107,7 +107,7 @@ impl LayoutHolder for GradientTool {
.selected_index(Some((self.selected_gradient().unwrap_or(self.options.gradient_type) == GradientType::Radial) as u32))
.widget_instance();
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets: vec![gradient_type] }]))
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets: vec![gradient_type] }]))
}
}
@@ -342,7 +342,7 @@ impl LayoutHolder for PathTool {
let _pin_pivot = pin_pivot_widget(self.tool_data.pivot_gizmo.pin_active(), false, PivotToolSource::Path);
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row {
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row {
widgets: vec![
x_location,
related_seperator.clone(),
@@ -238,7 +238,7 @@ impl LayoutHolder for PenTool {
.widget_instance(),
);
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }]))
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets }]))
}
}
@@ -252,14 +252,14 @@ impl LayoutHolder for SelectTool {
widgets.extend(self.alignment_widgets(disabled));
// widgets.push(
// PopoverButton::new()
// .popover_layout(vec![
// .popover_layout(WidgetLayout(vec![
// LayoutGroup::Row {
// widgets: vec![TextLabel::new("Align").bold(true).widget_instance()],
// },
// LayoutGroup::Row {
// widgets: vec![TextLabel::new("Coming soon").widget_instance()],
// },
// ])
// ]))
// .disabled(disabled)
// .widget_instance(),
// );
@@ -277,7 +277,7 @@ impl LayoutHolder for SelectTool {
widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance());
widgets.extend(self.boolean_widgets(self.tool_data.selected_layers_count));
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }]))
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets }]))
}
}
@@ -335,7 +335,7 @@ impl LayoutHolder for ShapeTool {
widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance());
widgets.push(create_weight_widget(self.options.line_weight));
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }]))
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets }]))
}
}
@@ -158,7 +158,7 @@ impl LayoutHolder for SplineTool {
widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance());
widgets.push(create_weight_widget(self.options.line_weight));
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }]))
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets }]))
}
}
@@ -203,7 +203,7 @@ impl LayoutHolder for TextTool {
},
));
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }]))
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets }]))
}
}
+4 -6
View File
@@ -117,7 +117,7 @@ pub struct DocumentToolData {
impl DocumentToolData {
pub fn update_working_colors(&self, responses: &mut VecDeque<Message>) {
let layout = WidgetLayout::new(vec![
let layout = WidgetLayout(vec![
LayoutGroup::Row {
widgets: vec![WorkingColorsInput::new(self.primary_color.to_gamma_srgb(), self.secondary_color.to_gamma_srgb()).widget_instance()],
},
@@ -290,9 +290,7 @@ impl LayoutHolder for ToolData {
.skip(1)
.collect();
Layout::WidgetLayout(WidgetLayout {
layout: vec![LayoutGroup::Row { widgets: tool_groups_layout }],
})
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets: tool_groups_layout }]))
}
}
@@ -547,7 +545,7 @@ impl HintData {
}
}
Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }]))
Layout::WidgetLayout(WidgetLayout(vec![LayoutGroup::Row { widgets }]))
}
pub fn send_layout(&self, responses: &mut VecDeque<Message>) {
@@ -559,7 +557,7 @@ impl HintData {
pub fn clear_layout(responses: &mut VecDeque<Message>) {
responses.add(LayoutMessage::SendLayout {
layout: Layout::WidgetLayout(WidgetLayout::new(vec![])),
layout: Layout::WidgetLayout(WidgetLayout(vec![])),
layout_target: LayoutTarget::StatusBarHints,
});
}