#ifndef GEOMETRYWIDGET_H #define GEOMETRYWIDGET_H #include #include #include #include "geometry.h" class GeometryWidget; namespace Ui { class GeometryWidget; } class GeometryWidget : public QWidget { Q_OBJECT Q_PROPERTY(QString geometry READ getGeometry WRITE set NOTIFY editingFinished USER true) public: explicit GeometryWidget(QWidget *parent = nullptr); ~GeometryWidget(); bool set(const QString& geomStr, Geometry::Format format = Geometry::FormatUnknown); //{ return set(geomStr.toStdString().c_str(), format); } bool setDefault(void) { return set(""); } bool setFormat(int i) { return setFormat(static_cast(i)); } bool setFormat(Geometry::Format format); bool setFormat(QString formatStr) { return setFormat(Geometry::formatId(formatStr)); } Geometry::Format getFormat(void) const; QString getFormatStr(void) { return Geometry::formatName(getFormat()); } QString getGeometry(void) const; private slots: void on_geometryFormat_currentIndexChanged(int index); void on_geometry_C0D_CornerX_editingFinished(); void on_geometry_C0D_DimensionX_editingFinished(); void on_geometry_C0D_DimensionY_editingFinished(); void on_geometry_C0D_CornerY_editingFinished(); void on_geometry_CD_CenterX_editingFinished(); void on_geometry_CD_CenterY_editingFinished(); void on_geometry_CD_DimensionX_editingFinished(); void on_geometry_CD_DimensionY_editingFinished(); void on_geometry_parse_clicked(); private: Ui::GeometryWidget *ui; QStackedWidget *m_ui_stack; QSpinBox *m_ui_CD_center[2]; QSpinBox *m_ui_CD_dimension[2]; QSpinBox *m_ui_C0D_corner[2]; QSpinBox *m_ui_C0D_dimension[2]; QSpinBox *m_ui_C01_corner[2][2]; signals: void editingFinished(void); }; #endif // GEOMETRYWIDGET_H