| 2421 | } |
| 2422 | |
| 2423 | void Timeline::dropRange(DropOp op) |
| 2424 | { |
| 2425 | bool copy = (op == Timeline::kCopy); |
| 2426 | Range newFromRange; |
| 2427 | DocumentRangePlace place = kDocumentRangeAfter; |
| 2428 | |
| 2429 | switch (m_range.type()) { |
| 2430 | case Range::kFrames: |
| 2431 | if (m_dropTarget.hhit == DropTarget::Before) |
| 2432 | place = kDocumentRangeBefore; |
| 2433 | break; |
| 2434 | case Range::kLayers: |
| 2435 | if (m_dropTarget.vhit == DropTarget::Bottom) |
| 2436 | place = kDocumentRangeBefore; |
| 2437 | break; |
| 2438 | } |
| 2439 | |
| 2440 | prepareToMoveRange(); |
| 2441 | |
| 2442 | try { |
| 2443 | if (copy) |
| 2444 | newFromRange = copy_range(m_document, m_range, m_dropRange, place); |
| 2445 | else |
| 2446 | newFromRange = move_range(m_document, m_range, m_dropRange, place); |
| 2447 | |
| 2448 | // If we drop a cel in the same frame (but in another layer), |
| 2449 | // document views are not updated, so we are forcing the updating of |
| 2450 | // all views. |
| 2451 | m_document->notifyGeneralUpdate(); |
| 2452 | |
| 2453 | moveRange(newFromRange); |
| 2454 | } |
| 2455 | catch (const std::exception& e) { |
| 2456 | ui::Alert::show("Problem<<%s||&OK", e.what()); |
| 2457 | } |
| 2458 | } |
| 2459 | |
| 2460 | gfx::Size Timeline::visibleSize() const |
| 2461 | { |
no test coverage detected