Core: Add VarSets to Groups

If a Group is selected, add the VarSet to the group.
This commit is contained in:
Pieter Hijma
2024-05-19 15:39:46 +02:00
parent 5670777eeb
commit ec841ed6d4
3 changed files with 25 additions and 2 deletions

View File

@@ -26,13 +26,15 @@
#include <QApplication>
#endif
#include "App/Document.h"
#include <App/GroupExtension.h>
#include <App/Document.h>
#include "Command.h"
#include "ActiveObjectList.h"
#include "Application.h"
#include "Document.h"
#include "ViewProviderDocumentObject.h"
#include "Selection.h"
using namespace Gui;
@@ -151,6 +153,20 @@ void StdCmdVarSet::activated(int iMsg)
std::string VarSetName;
VarSetName = getUniqueObjectName("VarSet");
doCommand(Doc,"App.activeDocument().addObject('App::VarSet','%s')",VarSetName.c_str());
// add the varset to a group if it is selected
auto sels = Selection().getSelectionEx(nullptr, App::DocumentObject::getClassTypeId(),
ResolveMode::OldStyleElement, true);
if (sels.size() == 1) {
App::DocumentObject *obj = sels[0].getObject();
auto group = obj->getExtension<App::GroupExtension>();
if (group) {
Gui::Document* docGui = Application::Instance->activeDocument();
App::Document* doc = docGui->getDocument();
group->addObject(doc->getObject(VarSetName.c_str()));
}
}
doCommand(Doc, "App.ActiveDocument.getObject('%s').ViewObject.doubleClicked()", VarSetName.c_str());
}