Salome HOME
refs #430: incorrect coordinates in dump polyline
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ImportGeomObjectOp.h
index 6888d34a162c0ee97e5f5b1044a63ff6b4b91d61..75d701281be4ebae92c3277988328ab88fbd1c67 100644 (file)
 
 #include <QStringList>
 
+// IDL includes
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(GEOM_Gen)
+
 class HYDROGUI_InputPanel;
 
 class HYDROGUI_ImportGeomObjectOp : public HYDROGUI_Operation
@@ -34,14 +38,19 @@ class HYDROGUI_ImportGeomObjectOp : public HYDROGUI_Operation
   Q_OBJECT
 
 public:
-  enum OperationType { ImportCreated, ImportSelected };
+  enum OperationType { ImportCreatedAsObstacle, 
+                       ImportSelectedAsObstacle,
+                       ImportSelectedAsPolyline };
 
 public:
   HYDROGUI_ImportGeomObjectOp( HYDROGUI_Module* theModule,
                                const int theOpType,
-                               const bool theIsToShowPanel = true );
+                               const int theGEOMOp = -1 );
   virtual ~HYDROGUI_ImportGeomObjectOp();
 
+  static QList<GEOM::shape_type> getObstacleTypes();
+  static QList<GEOM::shape_type> getPolylineTypes();
+
 protected:
   virtual void               startOperation();
   virtual void               abortOperation();
@@ -49,12 +58,23 @@ protected:
 
   virtual HYDROGUI_InputPanel* createInputPanel() const;
 
-  virtual bool               processApply( int& theUpdateFlags, QString& theErrorMsg );
+  virtual bool               processApply( int& theUpdateFlags, QString& theErrorMsg,
+                                           QStringList& theBrowseObjectsEntries );
+
+protected slots:
+  void                       onExternalOperationFinished( const QString&, const QString&, 
+                                                          const QStringList& );
+
+private:
+  void updateDefaultName();
+  void closeExternalOperationDlg();
 
 private:
   QStringList myGeomObjects; ///< the list of GEOM object entries
   bool myIsToShowPanel; ///< indicates if obstacle panel to be shown
   int  myOpType; ///< operation type (to import selected GEOM objects or the objects just created by GEOM )
+  int  myGEOMOp; ///< GEOM module operation to be called to create GEOM object for import
+  QString myGEOMOpName; ///< the name of the called GEOM module operation
 };
 
 #endif
\ No newline at end of file