[TD]fix Print Center Marks #11309
This commit is contained in:
@@ -349,23 +349,6 @@ void QGIViewPart::drawAllVertexes()
|
||||
auto dvp(static_cast<TechDraw::DrawViewPart*>(getViewObject()));
|
||||
auto vp(static_cast<ViewProviderViewPart*>(getViewProvider(getViewObject())));
|
||||
|
||||
bool showVertices = true;
|
||||
bool showCenterMarks = true;
|
||||
if (getFrameState()) {
|
||||
//frames are on
|
||||
if (dvp->CoarseView.getValue()) {
|
||||
// don't show vertexes in CoarseView as there are too many
|
||||
showVertices = false;
|
||||
}
|
||||
} else {
|
||||
//frames are off
|
||||
showVertices = false;
|
||||
}
|
||||
|
||||
if (!vp->ArcCenterMarks.getValue()) {
|
||||
showCenterMarks = false;
|
||||
}
|
||||
|
||||
float lineWidth = vp->LineWidth.getValue() * lineScaleFactor; //thick
|
||||
double vertexScaleFactor = Preferences::getPreferenceGroup("General")->GetFloat("VertexScale", 3.0);
|
||||
QColor vertexColor = PreferencesGui::getAccessibleQColor(PreferencesGui::vertexQColor());
|
||||
@@ -374,7 +357,7 @@ void QGIViewPart::drawAllVertexes()
|
||||
std::vector<TechDraw::VertexPtr>::const_iterator vert = verts.begin();
|
||||
for (int i = 0; vert != verts.end(); ++vert, i++) {
|
||||
if ((*vert)->isCenter()) {
|
||||
if (showCenterMarks) {
|
||||
if (showCenterMarks()) {
|
||||
QGICMark* cmItem = new QGICMark(i);
|
||||
addToGroup(cmItem);
|
||||
cmItem->setPos(Rez::guiX((*vert)->x()), Rez::guiX((*vert)->y()));
|
||||
@@ -385,7 +368,7 @@ void QGIViewPart::drawAllVertexes()
|
||||
}
|
||||
} else {
|
||||
//regular Vertex
|
||||
if (showVertices) {
|
||||
if (showVertices()) {
|
||||
QGIVertex* item = new QGIVertex(i);
|
||||
addToGroup(item);
|
||||
item->setPos(Rez::guiX((*vert)->x()), Rez::guiX((*vert)->y()));
|
||||
@@ -424,6 +407,51 @@ bool QGIViewPart::showThisEdge(BaseGeomPtr geom)
|
||||
return false;
|
||||
}
|
||||
|
||||
// returns true if vertex dots should be shown
|
||||
bool QGIViewPart::showVertices()
|
||||
{
|
||||
// dvp and vp already validated
|
||||
auto dvp(static_cast<TechDraw::DrawViewPart*>(getViewObject()));
|
||||
|
||||
if (dvp->CoarseView.getValue()) {
|
||||
// never show vertices in CoarseView
|
||||
return false;
|
||||
}
|
||||
if (!getFrameState()) {
|
||||
// frames are off, don't show vertices
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// returns true if arc center marks should be shown
|
||||
bool QGIViewPart::showCenterMarks()
|
||||
{
|
||||
// dvp and vp already validated
|
||||
auto dvp(static_cast<TechDraw::DrawViewPart*>(getViewObject()));
|
||||
auto vp(static_cast<ViewProviderViewPart*>(getViewProvider(dvp)));
|
||||
|
||||
if (!vp->ArcCenterMarks.getValue()) {
|
||||
// no center marks if view property is false
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getFrameState()) {
|
||||
// frames are on and view property is true
|
||||
return true;
|
||||
}
|
||||
|
||||
if (prefPrintCenters()) {
|
||||
// frames are off, view property is true and Print Center Marks is true
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool QGIViewPart::formatGeomFromCosmetic(std::string cTag, QGIEdge* item)
|
||||
{
|
||||
// Base::Console().Message("QGIVP::formatGeomFromCosmetic(%s)\n", cTag.c_str());
|
||||
@@ -971,6 +999,8 @@ void QGIViewPart::paint(QPainter* painter, const QStyleOptionGraphicsItem* optio
|
||||
QGIView::paint(painter, &myOption, widget);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//QGIViewPart derived classes do not need a rotate view method as rotation is handled on App side.
|
||||
void QGIViewPart::rotateView() {}
|
||||
|
||||
|
||||
@@ -126,6 +126,9 @@ protected:
|
||||
bool formatGeomFromCosmetic(std::string cTag, QGIEdge* item);
|
||||
bool formatGeomFromCenterLine(std::string cTag, QGIEdge* item);
|
||||
|
||||
bool showCenterMarks();
|
||||
bool showVertices();
|
||||
|
||||
private:
|
||||
QList<QGraphicsItem*> deleteItems;
|
||||
PathBuilder* m_pathBuilder;
|
||||
|
||||
Reference in New Issue
Block a user