#ifndef NO_BOND_PT_EDIT_DIALOG_H #define NO_BOND_PT_EDIT_DIALOG_H #include #include #include #include #include #include #include #include #include #include #include #include "dt.h" class NoBondPtEditDialog : public QDialog { Q_OBJECT public: NoBondPtEditDialog(int rows, int cols, const std::vector& selectedPts, QWidget* parent = nullptr); QVector getSelectedPoints() const; protected: void mousePressEvent(QMouseEvent* event) override; void mouseMoveEvent(QMouseEvent* event) override; void mouseReleaseEvent(QMouseEvent* event) override; private: QSet> selectedSet; Qt::MouseButton dragButton = Qt::NoButton; QMap> buttonMap; QRubberBand* rubberBand = nullptr; QPoint dragStart; bool isDragging = false; }; #endif // NO_BOND_PT_EDIT_DIALOG_H