| 645 | } |
| 646 | |
| 647 | void |
| 648 | Action::set_menu (QMenu *menu, bool owned) |
| 649 | { |
| 650 | if (mp_menu == menu || ! lay::has_gui () || ! mp_action) { |
| 651 | return; |
| 652 | } |
| 653 | |
| 654 | if (mp_menu && ! menu) { |
| 655 | |
| 656 | QAction *new_action = new ActionObject (0); |
| 657 | configure_action (new_action); |
| 658 | |
| 659 | if (m_owned) { |
| 660 | delete mp_menu; |
| 661 | } |
| 662 | mp_menu = 0; |
| 663 | |
| 664 | mp_action = new_action; |
| 665 | m_owned = true; |
| 666 | |
| 667 | } else if (mp_menu && menu) { |
| 668 | |
| 669 | configure_action (menu->menuAction ()); |
| 670 | |
| 671 | if (m_owned) { |
| 672 | delete mp_menu; |
| 673 | } |
| 674 | |
| 675 | mp_menu = menu; |
| 676 | m_owned = owned; |
| 677 | mp_action = menu->menuAction (); |
| 678 | |
| 679 | } else if (! mp_menu && menu) { |
| 680 | |
| 681 | configure_action (menu->menuAction ()); |
| 682 | |
| 683 | if (m_owned) { |
| 684 | delete mp_action; |
| 685 | } |
| 686 | |
| 687 | mp_menu = menu; |
| 688 | m_owned = owned; |
| 689 | mp_action = menu->menuAction (); |
| 690 | |
| 691 | } |
| 692 | |
| 693 | if (mp_menu) { |
| 694 | connect (mp_menu, SIGNAL (destroyed (QObject *)), this, SLOT (was_destroyed (QObject *))); |
| 695 | connect (mp_menu, SIGNAL (aboutToShow ()), this, SLOT (menu_about_to_show ())); |
| 696 | } else { |
| 697 | connect (mp_action, SIGNAL (destroyed (QObject *)), this, SLOT (was_destroyed (QObject *))); |
| 698 | } |
| 699 | connect (mp_action, SIGNAL (triggered ()), this, SLOT (qaction_triggered ())); |
| 700 | } |
| 701 | |
| 702 | void |
| 703 | Action::was_destroyed (QObject *obj) |
no test coverage detected