X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROCurveCreator%2FCurveCreator_Widget.h;h=7da055ae967a3229301a7ac6fdd0a3425afa9289;hb=c363fc5c3541669e07cf4d991cc1e94253147ac1;hp=6f073f165f7696cc88b320f642f8dc03d0ff868d;hpb=8edd427af3997521bda72ca3c416cc1d490565d5;p=modules%2Fhydro.git diff --git a/src/HYDROCurveCreator/CurveCreator_Widget.h b/src/HYDROCurveCreator/CurveCreator_Widget.h index 6f073f16..7da055ae 100644 --- a/src/HYDROCurveCreator/CurveCreator_Widget.h +++ b/src/HYDROCurveCreator/CurveCreator_Widget.h @@ -43,7 +43,7 @@ class AIS_ListOfInteractive; class QAction; class QPixmap; -class QTableWidget; +class CurveCreator_TableView; class CurveCreator_TreeView; class CurveCreator_NewPointDlg; class CurveCreator_NewSectionDlg; @@ -51,10 +51,20 @@ class CurveCreator_NewSectionDlg; class CURVECREATOR_EXPORT CurveCreator_Widget : public QWidget { Q_OBJECT + +public: + enum ActionFlags { + NoFlags = 0x00000000, + DisableDetectionMode = 0x00000001, + DisableNewSection = 0x00000002 + }; + public: explicit CurveCreator_Widget( QWidget* parent, CurveCreator_ICurve *theCurve, - Qt::WindowFlags fl=0 ); + const int theActionFlags = NoFlags, + Qt::WindowFlags fl=0, + int theLocalPointRowLimit = 20); // OCC viewer manipulation void setOCCViewer( OCCViewer_Viewer* theViewer ); @@ -62,13 +72,8 @@ public: Handle(AIS_InteractiveContext) getAISContext(); OCCViewer_ViewPort3d* getViewPort(); int changeInteractionStyle( int theStyle ); - void setObjectsSelected(const AIS_ListOfInteractive& theList); void reset(); - - //! Return unique section name - std::string getUniqSectionName(CurveCreator_ICurve* theCurve) const; - void setCurve( CurveCreator_ICurve* theCurve ); QList getSelectedSections(); @@ -91,7 +96,6 @@ protected slots: void onModeChanged(bool checked); void onNewSection(); void onSelectionChanged(); - void onAddNewPoint(const CurveCreator::Coordinates& theCoords); void onAddNewSection(); void onEditSection( int theSection ); void onModifySection(); @@ -108,7 +112,6 @@ protected slots: void onRedo(); void onUndoSettings(); void onContextMenu(QPoint thePoint); - void onGetCoordsByClick( QMouseEvent* ); void onMousePress( SUIT_ViewWindow*, QMouseEvent* theEvent ); void onMouseRelease( SUIT_ViewWindow*, QMouseEvent* theEvent ); @@ -121,6 +124,9 @@ protected slots: void onCellChanged( int theRow, int theColumn ); +protected: + void addCoordsByClick( QMouseEvent* ); + protected: enum ActionId{ UNDO_ID, REDO_ID, @@ -155,25 +161,26 @@ private: QAction* getAction(ActionId theId); ActionMode getActionMode() const; - void updateUndoRedo(); + void updateActionsStates(); + void updateUndoRedo(); void removeSection(); void removePoint(); + void addNewPoint(const CurveCreator::Coordinates& theCoords); void insertPointToSelectedSegment( const int theXPosition, const int theYPosition ); void moveSelectedPoints( const int theXPosition, const int theYPosition ); void updateLocalPointView(); void setLocalPointContext( const bool theOpen, const bool isUpdateTable = false ); - void addLocalPointToTable( const double theX, const double theY ); void setDragStarted( const bool theState, const QPoint& thePoint = QPoint() ); - void getSelectedPonts( CurveCreator_ICurve::SectionToPointList& thePoints ); - bool isIntersectVertexToPoint( const TopoDS_Vertex& theVertex, - const CurveCreator_ICurve::SectionToPoint& theSToPoint ); - void setSelectedPonts( const CurveCreator_ICurve::SectionToPointList& = + void getSelectedPoints( CurveCreator_ICurve::SectionToPointList& thePoints ); + void setSelectedPoints( const CurveCreator_ICurve::SectionToPointList& = CurveCreator_ICurve::SectionToPointList() ); + void stopModificationMode(); + void startCurveModification( CurveCreator_ICurve::SectionToPointList& thePoints, const bool theFillPoints = true ); void finishCurveModification( const CurveCreator_ICurve::SectionToPointList& thePoints = @@ -186,20 +193,18 @@ private: void convert( const CurveCreator_ICurve::SectionToPointList& thePoints, QMap >& theConvPoints ); - // local point view table methods - int getSectionId( const int theRowId ) const; - int getPointId( const int theRowId ) const; - bool contains( const CurveCreator_ICurve::SectionToPointList& theList, const CurveCreator_ICurve::SectionToPoint& theValue ) const; private: QMap myActionMap; - CurveCreator_ICurve* myCurve; + CurveCreator_ICurve* myCurve; CurveCreator_TreeView* mySectionView; - QTableWidget* myLocalPointView; + CurveCreator_TableView* myLocalPointView; + CurveCreator_ICurve::SectionToPointList myLocalPoints; CurveCreator_NewSectionDlg* myNewSectionEditor; OCCViewer_Viewer* myOCCViewer; + int myLocalPointRowLimit; int mySection; int myPointNum; bool myDragStarted;