TechDraw: Enable drag and drop to and from clip groups.
Remove TechDraw_ClipGroupAdd and TechDraw_ClipGroupRemove from the UI.
This commit is contained in:
committed by
WandererFan
parent
3443e61b47
commit
bba0bf1f40
@@ -31,6 +31,9 @@
|
||||
#endif
|
||||
|
||||
#include <App/DocumentObject.h>
|
||||
#include <Mod/TechDraw/App/DrawPage.h>
|
||||
#include <Mod/TechDraw/App/DrawProjGroupItem.h>
|
||||
|
||||
#include "ViewProviderViewClip.h"
|
||||
|
||||
using namespace TechDrawGui;
|
||||
@@ -104,3 +107,40 @@ TechDraw::DrawViewClip* ViewProviderViewClip::getObject() const
|
||||
{
|
||||
return getViewObject();
|
||||
}
|
||||
|
||||
|
||||
void ViewProviderViewClip::dragObject(App::DocumentObject* docObj)
|
||||
{
|
||||
if (!docObj->isDerivedFrom(TechDraw::DrawView::getClassTypeId())) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto dv = static_cast<TechDraw::DrawView*>(docObj);
|
||||
|
||||
getObject()->removeView(dv);
|
||||
}
|
||||
|
||||
void ViewProviderViewClip::dropObject(App::DocumentObject* docObj)
|
||||
{
|
||||
if (docObj->isDerivedFrom(TechDraw::DrawProjGroupItem::getClassTypeId())) {
|
||||
//DPGI can not be dropped onto the Page as it belongs to DPG, not Page
|
||||
return;
|
||||
}
|
||||
if (!docObj->isDerivedFrom(TechDraw::DrawView::getClassTypeId())) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto dv = static_cast<TechDraw::DrawView*>(docObj);
|
||||
TechDraw::DrawPage* pageClip = getObject()->findParentPage();
|
||||
TechDraw::DrawPage* pageView = dv->findParentPage();
|
||||
if (!pageClip || !pageView) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (pageClip != pageView) {
|
||||
pageView->removeView(dv);
|
||||
pageClip->addView(dv);
|
||||
}
|
||||
|
||||
getObject()->addView(dv);
|
||||
}
|
||||
@@ -56,6 +56,8 @@ public:
|
||||
|
||||
bool canDelete(App::DocumentObject* obj) const override;
|
||||
|
||||
void dragObject(App::DocumentObject* docObj) override;
|
||||
void dropObject(App::DocumentObject* docObj) override;
|
||||
};
|
||||
} // namespace TechDrawGui
|
||||
|
||||
|
||||
@@ -49,7 +49,6 @@ using namespace TechDrawGui;
|
||||
qApp->translate("Workbench", "TechDraw Annotation");
|
||||
qApp->translate("Workbench", "TechDraw Attributes");
|
||||
qApp->translate("Workbench", "TechDraw Centerlines");
|
||||
qApp->translate("Workbench", "TechDraw Clips");
|
||||
qApp->translate("Workbench", "TechDraw Decoration");
|
||||
qApp->translate("Workbench", "TechDraw Dimensions");
|
||||
qApp->translate("Workbench", "TechDraw Extend Dimensions");
|
||||
@@ -217,6 +216,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const
|
||||
*views << "TechDraw_ComplexSection";
|
||||
*views << "TechDraw_DetailView";
|
||||
*views << "TechDraw_ProjectionGroup";
|
||||
*views << "TechDraw_ClipGroup";
|
||||
*views << "Separator";
|
||||
*views << "TechDraw_Symbol";
|
||||
*views << "TechDraw_Image";
|
||||
@@ -235,13 +235,6 @@ Gui::MenuItem* Workbench::setupMenuBar() const
|
||||
*other << "TechDraw_ArchView";
|
||||
*other << "TechDraw_SpreadsheetView";
|
||||
|
||||
// clip groups
|
||||
Gui::MenuItem* clips = new Gui::MenuItem;
|
||||
clips->setCommand("Clipped Views");
|
||||
*clips << "TechDraw_ClipGroup";
|
||||
*clips << "TechDraw_ClipGroupAdd";
|
||||
*clips << "TechDraw_ClipGroupRemove";
|
||||
|
||||
// hatching
|
||||
Gui::MenuItem* hatch = new Gui::MenuItem;
|
||||
hatch->setCommand("Hatching");
|
||||
@@ -263,8 +256,6 @@ Gui::MenuItem* Workbench::setupMenuBar() const
|
||||
*draw << "Separator";
|
||||
*draw << other;
|
||||
*draw << "Separator";
|
||||
*draw << clips;
|
||||
*draw << "Separator";
|
||||
*draw << dimensions;
|
||||
*draw << "Separator";
|
||||
*draw << hatch;
|
||||
@@ -307,15 +298,10 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
|
||||
*views << "TechDraw_DraftView";
|
||||
*views << "TechDraw_ArchView";
|
||||
*views << "TechDraw_SpreadsheetView";
|
||||
*views << "TechDraw_ClipGroup";
|
||||
*views << "TechDraw_ShareView";
|
||||
*views << "TechDraw_ProjectShape";
|
||||
|
||||
Gui::ToolBarItem* clips = new Gui::ToolBarItem(root);
|
||||
clips->setCommand("TechDraw Clips");
|
||||
*clips << "TechDraw_ClipGroup";
|
||||
*clips << "TechDraw_ClipGroupAdd";
|
||||
*clips << "TechDraw_ClipGroupRemove";
|
||||
|
||||
Gui::ToolBarItem* stacking = new Gui::ToolBarItem(root);
|
||||
stacking->setCommand("TechDraw Stacking");
|
||||
*stacking << "TechDraw_StackGroup";
|
||||
@@ -420,15 +406,10 @@ Gui::ToolBarItem* Workbench::setupCommandBars() const
|
||||
*views << "TechDraw_DetailView";
|
||||
*views << "TechDraw_DraftView";
|
||||
*views << "TechDraw_SpreadsheetView";
|
||||
*views << "TechDraw_ClipGroup";
|
||||
*views << "TechDraw_ShareView";
|
||||
*views << "TechDraw_ProjectShape";
|
||||
|
||||
Gui::ToolBarItem* clips = new Gui::ToolBarItem(root);
|
||||
clips->setCommand("TechDraw Clips");
|
||||
*clips << "TechDraw_ClipGroup";
|
||||
*clips << "TechDraw_ClipGroupAdd";
|
||||
*clips << "TechDraw_ClipGroupRemove";
|
||||
|
||||
Gui::ToolBarItem* stacking = new Gui::ToolBarItem(root);
|
||||
stacking->setCommand("TechDraw Stacking");
|
||||
*stacking << "TechDraw_StackGroup";
|
||||
|
||||
Reference in New Issue
Block a user