2015-07-02 06:11:29 -07:00
|
|
|
#ifndef GEOMETRYWIDGET_H
|
|
|
|
#define GEOMETRYWIDGET_H
|
|
|
|
|
|
|
|
#include <QWidget>
|
|
|
|
#include <QtWidgets>
|
2015-07-05 02:43:40 -07:00
|
|
|
#include <QRegularExpression>
|
|
|
|
|
2016-12-14 01:00:35 -08:00
|
|
|
#include "geometry.h"
|
|
|
|
|
2015-07-02 06:11:29 -07:00
|
|
|
class GeometryWidget;
|
|
|
|
namespace Ui {
|
|
|
|
class GeometryWidget;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GeometryWidget : public QWidget
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
2016-12-14 01:00:35 -08:00
|
|
|
Q_PROPERTY(QString geometry READ getGeometry WRITE set NOTIFY editingFinished USER true)
|
2015-07-02 06:11:29 -07:00
|
|
|
|
|
|
|
public:
|
2019-03-29 09:23:22 -07:00
|
|
|
explicit GeometryWidget(QWidget *parent = nullptr);
|
2019-03-29 09:35:10 -07:00
|
|
|
~GeometryWidget() override;
|
2015-07-02 06:11:29 -07:00
|
|
|
|
2019-03-28 20:34:17 -07:00
|
|
|
bool set(const QString& geomStr, Geometry::Format format = Geometry::FormatUnknown); //{ return set(geomStr.toStdString().c_str(), format); }
|
2019-03-29 09:27:24 -07:00
|
|
|
bool setDefault() { return set(""); }
|
2015-07-04 01:15:26 -07:00
|
|
|
bool setFormat(int i) { return setFormat(static_cast<Geometry::Format>(i)); }
|
2015-07-04 00:16:35 -07:00
|
|
|
bool setFormat(Geometry::Format format);
|
2015-07-04 01:15:26 -07:00
|
|
|
bool setFormat(QString formatStr) { return setFormat(Geometry::formatId(formatStr)); }
|
2019-03-29 09:27:24 -07:00
|
|
|
Geometry::Format getFormat() const;
|
|
|
|
QString getFormatStr() { return Geometry::formatName(getFormat()); }
|
|
|
|
QString getGeometry() const;
|
2015-07-02 06:11:29 -07:00
|
|
|
|
|
|
|
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();
|
|
|
|
|
2015-07-03 23:36:55 -07:00
|
|
|
void on_geometry_parse_clicked();
|
|
|
|
|
2015-07-02 06:11:29 -07:00
|
|
|
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];
|
2016-12-14 01:00:35 -08:00
|
|
|
signals:
|
2019-03-29 09:27:24 -07:00
|
|
|
void editingFinished();
|
2015-07-03 23:36:55 -07:00
|
|
|
|
2015-07-02 06:11:29 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // GEOMETRYWIDGET_H
|