syncNodesFromMimeData creates a slice of tree node(s) from given mime data and also a corresponding slice of original paths.
(md mimedata.Mimes)
| 391 | // from given mime data and also a corresponding slice |
| 392 | // of original paths. |
| 393 | func (tr *Tree) syncNodesFromMimeData(md mimedata.Mimes) ([]tree.Node, []string) { |
| 394 | ni := len(md) / 2 |
| 395 | sl := make([]tree.Node, 0, ni) |
| 396 | pl := make([]string, 0, ni) |
| 397 | for _, d := range md { |
| 398 | if d.Type == fileinfo.DataJson { |
| 399 | nn, err := tree.UnmarshalRootJSON(d.Data) |
| 400 | if err == nil { |
| 401 | sl = append(sl, nn) |
| 402 | } else { |
| 403 | ErrorSnackbar(tr, err, "Error loading node") |
| 404 | } |
| 405 | } else if d.Type == fileinfo.TextPlain { // paths |
| 406 | pl = append(pl, string(d.Data)) |
| 407 | } |
| 408 | } |
| 409 | return sl, pl |
| 410 | } |
| 411 | |
| 412 | // pasteAssignSync assigns mime data (only the first one!) to this node |
| 413 | func (tr *Tree) pasteAssignSync(md mimedata.Mimes) { |
no test coverage detected