예제 #1
0
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);
}
예제 #2
0
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()
        << ")";
}
예제 #3
0
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);
}
예제 #4
0
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);
    }
}