| 978 | } |
| 979 | |
| 980 | static inline void MoveItem(std::deque<std::shared_ptr<Macro>> &items, |
| 981 | std::shared_ptr<Macro> &item, int to) |
| 982 | { |
| 983 | auto it = std::find(items.begin(), items.end(), item); |
| 984 | if (it == items.end()) { |
| 985 | blog(LOG_ERROR, |
| 986 | "something went wrong during drag & drop reordering"); |
| 987 | return; |
| 988 | } |
| 989 | |
| 990 | items.erase(it); |
| 991 | items.insert(std::next(items.begin(), to), item); |
| 992 | } |
| 993 | |
| 994 | // Logic mostly based on OBS's source-tree dropEvent() with a few modifications |
| 995 | // regarding group handling |