#ifndef EDITPROFILE_H #define EDITPROFILE_H #include #include #include "qcustomplot.h" #include namespace Ui { class editProfile; } class editProfile : public QDialog { Q_OBJECT public: explicit editProfile(QWidget *parent = nullptr); ~editProfile(); QVector qv_x, qv_y; QVector cpoints_x, cpoints_y; signals: void on_clickedPoint(QMouseEvent *event); void on_dragPoint(bool); void on_clickedGraph(bool); private slots: void clickedGraph(QMouseEvent *event); void rePlot(); void addPoint(double x, double y); void on_pushButton_clicked(); void clickedPoint(QCPAbstractPlottable *plottable, int dataIndex, QMouseEvent *event); void on_saveButton_clicked(); bool initializeDragging(QMouseEvent *event); bool detectMove(QMouseEvent *event); bool detectPress(QMouseEvent *event); void detectRelease(QMouseEvent *event); bool checkForDuplicatePoint(int x, int y); int getDataIndex(QCPAbstractPlottable *plottable, int dataIndex); void getClosestCoords(QMouseEvent *event); void getPointIndices(); bool checkForNearbyPoints(QMouseEvent *event); void dragPoint(int index_x, int index_y, QMouseEvent *event); void drawFillerLines(); void on_clearButton_clicked(); private: Ui::editProfile *ui; //QVector qv_x, qv_y; QVector leftLineX; QVector leftLineY; QVector rightLineX; QVector rightLineY; QVector curvepoints; QPair curvepoint; QCPItemText *coordText; int x_lower = 0; int x_upper = 100; int y_lower = 0; int y_upper = 100; double pixelLength; double selectionPrecision = 2; bool mouseMoving = false; bool mousePressed = false; bool mouseDragging = false; bool duplicatePoint = false; bool isNearbyPoint = false; bool coordTextCreated = false; int pointIndex; int y_length; int x_length; int xcoord; int ycoord; int index_x = 0; int index_y = 0; bool indicesSet = false; bool draggingPoint = false; }; #endif // EDITPROFILE_H