feat: moving elements
This commit is contained in:
parent
1ea9e22d01
commit
ad2e15605e
1 changed files with 37 additions and 0 deletions
37
src/main.rs
37
src/main.rs
|
|
@ -32,6 +32,11 @@ enum Message {
|
||||||
i_category: usize,
|
i_category: usize,
|
||||||
i_element: usize,
|
i_element: usize,
|
||||||
},
|
},
|
||||||
|
MoveElement {
|
||||||
|
i_category: usize,
|
||||||
|
i_element: usize,
|
||||||
|
target_category: usize,
|
||||||
|
},
|
||||||
ElementChanged {
|
ElementChanged {
|
||||||
i_category: usize,
|
i_category: usize,
|
||||||
i_element: usize,
|
i_element: usize,
|
||||||
|
|
@ -83,6 +88,28 @@ impl State {
|
||||||
new_value,
|
new_value,
|
||||||
})
|
})
|
||||||
.into(),
|
.into(),
|
||||||
|
widget::button("←")
|
||||||
|
.on_press_maybe(if i_category > 0 {
|
||||||
|
Some(Message::MoveElement {
|
||||||
|
i_category,
|
||||||
|
i_element,
|
||||||
|
target_category: i_category - 1,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
})
|
||||||
|
.into(),
|
||||||
|
widget::button("→")
|
||||||
|
.on_press_maybe(if i_category < self.table.len() - 1 {
|
||||||
|
Some(Message::MoveElement {
|
||||||
|
i_category,
|
||||||
|
i_element,
|
||||||
|
target_category: i_category + 1,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
})
|
||||||
|
.into(),
|
||||||
widget::button("X")
|
widget::button("X")
|
||||||
.style(widget::button::warning)
|
.style(widget::button::warning)
|
||||||
.on_press(Message::RemoveElement {
|
.on_press(Message::RemoveElement {
|
||||||
|
|
@ -129,6 +156,16 @@ impl State {
|
||||||
} => {
|
} => {
|
||||||
self.table[i_category].elements.remove(i_element);
|
self.table[i_category].elements.remove(i_element);
|
||||||
}
|
}
|
||||||
|
Message::MoveElement {
|
||||||
|
i_category,
|
||||||
|
i_element,
|
||||||
|
target_category,
|
||||||
|
} => {
|
||||||
|
let moved_element = self.table[i_category].elements.remove(i_element);
|
||||||
|
self.table[target_category].elements.reverse();
|
||||||
|
self.table[target_category].elements.push(moved_element);
|
||||||
|
self.table[target_category].elements.reverse();
|
||||||
|
}
|
||||||
Message::ElementChanged {
|
Message::ElementChanged {
|
||||||
i_category,
|
i_category,
|
||||||
i_element,
|
i_element,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue