| 717 | } |
| 718 | |
| 719 | void AdvSceneSwitcher::ShowMacroContextMenu(const QPoint &pos) |
| 720 | { |
| 721 | QPoint globalPos = ui->macros->mapToGlobal(pos); |
| 722 | QMenu menu; |
| 723 | |
| 724 | menu.addAction( |
| 725 | obs_module_text("AdvSceneSwitcher.macroTab.contextMenuAdd"), |
| 726 | this, &AdvSceneSwitcher::on_macroAdd_clicked); |
| 727 | |
| 728 | auto copy = menu.addAction( |
| 729 | obs_module_text("AdvSceneSwitcher.macroTab.copy"), this, |
| 730 | &AdvSceneSwitcher::CopyMacro); |
| 731 | copy->setEnabled(ui->macros->SingleItemSelected() && |
| 732 | !ui->macros->GroupsSelected()); |
| 733 | menu.addSeparator(); |
| 734 | |
| 735 | auto rename = menu.addAction( |
| 736 | obs_module_text("AdvSceneSwitcher.macroTab.rename"), this, |
| 737 | &AdvSceneSwitcher::RenameSelectedMacro); |
| 738 | rename->setEnabled(ui->macros->SingleItemSelected()); |
| 739 | |
| 740 | auto remove = menu.addAction( |
| 741 | obs_module_text("AdvSceneSwitcher.macroTab.remove"), this, |
| 742 | &AdvSceneSwitcher::on_macroRemove_clicked); |
| 743 | remove->setDisabled(ui->macros->SelectionEmpty()); |
| 744 | menu.addSeparator(); |
| 745 | |
| 746 | auto group = menu.addAction( |
| 747 | obs_module_text("AdvSceneSwitcher.macroTab.group"), ui->macros, |
| 748 | &MacroTree::GroupSelectedItems); |
| 749 | group->setDisabled(ui->macros->GroupedItemsSelected() || |
| 750 | ui->macros->GroupsSelected() || |
| 751 | ui->macros->SelectionEmpty()); |
| 752 | |
| 753 | auto ungroup = menu.addAction( |
| 754 | obs_module_text("AdvSceneSwitcher.macroTab.ungroup"), |
| 755 | ui->macros, &MacroTree::UngroupSelectedGroups); |
| 756 | ungroup->setEnabled(ui->macros->GroupsSelected()); |
| 757 | |
| 758 | auto expandAll = menu.addAction( |
| 759 | obs_module_text("AdvSceneSwitcher.macroTab.expandAllGroups"), |
| 760 | ui->macros, &MacroTree::ExpandAll); |
| 761 | expandAll->setEnabled(ui->macros->GroupsExist()); |
| 762 | |
| 763 | auto collapseAll = menu.addAction( |
| 764 | obs_module_text("AdvSceneSwitcher.macroTab.collapseAllGroups"), |
| 765 | ui->macros, &MacroTree::CollapseAll); |
| 766 | collapseAll->setEnabled(ui->macros->GroupsExist()); |
| 767 | menu.addSeparator(); |
| 768 | |
| 769 | auto exportAction = menu.addAction( |
| 770 | obs_module_text("AdvSceneSwitcher.macroTab.export"), this, |
| 771 | &AdvSceneSwitcher::ExportMacros); |
| 772 | exportAction->setDisabled(ui->macros->SelectionEmpty()); |
| 773 | menu.addAction(obs_module_text("AdvSceneSwitcher.macroTab.import"), |
| 774 | this, &AdvSceneSwitcher::ImportMacros); |
| 775 | |
| 776 | menu.exec(globalPos); |
nothing calls this directly
no test coverage detected