part deletion handling
-remove everxthing that belongs to a part on deletion -disallow to delete the origin by the user and only remove it when Part is being deleted
This commit is contained in:
@@ -1050,6 +1050,19 @@ void StdCmdDelete::activated(int iMsg)
|
||||
// check if the edited view provider is selected
|
||||
for (std::vector<Gui::SelectionObject>::iterator ft = sel.begin(); ft != sel.end(); ++ft) {
|
||||
Gui::ViewProvider* vp = pGuiDoc->getViewProvider(ft->getObject());
|
||||
|
||||
if (ft->getObject()->testStatus(App::ObjectStatus::Undeletable)) {
|
||||
QString bodyMessage;
|
||||
QTextStream bodyMessageStream(&bodyMessage);
|
||||
bodyMessageStream << qApp->translate("Std_Delete",
|
||||
"The object is marked as undeletable.");
|
||||
|
||||
QMessageBox::warning(Gui::getMainWindow(),
|
||||
qApp->translate("Std_Delete", "Object status"), bodyMessage);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (vp == vpedit) {
|
||||
if (!ft->getSubNames().empty()) {
|
||||
// handle the view provider
|
||||
@@ -1072,6 +1085,19 @@ void StdCmdDelete::activated(int iMsg)
|
||||
for (std::vector<Gui::SelectionObject>::iterator ft = sel.begin(); ft != sel.end(); ++ft) {
|
||||
App::DocumentObject* obj = ft->getObject();
|
||||
std::vector<App::DocumentObject*> links = obj->getInList();
|
||||
|
||||
if (obj->testStatus(App::ObjectStatus::Undeletable)) {
|
||||
QString bodyMessage;
|
||||
QTextStream bodyMessageStream(&bodyMessage);
|
||||
bodyMessageStream << qApp->translate("Std_Delete",
|
||||
"The object is marked as undeletable.");
|
||||
|
||||
QMessageBox::warning(Gui::getMainWindow(),
|
||||
qApp->translate("Std_Delete", "Object status"), bodyMessage);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!links.empty()) {
|
||||
// check if the referenced objects are groups or are selected too
|
||||
for (std::vector<App::DocumentObject*>::iterator lt = links.begin(); lt != links.end(); ++lt) {
|
||||
|
||||
Reference in New Issue
Block a user