mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-29 05:18:12 +08:00
Added fine-grained choices to Snapping options popover (#1730)
* Added Customised Snapping * Fix snapping choice to Anchors; clean up popover menu code --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
co-authored by
Keavon Chambers
parent
3019cc7253
commit
67ba5bcecf
@@ -33,7 +33,7 @@ impl LayoutMessageHandler {
|
||||
}
|
||||
|
||||
if let Widget::PopoverButton(popover) = &widget.widget {
|
||||
stack.extend(popover.options_widget.iter().enumerate().map(|(child, val)| ([widget_path.as_slice(), &[index, child]].concat(), val)));
|
||||
stack.extend(popover.popover_layout.iter().enumerate().map(|(child, val)| ([widget_path.as_slice(), &[index, child]].concat(), val)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ impl<'a> Iterator for WidgetIter<'a> {
|
||||
self.current_slice = Some(&self.current_slice.unwrap()[1..]);
|
||||
|
||||
if let WidgetHolder { widget: Widget::PopoverButton(p), .. } = item {
|
||||
self.stack.extend(p.options_widget.iter());
|
||||
self.stack.extend(p.popover_layout.iter());
|
||||
return self.next();
|
||||
}
|
||||
|
||||
@@ -260,7 +260,7 @@ impl<'a> Iterator for WidgetIterMut<'a> {
|
||||
self.current_slice = Some(rest);
|
||||
|
||||
if let WidgetHolder { widget: Widget::PopoverButton(p), .. } = first {
|
||||
self.stack.extend(p.options_widget.iter_mut());
|
||||
self.stack.extend(p.popover_layout.iter_mut());
|
||||
return self.next();
|
||||
}
|
||||
|
||||
|
||||
@@ -47,24 +47,16 @@ pub struct PopoverButton {
|
||||
|
||||
pub disabled: bool,
|
||||
|
||||
// Placeholder popover content heading
|
||||
#[widget_builder(constructor)]
|
||||
pub header: String,
|
||||
|
||||
// Placeholder popover content paragraph
|
||||
#[widget_builder(constructor)]
|
||||
pub text: String,
|
||||
|
||||
pub tooltip: String,
|
||||
|
||||
#[serde(rename = "optionsWidget")]
|
||||
pub options_widget: SubLayout,
|
||||
|
||||
#[serde(rename = "popoverMinWidth")]
|
||||
pub popover_min_width: Option<u32>,
|
||||
|
||||
#[serde(skip)]
|
||||
pub tooltip_shortcut: Option<ActionKeys>,
|
||||
|
||||
#[serde(rename = "popoverLayout")]
|
||||
pub popover_layout: SubLayout,
|
||||
|
||||
#[serde(rename = "popoverMinWidth")]
|
||||
pub popover_min_width: Option<u32>,
|
||||
}
|
||||
|
||||
#[derive(Clone, serde::Serialize, serde::Deserialize, Derivative, Default, WidgetBuilder, specta::Type)]
|
||||
|
||||
Reference in New Issue
Block a user