]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Provide access to external part objects for specified widgets
authorvsv <vsv@opencascade.com>
Mon, 27 Jan 2020 15:12:53 +0000 (18:12 +0300)
committervsv <vsv@opencascade.com>
Mon, 27 Jan 2020 15:12:53 +0000 (18:12 +0300)
src/ModuleBase/ModuleBase_ModelWidget.cpp
src/ModuleBase/ModuleBase_ModelWidget.h
src/ModuleBase/ModuleBase_ViewerFilters.cpp

index de9582a5f86b32eb7c960bfb775d0ba447c2aa7c..3254241d2fa6028b063d48d68a34597d48ceaf34 100644 (file)
@@ -65,6 +65,7 @@ ModuleBase_ModelWidget::ModuleBase_ModelWidget(QWidget* theParent,
   myFeatureId = theData->featureId();
 
   myIsInternal = theData->getBooleanAttribute(ATTR_INTERNAL, false);
+  myUseExternalParts = theData->getBooleanAttribute("allow_parts_content", false);
 
   myIsModifiedInEdit = theData->getProperty(ATTR_MODIFIED_IN_EDIT);
 
index 4060181c0d412c27e0e812e9dc8393c2b1168ec4..6e1122da17a902afd85c27fd2d8c5aff83f2877e 100644 (file)
@@ -317,6 +317,9 @@ Q_OBJECT
 
   virtual bool isReadOnly() const { return !isEnabled(); }
 
+  /// Returns true if the widget should have access to external parts
+  bool canUseExternalParts() const { return myUseExternalParts; }
+
 signals:
   /// The signal about widget values are to be changed
   void beforeValuesChanged();
@@ -461,6 +464,9 @@ private:
   bool myFlushUpdateBlocked;
 
   bool myUpdateVisualAttributes;
+
+  /// A flag which indicates that current widget should have access to external parts
+  bool myUseExternalParts;
 };
 
 #endif
index 2777049f802ed492c08d8bf78cb0d2affef2252c..c28b2eaa9b2ce1713e89c6ece76ac17e0b7773cc 100644 (file)
@@ -20,6 +20,9 @@
 #include "ModuleBase_ViewerFilters.h"
 #include "ModuleBase_IWorkshop.h"
 #include "ModuleBase_IModule.h"
+#include "ModuleBase_Operation.h"
+#include "ModuleBase_IPropertyPanel.h"
+#include "ModuleBase_ModelWidget.h"
 
 #include <ModelAPI_Session.h>
 #include <ModelAPI_Document.h>
@@ -76,8 +79,12 @@ Standard_Boolean ModuleBase_ShapeDocumentFilter::IsOk(
     if (aObj) {
       DocumentPtr aDoc = aObj->document();
       SessionPtr aMgr = ModelAPI_Session::get();
-      // TODO: disable the next line for the ImportResult feature "objects" widget only
-      aValid = (aDoc == aMgr->activeDocument() || aDoc == aMgr->moduleDocument());
+
+      ModuleBase_ModelWidget* aWidget = anOperation->propertyPanel()->activeWidget();
+      if (aWidget && aWidget->canUseExternalParts())
+        aValid = Standard_True;
+      else
+        aValid = (aDoc == aMgr->activeDocument() || aDoc == aMgr->moduleDocument());
     }
     else {
       // This object is not controlled by the filter