]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Ctrl+space show list of possible parameters in widget expr editor.
authornds <nds@opencascade.com>
Thu, 18 Feb 2016 07:06:10 +0000 (10:06 +0300)
committernds <nds@opencascade.com>
Thu, 18 Feb 2016 07:06:10 +0000 (10:06 +0300)
src/ModuleBase/ModuleBase_Tools.cpp
src/ModuleBase/ModuleBase_Tools.h
src/ModuleBase/ModuleBase_WidgetExprEditor.cpp
src/ModuleBase/ModuleBase_WidgetExprEditor.h

index 6cbbe1c80c3361ba65c7009a2b57c7ac62f63f77..5d921bdc8594b1c59d50c68005d6bba43626b2a4 100755 (executable)
@@ -18,6 +18,7 @@
 #include <ModelAPI_ResultCompSolid.h>
 #include <ModelAPI_ResultParameter.h>
 #include <ModelAPI_Tools.h>
+#include <ModelAPI_Session.h>
 
 #include <TopoDS_Iterator.hxx>
 
@@ -382,6 +383,30 @@ TopAbs_ShapeEnum getCompoundSubType(const TopoDS_Shape& theShape)
   return aShapeType;
 }
 
+void getParameters(QStringList& theParameters)
+{
+  theParameters.clear();
+
+  SessionPtr aSession = ModelAPI_Session::get();
+  std::list<DocumentPtr> aDocList;
+  DocumentPtr anActiveDocument = aSession->activeDocument();
+  DocumentPtr aRootDocument = aSession->moduleDocument();
+  aDocList.push_back(anActiveDocument);
+  if (anActiveDocument != aRootDocument) {
+    aDocList.push_back(aRootDocument);
+  }
+  std::string aGroupId = ModelAPI_ResultParameter::group();
+  for(std::list<DocumentPtr>::const_iterator it = aDocList.begin(); it != aDocList.end(); ++it) {
+    DocumentPtr aDocument = *it;
+    int aSize = aDocument->size(aGroupId);
+    for (int i = 0; i < aSize; i++) {
+      ObjectPtr anObject = aDocument->object(aGroupId, i);
+      std::string aParameterName = anObject->data()->name();
+      theParameters.append(aParameterName.c_str());
+    }
+  }
+}
+
 } // namespace ModuleBase_Tools
 
 
index 31556d8d822f88e79558e10ee7926a4cf6d7f7c0..9346e28ff49c7e2d483a207262dcb3f360f101c9 100755 (executable)
@@ -159,14 +159,18 @@ MODULEBASE_EXPORT Quantity_Color color(const std::string& theSection,
                                        const std::string& theDefault);
 
 
-// Returns the object from the attribute
+/// Returns the object from the attribute
 /// \param theObj an object
 MODULEBASE_EXPORT ObjectPtr getObject(const AttributePtr& theAttribute);
 
-// Returns the object from the attribute
+/// Returns the object from the attribute
 /// \param theObj an object
 MODULEBASE_EXPORT TopAbs_ShapeEnum getCompoundSubType(const TopoDS_Shape& theShape);
 
+/// Returns list of parameters accessible in the active part and partset
+/// \theParameters a list of parameter names
+MODULEBASE_EXPORT void getParameters(QStringList& theParameters);
+
 }
 
 #endif
index 2900b1eb9c413803b8d1e3e7eebc356381e851f8..1df376b2b2cff2127f5f3fd05321153f707817f9 100644 (file)
@@ -236,6 +236,15 @@ ModuleBase_WidgetExprEditor::~ModuleBase_WidgetExprEditor()
 {
 }
 
+void ModuleBase_WidgetExprEditor::activateCustom()
+{
+  ModuleBase_ModelWidget::activateCustom();
+
+  QStringList aParameters;
+  ModuleBase_Tools::getParameters(aParameters);
+  myEditor->setCompletionList(aParameters);
+}
+
 void ModuleBase_WidgetExprEditor::initializeValueByActivate()
 {
 }
index 6e9941cf0d3f84860d43a1316e44d280f257014d..bbd84a89f2f415cfb71405e23b2b24cf8d6ea184 100644 (file)
@@ -108,6 +108,9 @@ class MODULEBASE_EXPORT ModuleBase_WidgetExprEditor : public ModuleBase_ModelWid
                                const std::string& thePlaceHolder );
   virtual ~ModuleBase_WidgetExprEditor();
 
+  /// The methiod called when widget is activated
+  virtual void activateCustom();
+
   /// Redefinition of virtual method
   virtual QList<QWidget*> getControls() const;