@@ -689,6 +689,35 @@ class RemoveNodesFromGroupMenuCommand : public SingleMenuCommand
689689 NE ::NodeCollection relevantNodes;
690690};
691691
692+ class AddNodesToGroupMenuCommand : public SingleMenuCommand
693+ {
694+ public:
695+ AddNodesToGroupMenuCommand (NodeUIManager& uiManager, const UINodeGroupPtr& uiNodeGroup, const NE ::NodeCollection& relevantNodes) :
696+ SingleMenuCommand (std::wstring (L" Add To Group \" " ) + uiNodeGroup->GetName () + std::wstring (L" \" " ), false),
697+ uiManager (uiManager),
698+ uiNodeGroup (uiNodeGroup),
699+ relevantNodes (relevantNodes)
700+ {
701+
702+ }
703+
704+ virtual ~AddNodesToGroupMenuCommand ()
705+ {
706+
707+ }
708+
709+ virtual void Do () override
710+ {
711+ AddNodesToGroupCommand command (uiNodeGroup, relevantNodes);
712+ uiManager.ExecuteCommand (command);
713+ }
714+
715+ private:
716+ NodeUIManager& uiManager;
717+ UINodeGroupPtr uiNodeGroup;
718+ NE ::NodeCollection relevantNodes;
719+ };
720+
692721NE ::NodeCollection GetNodesForCommand (const NodeUIManager& uiManager, const UINodePtr& uiNode)
693722{
694723 const NE ::NodeCollection& selectedNodes = uiManager.GetSelectedNodes ();
@@ -720,10 +749,17 @@ MenuCommandStructure CreateNodeCommandStructure (NodeUIManager& uiManager, NodeU
720749
721750 GroupMenuCommandPtr groupingCommandGroup (new GroupMenuCommand (L" Grouping" ));
722751 groupingCommandGroup->AddChildCommand (MenuCommandPtr (new CreateGroupMenuCommand (uiManager, relevantNodes)));
752+
723753 UINodeGroupConstPtr nodeGroup = uiManager.GetUINodeGroup (uiNode->GetId ());
724754 if (nodeGroup != nullptr ) {
725755 groupingCommandGroup->AddChildCommand (MenuCommandPtr (new RemoveNodesFromGroupMenuCommand (uiManager, relevantNodes)));
726756 }
757+
758+ uiManager.EnumerateUINodeGroups ([&] (const UINodeGroupPtr& group) {
759+ groupingCommandGroup->AddChildCommand (MenuCommandPtr (new AddNodesToGroupMenuCommand (uiManager, group, relevantNodes)));
760+ return true ;
761+ });
762+
727763 commandStructureBuilder.RegisterCommand (groupingCommandGroup);
728764
729765 return commandStructureBuilder.GetCommandStructure ();
0 commit comments