void RExporter::setEntityAttributes() { REntity* currentEntity = getEntity(); if (currentEntity == NULL) { return; } setColor(currentEntity->getColor(true, blockRefStack)); setLineweight(currentEntity->getLineweight(true, blockRefStack)); setLinetypeId(currentEntity->getLinetypeId(true, blockRefStack)); setStyle(Qt::SolidLine); setBrushStyle(Qt::SolidPattern); }
void RExporter::setEntityAttributes(bool forceSelected) { REntity* currentEntity = getEntity(); if (currentEntity == NULL) { return; } if (forceSelected || currentEntity->isSelected()) { setColor(RSettings::getSelectionColor()); } else { setColor(currentEntity->getColor(true, blockRefStack)); } setLineweight(currentEntity->getLineweight(true, blockRefStack)); setLinetypeId(currentEntity->getLinetypeId(true, blockRefStack)); setStyle(Qt::SolidLine); setBrushStyle(Qt::SolidPattern); }
/** * Starts a new painter path to export geometry into. * \return True if a path has been created, false if there is already a * valid path. */ bool RGraphicsSceneQt::beginPath() { if (!exportToPreview) { Q_ASSERT(getEntity() != NULL); } if (currentPainterPath.isValid()) { return false; } currentPainterPath = RPainterPath(); currentPainterPath.setZLevel(0); if (screenBasedLinetypes && currentPen.style()==Qt::SolidLine) { QVector<qreal> pat = currentLinetypePattern.getScreenBasedLinetype(); if (!pat.isEmpty()) { currentPen.setDashPattern(pat); } } REntity* entity = getEntity(); if (draftMode || screenBasedLinetypes || twoColorSelectedMode) { QPen localPen = currentPen; if (twoColorSelectedMode) { // fixed width for selected entities in two color selected mode: localPen.setCosmetic(true); localPen.setWidth(3); } else { if (draftMode) { localPen.setWidth(0); } else { // screen based line weights: localPen.setCosmetic(true); // magic number 4.25 to scale approximately, so 1mm width is 1mm on screen: localPen.setWidth(currentPen.widthF()*4.25); } } currentPainterPath.setPen(localPen); } else { if (entity!=NULL && entity->getCustomProperty("QCAD", "ScreenWeight", false)==true) { QPen localPen = currentPen; localPen.setCosmetic(true); localPen.setWidthF(entity->getLineweight()/10); currentPainterPath.setPen(localPen); } else { currentPainterPath.setPen(currentPen); } } currentPainterPath.setBrush(QBrush(Qt::NoBrush)); currentPainterPath.setPixelSizeHint(pixelSizeHint); if (!exportToPreview) { if (entity!=NULL && entity->isSelected()) { currentPainterPath.setSelected(true); } } else { if (entity!=NULL && entity->getCustomProperty("QCADCAM", "simulation", false)==true) { currentPainterPath.setHighlighted(true); } } return true; }