Part: refactor DlgPrimitives dialog
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -39,6 +39,22 @@ namespace Gui { class Document; }
|
||||
namespace Part {
|
||||
class Feature;
|
||||
class Primitive;
|
||||
class Plane;
|
||||
class Box;
|
||||
class Cylinder;
|
||||
class Cone;
|
||||
class Sphere;
|
||||
class Ellipsoid;
|
||||
class Torus;
|
||||
class Prism;
|
||||
class Wedge;
|
||||
class Helix;
|
||||
class Spiral;
|
||||
class Circle;
|
||||
class Ellipse;
|
||||
class Vertex;
|
||||
class Line;
|
||||
class RegularPolygon;
|
||||
}
|
||||
namespace PartGui {
|
||||
|
||||
@@ -62,6 +78,320 @@ public:
|
||||
};
|
||||
|
||||
class Ui_DlgPrimitives;
|
||||
|
||||
class AbstractPrimitive : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
AbstractPrimitive(Part::Primitive* feature = nullptr);
|
||||
virtual ~AbstractPrimitive() = default;
|
||||
|
||||
bool hasValidPrimitive() const;
|
||||
virtual const char* getDefaultName() const = 0;
|
||||
virtual QString create(const QString& objectName, const QString& placement) const = 0;
|
||||
virtual QString change(const QString& objectName, const QString& placement) const = 0;
|
||||
|
||||
public Q_SLOTS:
|
||||
virtual void changeValue(QWidget*) = 0;
|
||||
|
||||
protected:
|
||||
void connectSignalMapper(QWidget *sender, const char *signal, QSignalMapper* mapper);
|
||||
|
||||
protected:
|
||||
App::DocumentObjectWeakPtrT featurePtr;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class PlanePrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PlanePrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Plane* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class BoxPrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
BoxPrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Box* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class CylinderPrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CylinderPrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Cylinder* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class ConePrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ConePrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Cone* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class SpherePrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SpherePrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Sphere* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class EllipsoidPrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EllipsoidPrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Ellipsoid* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class TorusPrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TorusPrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Torus* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class PrismPrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PrismPrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Prism* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WedgePrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
WedgePrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Wedge* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class HelixPrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
HelixPrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Helix* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class SpiralPrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SpiralPrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Spiral* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class CirclePrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CirclePrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Circle* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class EllipsePrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EllipsePrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Ellipse* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class PolygonPrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PolygonPrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::RegularPolygon* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class LinePrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
LinePrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Line* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class VertexPrimitive : public AbstractPrimitive
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
VertexPrimitive(std::shared_ptr<Ui_DlgPrimitives> ui, Part::Vertex* feature = nullptr);
|
||||
|
||||
const char* getDefaultName() const override;
|
||||
QString create(const QString& objectName, const QString& placement) const override;
|
||||
QString change(const QString& objectName, const QString& placement) const override;
|
||||
void changeValue(QWidget*) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class DlgPrimitives : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -73,66 +403,25 @@ public:
|
||||
void accept(const QString&);
|
||||
void reject();
|
||||
|
||||
private Q_SLOTS:
|
||||
void on_buttonCircleFromThreePoints_clicked();
|
||||
void onChangePlane(QWidget*);
|
||||
void onChangeBox(QWidget*);
|
||||
void onChangeCylinder(QWidget*);
|
||||
void onChangeCone(QWidget*);
|
||||
void onChangeSphere(QWidget*);
|
||||
void onChangeEllipsoid(QWidget*);
|
||||
void onChangeTorus(QWidget*);
|
||||
void onChangePrism(QWidget*);
|
||||
void onChangeWedge(QWidget*);
|
||||
void onChangeHelix(QWidget*);
|
||||
void onChangeSpiral(QWidget*);
|
||||
void onChangeCircle(QWidget*);
|
||||
void onChangeEllipse(QWidget*);
|
||||
void onChangeVertex(QWidget*);
|
||||
void onChangeLine(QWidget*);
|
||||
void onChangeRegularPolygon(QWidget*);
|
||||
private:
|
||||
void buttonCircleFromThreePoints();
|
||||
|
||||
private:
|
||||
QString createPlane(const QString& objectName, const QString& placement) const;
|
||||
QString createBox(const QString& objectName, const QString& placement) const;
|
||||
QString createCylinder(const QString& objectName, const QString& placement) const;
|
||||
QString createCone(const QString& objectName, const QString& placement) const;
|
||||
QString createSphere(const QString& objectName, const QString& placement) const;
|
||||
QString createEllipsoid(const QString& objectName, const QString& placement) const;
|
||||
QString createTorus(const QString& objectName, const QString& placement) const;
|
||||
QString createPrism(const QString& objectName, const QString& placement) const;
|
||||
QString createWedge(const QString& objectName, const QString& placement) const;
|
||||
QString createHelix(const QString& objectName, const QString& placement) const;
|
||||
QString createSpiral(const QString& objectName, const QString& placement) const;
|
||||
QString createCircle(const QString& objectName, const QString& placement) const;
|
||||
QString createEllipse(const QString& objectName, const QString& placement) const;
|
||||
QString createVertex(const QString& objectName, const QString& placement) const;
|
||||
QString createLine(const QString& objectName, const QString& placement) const;
|
||||
QString createRegularPolygon(const QString& objectName, const QString& placement) const;
|
||||
|
||||
QString changePlane(const QString& objectName, const QString& placement) const;
|
||||
QString changeBox(const QString& objectName, const QString& placement) const;
|
||||
QString changeCylinder(const QString& objectName, const QString& placement) const;
|
||||
QString changeCone(const QString& objectName, const QString& placement) const;
|
||||
QString changeSphere(const QString& objectName, const QString& placement) const;
|
||||
QString changeEllipsoid(const QString& objectName, const QString& placement) const;
|
||||
QString changeTorus(const QString& objectName, const QString& placement) const;
|
||||
QString changePrism(const QString& objectName, const QString& placement) const;
|
||||
QString changeWedge(const QString& objectName, const QString& placement) const;
|
||||
QString changeHelix(const QString& objectName, const QString& placement) const;
|
||||
QString changeSpiral(const QString& objectName, const QString& placement) const;
|
||||
QString changeCircle(const QString& objectName, const QString& placement) const;
|
||||
QString changeEllipse(const QString& objectName, const QString& placement) const;
|
||||
QString changeVertex(const QString& objectName, const QString& placement) const;
|
||||
QString changeLine(const QString& objectName, const QString& placement) const;
|
||||
QString changeRegularPolygon(const QString& objectName, const QString& placement) const;
|
||||
|
||||
static void pickCallback(void * ud, SoEventCallback * n);
|
||||
void executeCallback(Picker*);
|
||||
void connectSignalMapper(QWidget *sender, const char *signal, QSignalMapper* mapper);
|
||||
void acceptChanges(const QString&);
|
||||
void tryCreatePrimitive(const QString&);
|
||||
|
||||
void addPrimitive(std::shared_ptr<AbstractPrimitive>);
|
||||
std::shared_ptr<AbstractPrimitive> getPrimitive(int index) const;
|
||||
int findIndexOfValidPrimitive() const;
|
||||
void activatePage();
|
||||
|
||||
private:
|
||||
std::unique_ptr<Ui_DlgPrimitives> ui;
|
||||
using AbstractPrimitivePtr = std::shared_ptr<AbstractPrimitive>;
|
||||
std::vector<AbstractPrimitivePtr> primitive;
|
||||
std::shared_ptr<Ui_DlgPrimitives> ui;
|
||||
App::DocumentObjectWeakPtrT featurePtr;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user