+ implement primitive dialog as task panel

git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5367 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
This commit is contained in:
wmayer 2011-12-30 20:49:59 +00:00
parent db3aa26cf1
commit 0c70ddf595
5 changed files with 276 additions and 210 deletions

View File

@ -157,7 +157,7 @@ void PartExport initPart()
Part::Polygon ::init();
Part::Circle ::init();
Part::Vertex ::init();
Part::Edge ::init();
Part::Line ::init();
Part::Ellipsoid ::init();
Part::Plane ::init();
Part::Sphere ::init();

View File

@ -163,9 +163,9 @@ void Vertex::onChanged(const App::Property* prop)
Part::Feature::onChanged(prop);
}
PROPERTY_SOURCE(Part::Edge, Part::Primitive)
PROPERTY_SOURCE(Part::Line, Part::Primitive)
Edge::Edge()
Line::Line()
{
ADD_PROPERTY_TYPE(X1,(0.0f),"Vertex 1 - Start",App::Prop_None,"X value of the start vertex");
ADD_PROPERTY_TYPE(Y1,(0.0f),"Vertex 1 - Start",App::Prop_None,"Y value of the Start vertex");
@ -175,11 +175,11 @@ Edge::Edge()
ADD_PROPERTY_TYPE(Z2,(1.0f),"Vertex 2 - Finish",App::Prop_None,"Z value of the finish vertex");
}
Edge::~Edge()
Line::~Line()
{
}
short Edge::mustExecute() const
short Line::mustExecute() const
{
if (X1.isTouched() ||
Y1.isTouched() ||
@ -191,7 +191,7 @@ short Edge::mustExecute() const
return Part::Feature::mustExecute();
}
App::DocumentObjectExecReturn *Edge::execute(void)
App::DocumentObjectExecReturn *Line::execute(void)
{
gp_Pnt point1;
point1.SetX(this->X1.getValue());
@ -212,7 +212,7 @@ App::DocumentObjectExecReturn *Edge::execute(void)
return App::DocumentObject::StdReturn;
}
void Edge::onChanged(const App::Property* prop)
void Line::onChanged(const App::Property* prop)
{
if (!isRestoring()) {
if (prop == &X1 || prop == &Y1 || prop == &Z1 || prop == &X2 || prop == &Y2 || prop == &Z2){

View File

@ -70,13 +70,13 @@ public:
//@}
};
class PartExport Edge : public Part::Primitive
class PartExport Line : public Part::Primitive
{
PROPERTY_HEADER(Part::Edge);
PROPERTY_HEADER(Part::Line);
public:
Edge();
virtual ~Edge();
Line();
virtual ~Line();
App::PropertyFloat X1;
App::PropertyFloat Y1;

View File

@ -114,7 +114,7 @@ DlgPrimitives::DlgPrimitives(QWidget* parent)
ui.vertexX->setMinimum(INT_MIN);
ui.vertexY->setMinimum(INT_MIN);
ui.vertexZ->setMinimum(INT_MIN);
// edge
// line
ui.edgeX1->setMaximum(INT_MAX);
ui.edgeX1->setMinimum(INT_MIN);
ui.edgeY1->setMaximum(INT_MAX);
@ -326,10 +326,10 @@ void DlgPrimitives::createPrimitive(const QString& placement)
.arg(ui.vertexZ->value(),0,'f',2)
.arg(placement);
}
else if (ui.comboBox1->currentIndex() == 11) { // edge
name = QString::fromAscii(doc->getUniqueObjectName("Edge").c_str());
else if (ui.comboBox1->currentIndex() == 11) { // line
name = QString::fromAscii(doc->getUniqueObjectName("Line").c_str());
cmd = QString::fromAscii(
"App.ActiveDocument.addObject(\"Part::Edge\",\"%1\")\n"
"App.ActiveDocument.addObject(\"Part::Line\",\"%1\")\n"
"App.ActiveDocument.%1.X1=%2\n"
"App.ActiveDocument.%1.Y1=%3\n"
"App.ActiveDocument.%1.Z1=%4\n"
@ -506,6 +506,7 @@ TaskPrimitives::TaskPrimitives()
location = new Location();
taskbox = new Gui::TaskView::TaskBox(QPixmap(), location->windowTitle(),true, 0);
taskbox->groupLayout()->addWidget(location);
taskbox->hideGroupBox();
Content.push_back(taskbox);
}

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>258</width>
<height>331</height>
<width>285</width>
<height>370</height>
</rect>
</property>
<property name="windowTitle">
@ -86,12 +86,12 @@
</item>
<item>
<property name="text">
<string>Vertex</string>
<string>Point</string>
</property>
</item>
<item>
<property name="text">
<string>Edge</string>
<string>Line</string>
</property>
</item>
</widget>
@ -953,134 +953,179 @@
</layout>
</widget>
<widget class="QWidget" name="page7_wedge">
<layout class="QGridLayout" name="gridLayout_2">
<layout class="QGridLayout" name="gridLayout_8">
<item row="0" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>X min</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="wedgeXmin"/>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_15">
<property name="text">
<string>x max</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QDoubleSpinBox" name="wedgeXmax">
<property name="value">
<double>10.000000000000000</double>
</property>
</widget>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>X min/max:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="wedgeXmin">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QDoubleSpinBox" name="wedgeXmax">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="value">
<double>10.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Y min/max:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="wedgeYmin">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QDoubleSpinBox" name="wedgeYmax">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="value">
<double>10.000000000000000</double>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Z min/max:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="wedgeZmin">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QDoubleSpinBox" name="wedgeZmax">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="value">
<double>10.000000000000000</double>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>X2 min/max:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QDoubleSpinBox" name="wedgeX2min">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="value">
<double>2.000000000000000</double>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QDoubleSpinBox" name="wedgeX2max">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="value">
<double>8.000000000000000</double>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Z2 min/max:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QDoubleSpinBox" name="wedgeZ2min">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="value">
<double>2.000000000000000</double>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QDoubleSpinBox" name="wedgeZ2max">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="value">
<double>8.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Y min</string>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="wedgeYmin"/>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_16">
<property name="text">
<string>Y max</string>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>81</height>
</size>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QDoubleSpinBox" name="wedgeYmax">
<property name="value">
<double>10.000000000000000</double>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Z min</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="wedgeZmin"/>
</item>
<item row="2" column="2">
<widget class="QLabel" name="label_17">
<property name="text">
<string>Z max</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QDoubleSpinBox" name="wedgeZmax">
<property name="value">
<double>10.000000000000000</double>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>X2 min</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QDoubleSpinBox" name="wedgeX2min">
<property name="value">
<double>2.000000000000000</double>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLabel" name="label_18">
<property name="text">
<string>X2 max</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QDoubleSpinBox" name="wedgeX2max">
<property name="value">
<double>8.000000000000000</double>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Z2 min</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QDoubleSpinBox" name="wedgeZ2min">
<property name="value">
<double>2.000000000000000</double>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QLabel" name="label_19">
<property name="text">
<string>Z2 max</string>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QDoubleSpinBox" name="wedgeZ2max">
<property name="value">
<double>8.000000000000000</double>
</property>
</widget>
</spacer>
</item>
</layout>
</widget>
@ -1167,7 +1212,7 @@
<item row="3" column="0">
<widget class="QLabel" name="label_20">
<property name="text">
<string>Angle - 0 for cyl</string>
<string>Angle:</string>
</property>
</widget>
</item>
@ -1221,7 +1266,7 @@
<item row="1" column="0">
<widget class="QLabel" name="Angle0">
<property name="text">
<string>Angle0</string>
<string>Angle 1:</string>
</property>
</widget>
</item>
@ -1238,7 +1283,7 @@
<item row="2" column="0">
<widget class="QLabel" name="Angle1">
<property name="text">
<string>Angle1</string>
<string>Angle 2:</string>
</property>
</widget>
</item>
@ -1276,57 +1321,64 @@
</layout>
</widget>
<widget class="QWidget" name="page10_vertex">
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>201</width>
<height>76</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="vertexX"/>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="vertexY"/>
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="vertexZ"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_X_Axis">
<property name="text">
<string>X Value:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_Y_Axis">
<property name="text">
<string>Y Value:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_Z_Axis">
<property name="text">
<string>Z Value:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<layout class="QGridLayout" name="gridLayout_9">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="vertexX"/>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="vertexY"/>
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="vertexZ"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_X_Axis">
<property name="text">
<string>X:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_Y_Axis">
<property name="text">
<string>Y:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_Z_Axis">
<property name="text">
<string>Z:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>139</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="page11_edge">
<layout class="QGridLayout" name="gridLayout_6">
@ -1335,30 +1387,30 @@
<item row="1" column="0">
<widget class="QLabel" name="X1">
<property name="text">
<string>X</string>
<string>X:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="Y1">
<property name="text">
<string>Y</string>
<string>Y:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="Z1">
<property name="text">
<string>Z</string>
<string>Z:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
@ -1372,7 +1424,7 @@
<item row="5" column="0">
<widget class="QLabel" name="Finish_Vertex">
<property name="text">
<string>Finish Vertex</string>
<string>End point</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
@ -1382,37 +1434,37 @@
<item row="0" column="0">
<widget class="QLabel" name="Start_Vertex">
<property name="text">
<string>Start Vertex</string>
<string>Start point</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="X2">
<property name="text">
<string>X</string>
<string>X:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="Y2">
<property name="text">
<string>Y</string>
<string>Y:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="Z2">
<property name="text">
<string>Z</string>
<string>Z:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
@ -1463,6 +1515,19 @@
</item>
</layout>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>