[TD]fix vertex display in manual frame mode

This commit is contained in:
wandererfan
2026-01-15 20:20:39 -05:00
committed by Max Wilfinger
parent 98c042a587
commit 396d8c503d
3 changed files with 18 additions and 9 deletions

View File

@@ -120,12 +120,9 @@ void CmdTechDrawToggleFrame::activated(int iMsg)
bool CmdTechDrawToggleFrame::isActive()
{
if (PreferencesGui::getViewFrameMode() != ViewFrameMode::Manual) {
return false;
}
auto mvp = dynamic_cast<MDIViewPage *>(Gui::getMainWindow()->activeWindow());
return mvp != nullptr;
bool havePage = DrawGuiUtil::needPage(this);
bool haveView = DrawGuiUtil::needView(this);
return (havePage && haveView && PreferencesGui::getViewFrameMode() == ViewFrameMode::Manual);
}
//===========================================================================

View File

@@ -447,7 +447,9 @@ void MDIViewPage::contextMenuEvent(QContextMenuEvent* event)
menu.addAction(m_exportDXFAction);
menu.addAction(m_exportPDFAction);
menu.addAction(m_printAllAction);
if (PreferencesGui::getViewFrameMode() != ViewFrameMode::Manual) {
if (PreferencesGui::getViewFrameMode() == ViewFrameMode::Manual) {
m_toggleFrameAction->setEnabled(true);
} else {
m_toggleFrameAction->setEnabled(false);
}
menu.exec(event->globalPos());

View File

@@ -470,6 +470,7 @@ void QGIViewPart::drawAllVertexes()
// dvp and vp already validated
auto dvp(static_cast<TechDraw::DrawViewPart*>(getViewObject()));
auto vp(static_cast<ViewProviderViewPart*>(getViewProvider(getViewObject())));
ViewProviderPage* vpPage = vp->getViewProviderPage();
QColor vertexColor = PreferencesGui::getAccessibleQColor(PreferencesGui::vertexQColor());
const std::vector<TechDraw::VertexPtr>& verts = dvp->getVertexGeometry();
@@ -485,7 +486,8 @@ void QGIViewPart::drawAllVertexes()
cmItem->setZValue(ZVALUE::VERTEX);
bool showMark =
( (!isExporting() && vp->ArcCenterMarks.getValue()) ||
(isExporting() && Preferences::printCenterMarks()) );
(isExporting() && Preferences::printCenterMarks()) ||
(vpPage->getFrameState() && PreferencesGui::getViewFrameMode() == ViewFrameMode::Manual));
cmItem->setVisible(showMark);
} else {
//regular Vertex
@@ -498,7 +500,8 @@ void QGIViewPart::drawAllVertexes()
item->setRadius(getVertexSize());
item->setPrettyNormal();
item->setZValue(ZVALUE::VERTEX);
item->setVisible(m_isHovered || isSelected());
item->setVisible(m_isHovered || isSelected() ||
(vpPage->getFrameState() && PreferencesGui::getViewFrameMode() == ViewFrameMode::Manual));
}
}
}
@@ -1353,6 +1356,13 @@ void QGIViewPart::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
return;
}
auto vp(static_cast<ViewProviderViewPart*>(getViewProvider(getViewObject())));
ViewProviderPage* vpPage = vp->getViewProviderPage();
if (vpPage->getFrameState() &&
PreferencesGui::getViewFrameMode() == ViewFrameMode::Manual) {
return;
}
bool hideCenters = hideCenterMarks();
for (auto& child : childItems()) {