| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | #include <Gui/Application.h> |
| | #include <Mod/CAM/App/FeatureArea.h> |
| |
|
| | #include "ViewProviderArea.h" |
| |
|
| |
|
| | using namespace PathGui; |
| |
|
| | PROPERTY_SOURCE(PathGui::ViewProviderArea, PartGui::ViewProviderPlaneParametric) |
| |
|
| | ViewProviderArea::ViewProviderArea() |
| | { |
| | sPixmap = "CAM_Area.svg"; |
| | } |
| |
|
| | ViewProviderArea::~ViewProviderArea() |
| | {} |
| |
|
| | std::vector<App::DocumentObject*> ViewProviderArea::claimChildren() const |
| | { |
| | return std::vector<App::DocumentObject*>(getObject<Path::FeatureArea>()->Sources.getValues()); |
| | } |
| |
|
| | bool ViewProviderArea::canDragObjects() const |
| | { |
| | return true; |
| | } |
| |
|
| | bool ViewProviderArea::canDragObject(App::DocumentObject* obj) const |
| | { |
| | return obj && obj->isDerivedFrom<Part::Feature>(); |
| | } |
| |
|
| | void ViewProviderArea::dragObject(App::DocumentObject* obj) |
| | { |
| | Path::FeatureArea* area = getObject<Path::FeatureArea>(); |
| | std::vector<App::DocumentObject*> sources = area->Sources.getValues(); |
| | for (std::vector<App::DocumentObject*>::iterator it = sources.begin(); it != sources.end(); ++it) { |
| | if (*it == obj) { |
| | sources.erase(it); |
| | area->Sources.setValues(sources); |
| | break; |
| | } |
| | } |
| | } |
| |
|
| | bool ViewProviderArea::canDropObjects() const |
| | { |
| | return true; |
| | } |
| |
|
| | bool ViewProviderArea::canDropObject(App::DocumentObject* obj) const |
| | { |
| | return canDragObject(obj); |
| | } |
| |
|
| | void ViewProviderArea::dropObject(App::DocumentObject* obj) |
| | { |
| | Path::FeatureArea* area = getObject<Path::FeatureArea>(); |
| | std::vector<App::DocumentObject*> sources = area->Sources.getValues(); |
| | sources.push_back(obj); |
| | area->Sources.setValues(sources); |
| | } |
| |
|
| | void ViewProviderArea::updateData(const App::Property* prop) |
| | { |
| | PartGui::ViewProviderPart::updateData(prop); |
| | if (prop->isDerivedFrom<App::PropertyLinkList>()) { |
| | std::vector<App::DocumentObject*> pShapes |
| | = static_cast<const App::PropertyLinkList*>(prop)->getValues(); |
| | for (std::vector<App::DocumentObject*>::iterator it = pShapes.begin(); it != pShapes.end(); |
| | ++it) { |
| | if (*it) { |
| | Gui::Application::Instance->hideViewProvider(*it); |
| | } |
| | } |
| | } |
| | } |
| |
|
| | bool ViewProviderArea::onDelete(const std::vector<std::string>&) |
| | { |
| | |
| | Path::FeatureArea* area = getObject<Path::FeatureArea>(); |
| | std::vector<App::DocumentObject*> pShapes = area->Sources.getValues(); |
| | for (std::vector<App::DocumentObject*>::iterator it = pShapes.begin(); it != pShapes.end(); ++it) { |
| | if (*it) { |
| | Gui::Application::Instance->showViewProvider(*it); |
| | } |
| | } |
| | return true; |
| | } |
| |
|
| | |
| |
|
| | PROPERTY_SOURCE(PathGui::ViewProviderAreaView, PartGui::ViewProviderPlaneParametric) |
| |
|
| | ViewProviderAreaView::ViewProviderAreaView() |
| | { |
| | sPixmap = "CAM_Area_View.svg"; |
| | } |
| |
|
| | ViewProviderAreaView::~ViewProviderAreaView() |
| | {} |
| |
|
| | std::vector<App::DocumentObject*> ViewProviderAreaView::claimChildren() const |
| | { |
| | std::vector<App::DocumentObject*> ret; |
| | Path::FeatureAreaView* feature = getObject<Path::FeatureAreaView>(); |
| | if (feature->Source.getValue()) { |
| | ret.push_back(feature->Source.getValue()); |
| | } |
| | return ret; |
| | } |
| |
|
| | bool ViewProviderAreaView::canDragObjects() const |
| | { |
| | return true; |
| | } |
| |
|
| | bool ViewProviderAreaView::canDragObject(App::DocumentObject* obj) const |
| | { |
| | return obj && obj->isDerivedFrom<Path::FeatureArea>(); |
| | } |
| |
|
| | void ViewProviderAreaView::dragObject(App::DocumentObject*) |
| | { |
| | Path::FeatureAreaView* feature = getObject<Path::FeatureAreaView>(); |
| | feature->Source.setValue(nullptr); |
| | } |
| |
|
| | bool ViewProviderAreaView::canDropObjects() const |
| | { |
| | return true; |
| | } |
| |
|
| | bool ViewProviderAreaView::canDropObject(App::DocumentObject* obj) const |
| | { |
| | return canDragObject(obj); |
| | } |
| |
|
| | void ViewProviderAreaView::dropObject(App::DocumentObject* obj) |
| | { |
| | Path::FeatureAreaView* feature = getObject<Path::FeatureAreaView>(); |
| | feature->Source.setValue(obj); |
| | } |
| |
|
| | void ViewProviderAreaView::updateData(const App::Property* prop) |
| | { |
| | PartGui::ViewProviderPlaneParametric::updateData(prop); |
| | if (prop->isDerivedFrom<App::PropertyLink>()) { |
| | Gui::Application::Instance->hideViewProvider( |
| | static_cast<const App::PropertyLink*>(prop)->getValue() |
| | ); |
| | } |
| | } |
| |
|
| | bool ViewProviderAreaView::onDelete(const std::vector<std::string>&) |
| | { |
| | Path::FeatureAreaView* feature = getObject<Path::FeatureAreaView>(); |
| | Gui::Application::Instance->showViewProvider(feature->Source.getValue()); |
| | return true; |
| | } |
| |
|
| | |
| |
|
| | namespace Gui |
| | { |
| | |
| | PROPERTY_SOURCE_TEMPLATE(PathGui::ViewProviderAreaPython, PathGui::ViewProviderArea) |
| | PROPERTY_SOURCE_TEMPLATE(PathGui::ViewProviderAreaViewPython, PathGui::ViewProviderAreaView) |
| | |
| |
|
| | |
| | template class PathGuiExport ViewProviderFeaturePythonT<PathGui::ViewProviderArea>; |
| | template class PathGuiExport ViewProviderFeaturePythonT<PathGui::ViewProviderAreaView>; |
| | } |
| |
|