| 622 | } |
| 623 | |
| 624 | void |
| 625 | Editables::end_move (const db::DVector &v, db::Transaction *transaction) |
| 626 | { |
| 627 | std::unique_ptr<db::Transaction> trans_holder (transaction ? transaction : new db::Transaction (manager (), tl::to_string (tr ("Move")))); |
| 628 | |
| 629 | if (m_any_move_operation) { |
| 630 | |
| 631 | trans_holder->open (); |
| 632 | |
| 633 | // this dummy operation will update the screen: |
| 634 | if (manager ()) { |
| 635 | manager ()->queue (this, new db::Op ()); |
| 636 | } |
| 637 | |
| 638 | for (iterator e = begin (); e != end (); ++e) { |
| 639 | e->end_move (v); |
| 640 | } |
| 641 | |
| 642 | // clear the selection that was set previously |
| 643 | if (m_move_selection) { |
| 644 | clear_selection (); |
| 645 | } |
| 646 | |
| 647 | } else { |
| 648 | |
| 649 | trans_holder->cancel (); |
| 650 | edit_cancel (); |
| 651 | |
| 652 | } |
| 653 | } |
| 654 | |
| 655 | void |
| 656 | Editables::end_move (const db::DPoint &p, lay::angle_constraint_type ac, db::Transaction *transaction) |