Skip to content

Commit ee742c7

Browse files
committed
fixed line list context menu enable logic
1 parent 5ebd4d6 commit ee742c7

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

phichain-editor/src/tab/line_list.rs

+20-14
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ impl LineList<'_> {
113113
&LineOpacity,
114114
&LineSpeed,
115115
)>,
116+
Query<&Parent>,
116117
ResMut<SelectedLine>,
117118
EventWriter<DoCommandEvent>,
118119
Res<Persistent<EditorSettings>>,
@@ -122,6 +123,7 @@ impl LineList<'_> {
122123
note_query,
123124
event_query,
124125
query,
126+
parent_query,
125127
mut selected_line,
126128
mut do_command_event,
127129
editor_settings,
@@ -131,6 +133,10 @@ impl LineList<'_> {
131133
{
132134
let selected = selected_line.0 == entity;
133135

136+
let under_selected_node = parent_query
137+
.iter_ancestors(entity)
138+
.any(|ancestor| ancestor == selected_line.0);
139+
134140
ui.horizontal(|ui| {
135141
ui.add_space(level as f32 * 10.0);
136142

@@ -153,21 +159,21 @@ impl LineList<'_> {
153159
)));
154160
ui.close_menu();
155161
}
156-
#[allow(clippy::collapsible_if)]
157-
if parent.is_some() {
158-
if ui
159-
.button(t!("tab.line_list.hierarchy.move_to_root"))
160-
.clicked()
161-
{
162-
do_command_event.send(DoCommandEvent(
163-
EditorCommand::MoveLineAsChild(MoveLineAsChild::new(
164-
entity, None,
165-
)),
166-
));
167-
ui.close_menu();
168-
}
162+
});
163+
#[allow(clippy::collapsible_if)]
164+
if parent.is_some() {
165+
if ui
166+
.button(t!("tab.line_list.hierarchy.move_to_root"))
167+
.clicked()
168+
{
169+
do_command_event.send(DoCommandEvent(EditorCommand::MoveLineAsChild(
170+
MoveLineAsChild::new(entity, None),
171+
)));
172+
ui.close_menu();
169173
}
170-
ui.separator();
174+
}
175+
ui.separator();
176+
ui.add_enabled_ui(!under_selected_node && !selected, |ui| {
171177
if ui.button(t!("tab.line_list.remove")).clicked() {
172178
do_command_event.send(DoCommandEvent(EditorCommand::RemoveLine(
173179
RemoveLine::new(entity),

0 commit comments

Comments
 (0)