class CURVECREATOR_EXPORT CurveCreator_Widget : public QWidget
{
Q_OBJECT
+
+public:
+ enum ActionFlags {
+ NoFlags = 0x00000000,
+ DisableDetectionMode = 0x00000001,
+ DisableNewSection = 0x00000002,
+ DisableClosedSection = 0x00000004
+ };
+
+ enum ActionMode {
+ NoneMode,
+ AdditionMode,
+ ModificationMode,
+ DetectionMode
+ };
+
public:
explicit CurveCreator_Widget( QWidget* parent,
CurveCreator_ICurve *theCurve,
+ const int theActionFlags = NoFlags,
+ const QStringList& theCoordTitles = QStringList(),
Qt::WindowFlags fl=0,
int theLocalPointRowLimit = 20);
void setCurve( CurveCreator_ICurve* theCurve );
QList<int> getSelectedSections();
- QList< QPair< int, int > > getSelectedPoints();
+ void setSelectedSections( const QList<int>& theSections );
void removeSelected();
bool removeEnabled();
+ void setActionMode( const ActionMode& theMode );
+ ActionMode getActionMode() const;
+
signals:
void selectionChanged();
- void subOperationStarted( QWidget* );
+ void subOperationStarted( QWidget*, bool );
void subOperationFinished( QWidget* );
public slots:
void onModeChanged(bool checked);
void onNewSection();
void onSelectionChanged();
- void onAddNewPoint(const CurveCreator::Coordinates& theCoords);
void onAddNewSection();
void onEditSection( int theSection );
void onModifySection();
void onRedo();
void onUndoSettings();
void onContextMenu(QPoint thePoint);
- void onGetCoordsByClick( QMouseEvent* );
void onMousePress( SUIT_ViewWindow*, QMouseEvent* theEvent );
void onMouseRelease( SUIT_ViewWindow*, QMouseEvent* theEvent );
void onCellChanged( int theRow, int theColumn );
protected:
- enum ActionId{ UNDO_ID,
+ void addCoordsByClick( QMouseEvent* );
+
+protected:
+ enum ActionId{ NONE_ID,
+ UNDO_ID,
REDO_ID,
NEW_SECTION_ID,
ADDITION_MODE_ID,
DETECTION_MODE_ID
};
- enum ActionMode {
- NoneMode,
- AdditionMode,
- ModificationMode,
- DetectionMode
- };
-
private:
OCCViewer_Viewer* getOCCViewer();
QAction* createAction( ActionId theId, const QString& theName, const QPixmap& theImage,
const QString& theToolTip, const QKeySequence& theShortcut );
QAction* getAction(ActionId theId);
- ActionMode getActionMode() const;
+ QAction* getAction(ActionMode theMode);
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 setSelectedPoints( const CurveCreator_ICurve::SectionToPointList& =
CurveCreator_ICurve::SectionToPointList() );
+ void stopActionMode();
+
void startCurveModification( CurveCreator_ICurve::SectionToPointList& thePoints,
const bool theFillPoints = true );
void finishCurveModification( const CurveCreator_ICurve::SectionToPointList& thePoints =
QPoint myDragStartPosition;
int myDragInteractionStyle;
CurveCreator_ICurve::SectionToPointList myDragPoints;
+ QMap<CurveCreator_ICurve::SectionToPoint, CurveCreator::Coordinates> myInitialDragPointsCoords;
bool myDragged;
QByteArray myGuiState;
+ int myPressedX;
+ int myPressedY;
};
#endif // CURVECREATOR_WIDGET_H