QPair<QVariant, RPropertyAttributes> RDocumentVariables::getProperty(RPropertyTypeId& propertyTypeId, bool humanReadable, bool noAttributes) { if (propertyTypeId == PropertyCurrentLayerId) { return qMakePair(QVariant(currentLayerId), RPropertyAttributes()); } if (propertyTypeId == PropertyUnit) { return qMakePair(QVariant(unit), RPropertyAttributes()); } if (propertyTypeId == PropertyLinetypeScale) { return qMakePair(QVariant(linetypeScale), RPropertyAttributes()); } if (propertyTypeId == PropertyDimensionFont) { return qMakePair(QVariant(dimensionFont), RPropertyAttributes()); } if (propertyTypeId.isCustom()) { QString appId = propertyTypeId.getCustomPropertyTitle(); QString name = propertyTypeId.getCustomPropertyName(); RS::KnownVariable v = RDxfServices::stringToVariable(name); if (appId=="QCAD" && v!=RS::INVALID) { return qMakePair(getKnownVariable(v), RPropertyAttributes(RPropertyAttributes::KnownVariable)); } } return RObject::getProperty(propertyTypeId, humanReadable, noAttributes); }
void RDocumentVariables::print(QDebug dbg) const { dbg.nospace() << "RDocumentVariables("; RObject::print(dbg); dbg.nospace() << "\nunit: " << getUnit() << "\ncurrentLayerId: " << getCurrentLayerId() << "\npoint mode: " << getKnownVariable(RS::PDMODE) << "\ndimension font: " << getDimensionFont() << ")"; }
QVariant RDocumentVariables::getKnownVariable(RS::KnownVariable key) const { if (key==RS::INSUNITS) { return getUnit(); } if (key==RS::LTSCALE) { return getLinetypeScale(); } // if DIMADEC is -1, DIMDEC is used: if (key==RS::DIMADEC && hasKnownVariable(RS::DIMDEC) && getKnownVariable(RS::DIMDEC).toInt()==-1) { return getKnownVariable(RS::DIMDEC); } if (key==RS::DWGCODEPAGE) { return QVariant("ANSI_1252"); } return knownVariables.value(key); }
QVariant RMemoryStorage::getKnownVariable(RS::KnownVariable key) const { if (key==RS::INSUNITS) { return getUnit(); } else if (key==RS::LTSCALE) { return getLinetypeScale(); } // if DIMADEC is -1, DIMDEC is used: else if (key==RS::DIMADEC && knownVariables.contains(RS::DIMDEC) && knownVariables.value(RS::DIMDEC).toInt()==-1) { return getKnownVariable(RS::DIMDEC); } else if (key==RS::DWGCODEPAGE) { return "ANSI_1252"; } else { return knownVariables.value(key); } }