Core: Add VarSets to Groups
If a Group is selected, add the VarSet to the group.
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user