#include <QTableWidget>
#include <QHeaderView>
#include <QTextBrowser>
+#include <QResizeEvent>
#include <BRepBndLib.hxx>
#include <TopoDS_Iterator.hxx>
setWidget(aScrollArea);
// Create an internal widget
- QWidget* aMainWidget = new QWidget(aScrollArea);
+ myMainWidget = new QWidget(aScrollArea);
- QVBoxLayout* aMainLayout = new QVBoxLayout(aMainWidget);
- aMainLayout->setContentsMargins(5, 5, 5, 5);
+ myMainLayout = new QVBoxLayout(myMainWidget);
+ myMainLayout->setContentsMargins(5, 5, 5, 5);
- QWidget* aNameWgt = new QWidget(aMainWidget);
+ QWidget* aNameWgt = new QWidget(myMainWidget);
QHBoxLayout* aNameLayout = new QHBoxLayout(aNameWgt);
aNameLayout->setContentsMargins(0, 0, 0, 0);
aNameLayout->addWidget(new QLabel(tr("Object"), aNameWgt));
myNameEdt->setReadOnly(true);
aNameLayout->addWidget(myNameEdt);
- aMainLayout->addWidget(aNameWgt);
+ myMainLayout->addWidget(aNameWgt);
// Table with sub-shapes
- mySubShapesTab = new QTableWidget(9, 2, aMainWidget);
+ mySubShapesTab = new QTableWidget(9, 2, myMainWidget);
mySubShapesTab->setFocusPolicy(Qt::NoFocus);
mySubShapesTab->verticalHeader()->hide();
QStringList aTitles;
mySubShapesTab->setMaximumWidth(170);
mySubShapesTab->setMinimumHeight(300);
- aMainLayout->addWidget(mySubShapesTab);
+ myMainLayout->addWidget(mySubShapesTab);
// Type of object
- QWidget* aTypeWgt = new QWidget(aMainWidget);
+ QWidget* aTypeWgt = new QWidget(myMainWidget);
QHBoxLayout* aTypeLayout = new QHBoxLayout(aTypeWgt);
aTypeLayout->setContentsMargins(0, 0, 0, 0);
myTypeLbl = new QLabel("", aTypeWgt);
aTypeLayout->addWidget(myTypeLbl);
- aMainLayout->addWidget(aTypeWgt);
+ myMainLayout->addWidget(aTypeWgt);
- myTypeParams = new QTextBrowser(aMainWidget);
- myTypeParams->setMaximumWidth(170);
- myTypeParams->setMaximumHeight(160);
+ myTypeParams = new QTextBrowser(myMainWidget);
+ myTypeParams->setFixedWidth(170);
myTypeParams->setReadOnly(true);
myTypeParams->setFocusPolicy(Qt::NoFocus);
myTypeParams->setFrameStyle(QFrame::NoFrame);
myTypeParams->viewport()->setBackgroundRole(QPalette::Window);
- aMainLayout->addWidget(myTypeParams);
+ myMainLayout->addWidget(myTypeParams, 1);
- aScrollArea->setWidget(aMainWidget);
+ aScrollArea->setWidget(myMainWidget);
connect(mySelectionMgr, SIGNAL(selectionChanged()), SLOT(onSelectionChanged()));
}
mySubShapesTab->item((SudShape)i, 1)->setText("");
}
myTypeLbl->setText("");
- myTypeParams->setText("");
+ setParamsText("");
}
//********************************************************************
setSubShapeValue(ShapeId, aMapOfShape.Extent());
}
catch (Standard_Failure) {
- Handle(Standard_Failure) aFail = Standard_Failure::Caught();
- //SetErrorCode(aFail->GetMessageString());
}
}
QString aParams;
appendPointToParameters(tr("Coordinates"), aPoint, aParams);
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
//********************************************************************
appendPointToParameters(tr("Start point"), aStartPnt, aParams);
appendPointToParameters(tr("End point"), aEndPnt, aParams);
}
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
//********************************************************************
else
myTypeLbl->setText(tr("Wire"));
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
//********************************************************************
appendGroupNameToParameters(tr("Dimensions"), aParams);
appendNamedValueToParameters(tr("Width"), aWidth, aParams);
appendNamedValueToParameters(tr("Height"), aHeight, aParams);
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
isCommonCase = false;
}
QString aParams;
appendPointToParameters(tr("Origin"), thePlane->location(), aParams);
appendDirToParameters(tr("Normal"), thePlane->direction(), aParams);
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
void XGUI_InspectionPanel::setSphereType(const QString& theTitle,
appendPointToParameters(tr("Center"), theSphere->center(), aParams);
appendGroupNameToParameters(tr("Dimensions"), aParams);
appendNamedValueToParameters(tr("Radius"), theSphere->radius(), aParams);
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
void XGUI_InspectionPanel::setCylinderType(const QString& theTitle,
appendGroupNameToParameters(tr("Dimensions"), aParams);
appendNamedValueToParameters(tr("Radius"), theCyl->radius(), aParams);
appendNamedValueToParameters(tr("Height"), theCyl->height(), aParams);
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
void XGUI_InspectionPanel::setConeType(const QString& theTitle,
appendNamedValueToParameters(tr("Radius 1"), theCone->radius1(), aParams);
appendNamedValueToParameters(tr("Radius 2"), theCone->radius2(), aParams);
appendNamedValueToParameters(tr("Height"), theCone->height(), aParams);
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
void XGUI_InspectionPanel::setTorusType(const QString& theTitle,
appendGroupNameToParameters(tr("Dimensions"), aParams);
appendNamedValueToParameters(tr("Major radius"), theTorus->majorRadius(), aParams);
appendNamedValueToParameters(tr("Minor radius"), theTorus->minorRadius(), aParams);
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
void XGUI_InspectionPanel::setBoxType(const QString& theTitle,
appendNamedValueToParameters(tr("Width"), theBox->width(), aParams);
appendNamedValueToParameters(tr("Depth"), theBox->depth(), aParams);
appendNamedValueToParameters(tr("Height"), theBox->height(), aParams);
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
void XGUI_InspectionPanel::setRotatedBoxType(const QString& theTitle,
appendNamedValueToParameters(tr("Width"), theBox->width(), aParams);
appendNamedValueToParameters(tr("Depth"), theBox->depth(), aParams);
appendNamedValueToParameters(tr("Height"), theBox->height(), aParams);
- myTypeParams->setText(aParams);
+ setParamsText(aParams);
}
+
+
+void XGUI_InspectionPanel::setParamsText(const QString& theText)
+{
+ myTypeParams->setText(theText);
+}
+
+void XGUI_InspectionPanel::resizeEvent(QResizeEvent* theEvent)
+{
+ QSize aSize = theEvent->size();
+
+ int aHeight = aSize.height();
+
+ if (aHeight > 450) // 450 is a a minimal height
+ myMainWidget->setFixedHeight(aHeight - 30);
+}
\ No newline at end of file
class QTableWidget;
class QLabel;
class QTextBrowser;
+class QVBoxLayout;
+class QResizeEvent;
class TopoDS_Shape;
/// Internal name of property panel widget
const static char* INSPECTION_PANEL = "inspection_panel_dock";
+/**
+* \ingroup GUI
+* A class which represents an inspection panel: to show content of currently selected objects
+*/
class XGUI_EXPORT XGUI_InspectionPanel : public QDockWidget
{
Q_OBJECT
public:
+ /// Type of selected objects
enum SudShape {
ShapeId,
CompoundId,
/// \param theMgr operation manager
XGUI_InspectionPanel(QWidget* theParent, XGUI_SelectionMgr* theMgr);
+ // Destructor
virtual ~XGUI_InspectionPanel();
+
+protected:
+ /// Vitrual method is redefined in order to adjust size of internal wirdet to size of
+ /// the whole whindow
+ /// \param theEvent an event with resize parameters
+ virtual void resizeEvent(QResizeEvent* theEvent);
+
private slots:
+ /// A slot to react on selection changed
void onSelectionChanged();
private:
+ /// Set counts of a sub-shapes
+ /// \param theId an id of sub-shape type
+ /// \param theVal a number of sub-shapes of corresponded type
void setSubShapeValue(SudShape theId, int theVal);
+ /// Set name of current selection
+ /// \param theName the name
void setName(const QString& theName);
+ /// Set content of selected shape into table
+ /// \param theShape the shape
void setShapeContent(const TopoDS_Shape& theShape);
+ /// Set parameters of the selected shape
+ /// \param theShape the shape
void setShapeParams(const TopoDS_Shape& theShape);
+ /// Clear content of the window
void clearContent();
-
+ /// Show parameters of a vertex
+ /// \param theVertex the vertex
void fillVertex(const std::shared_ptr<GeomAPI_Vertex>& theVertex);
+ /// Show parameters of a edge
+ /// \param theEdge the edge
void fillEdge(const std::shared_ptr<GeomAPI_Edge>& theEdge);
+ /// Show parameters of a wire
+ /// \param theWire the wire
void fillWire(const std::shared_ptr<GeomAPI_Wire>& theWire);
+ /// Show parameters of a face
+ /// \param theFace the face
void fillFace(const std::shared_ptr<GeomAPI_Face>& theFace);
+ /// Show parameters of a shell
+ /// \param theShell the shell
void fillShell(const std::shared_ptr<GeomAPI_Shell>& theShell);
+ /// Show parameters of a solid
+ /// \param theSolid the solid
void fillSolid(const std::shared_ptr<GeomAPI_Solid>& theSolid);
+ /// Show parameters of a compound
+ /// \param theShape the compound
void fillContainer(const std::shared_ptr<GeomAPI_Shape>& theShape);
-
+ /// Show parameters of a plane
+ /// \param theTitle a title of the object
+ /// \param thePlane the plane
void setPlaneType(const QString& theTitle, const std::shared_ptr<GeomAPI_Pln>& thePlane);
+ /// Show parameters of a sphere
+ /// \param theTitle a title of the object
+ /// \param theSphere the sphere
void setSphereType(const QString& theTitle, const std::shared_ptr<GeomAPI_Sphere>& theSphere);
+ /// Show parameters of a cylinder
+ /// \param theTitle a title of the object
+ /// \param theCyl the cylinder
void setCylinderType(const QString& theTitle, const std::shared_ptr<GeomAPI_Cylinder>& theCyl);
+ /// Show parameters of a cone
+ /// \param theTitle a title of the object
+ /// \param theCone the cone
void setConeType(const QString& theTitle, const std::shared_ptr<GeomAPI_Cone>& theCone);
+ /// Show parameters of a torus
+ /// \param theTitle a title of the object
+ /// \param theTorus the torus
void setTorusType(const QString& theTitle, const std::shared_ptr<GeomAPI_Torus>& theTorus);
+ /// Show parameters of a box
+ /// \param theTitle a title of the object
+ /// \param theBox the box
void setBoxType(const QString& theTitle, const std::shared_ptr<GeomAPI_Box>& theBox);
+ /// Show parameters of a rotated box
+ /// \param theTitle a title of the object
+ /// \param theBox the box
void setRotatedBoxType(const QString& theTitle, const std::shared_ptr<GeomAPI_Box>& theBox);
-private:
- XGUI_SelectionMgr* mySelectionMgr;
- QLineEdit* myNameEdt;
- QTableWidget* mySubShapesTab;
- QLabel* myTypeLbl;
- QTextBrowser* myTypeParams;
+ /// Set text into parameters area
+ /// \param theText the text
+ void setParamsText(const QString& theText);
+
+private:
+ XGUI_SelectionMgr* mySelectionMgr; //> selection manager
+
+ QLineEdit* myNameEdt; //> Name field
+ QTableWidget* mySubShapesTab; //> table of sub-shapes
+ QLabel* myTypeLbl; //> label of a type
+ QTextBrowser* myTypeParams; //> parameters area
+ QVBoxLayout* myMainLayout; //> main layout
+ QWidget* myMainWidget; //> main widget
};
#endif
\ No newline at end of file