topItem.addSubProperty(item) item.setAttribute("constraint", QRectF(0, 0, 50, 50)) item.setAttribute("decimals", 3) item = variantManager.addProperty(QtVariantPropertyManager.enumTypeId(), str(i) + " Enum Property") i += 1 enumNames = QList() enumNames.append("Enum0") enumNames.append("Enum1") enumNames.append("Enum2") item.setAttribute("enumNames", enumNames) item.setValue(1) topItem.addSubProperty(item) item = variantManager.addProperty(QtVariantPropertyManager.flagTypeId(), str(i) + " Flag Property") i += 1 flagNames = QList() flagNames.append("Flag0") flagNames.append("Flag1") flagNames.append("Flag2") item.setAttribute("flagNames", flagNames) item.setValue(5) topItem.addSubProperty(item) item = variantManager.addProperty(QVariant.SizePolicy, str(i) + " SizePolicy Property") i += 1 topItem.addSubProperty(item)
def addClassProperties(self, metaObject): if (not metaObject): return self.addClassProperties(metaObject.superClass()) classProperty = self.m_classToProperty.value(metaObject) if (not classProperty): className = metaObject.className() classProperty = self.m_manager.addProperty(QtVariantPropertyManager.groupTypeId(), className) self.m_classToProperty[metaObject] = classProperty self.m_propertyToClass[classProperty] = metaObject for idx in range(metaObject.propertyOffset(), metaObject.propertyCount(), 1): metaProperty = metaObject.property(idx) type = metaProperty.userType() subProperty = 0 if (not metaProperty.isReadable()): subProperty = self.m_readOnlyManager.addProperty(QVariant.String, metaProperty.name()) subProperty.setValue("< Non Readable >") elif (metaProperty.isEnumType()): if (metaProperty.isFlagType()): subProperty = self.m_manager.addProperty(QtVariantPropertyManager.flagTypeId(), metaProperty.name()) metaEnum = metaProperty.enumerator() valueMap = QMap() flagNames = QList() for i in range(metaEnum.keyCount()): value = metaEnum.value(i) if (not valueMap.contains(value) and self.isPowerOf2(value)): valueMap[value] = True flagNames.append(metaEnum.key(i)) subProperty.setAttribute("flagNames", flagNames) subProperty.setValue(self.flagToInt(metaEnum, metaProperty.read(self.m_object))) else: subProperty = self.m_manager.addProperty(QtVariantPropertyManager.enumTypeId(), metaProperty.name()) metaEnum = metaProperty.enumerator() valueMap = QMap() # dont show multiple enum values which have the same values enumNames = QList() for i in range(metaEnum.keyCount()): value = metaEnum.value(i) if (not valueMap.contains(value)): valueMap[value] = True enumNames.append(metaEnum.key(i)) subProperty.setAttribute("enumNames", enumNames) subProperty.setValue(self.enumToInt(metaEnum, metaProperty.read(self.m_object))) elif (self.m_manager.isPropertyTypeSupported(type)): if (not metaProperty.isWritable()): subProperty = self.m_readOnlyManager.addProperty(type, metaProperty.name() + " (Non Writable)") if (not metaProperty.isDesignable()): subProperty = self.m_readOnlyManager.addProperty(type, metaProperty.name() + " (Non Designable)") else: subProperty = self.m_manager.addProperty(type, metaProperty.name()) subProperty.setValue(metaProperty.read(self.m_object)) else: subProperty = self.m_readOnlyManager.addProperty(QVariant.String, metaProperty.name()) subProperty.setValue("< Unknown Type >") subProperty.setEnabled(False) classProperty.addSubProperty(subProperty) self.m_propertyToIndex[subProperty] = idx self.m_classToIndexToProperty[metaObject][idx] = subProperty else: self.updateClassProperties(metaObject, False) self.m_topLevelProperties.append(classProperty) self.m_browser.addProperty(classProperty)
def addClassProperties(self, metaObject): if (not metaObject): return self.addClassProperties(metaObject.superClass()) classProperty = self.m_classToProperty.value(metaObject) if (not classProperty): className = metaObject.className() classProperty = self.m_manager.addProperty( QtVariantPropertyManager.groupTypeId(), className) self.m_classToProperty[metaObject] = classProperty self.m_propertyToClass[classProperty] = metaObject for idx in range(metaObject.propertyOffset(), metaObject.propertyCount(), 1): metaProperty = metaObject.property(idx) type = metaProperty.userType() subProperty = 0 if (not metaProperty.isReadable()): subProperty = self.m_readOnlyManager.addProperty( QVariant.String, metaProperty.name()) subProperty.setValue("< Non Readable >") elif (metaProperty.isEnumType()): if (metaProperty.isFlagType()): subProperty = self.m_manager.addProperty( QtVariantPropertyManager.flagTypeId(), metaProperty.name()) metaEnum = metaProperty.enumerator() valueMap = QMap() flagNames = QList() for i in range(metaEnum.keyCount()): value = metaEnum.value(i) if (not valueMap.contains(value) and self.isPowerOf2(value)): valueMap[value] = True flagNames.append(metaEnum.key(i)) subProperty.setAttribute("flagNames", flagNames) subProperty.setValue( self.flagToInt(metaEnum, metaProperty.read(self.m_object))) else: subProperty = self.m_manager.addProperty( QtVariantPropertyManager.enumTypeId(), metaProperty.name()) metaEnum = metaProperty.enumerator() valueMap = QMap( ) # dont show multiple enum values which have the same values enumNames = QList() for i in range(metaEnum.keyCount()): value = metaEnum.value(i) if (not valueMap.contains(value)): valueMap[value] = True enumNames.append(metaEnum.key(i)) subProperty.setAttribute("enumNames", enumNames) subProperty.setValue( self.enumToInt(metaEnum, metaProperty.read(self.m_object))) elif (self.m_manager.isPropertyTypeSupported(type)): if (not metaProperty.isWritable()): subProperty = self.m_readOnlyManager.addProperty( type, metaProperty.name() + " (Non Writable)") if (not metaProperty.isDesignable()): subProperty = self.m_readOnlyManager.addProperty( type, metaProperty.name() + " (Non Designable)") else: subProperty = self.m_manager.addProperty( type, metaProperty.name()) subProperty.setValue(metaProperty.read(self.m_object)) else: subProperty = self.m_readOnlyManager.addProperty( QVariant.String, metaProperty.name()) subProperty.setValue("< Unknown Type >") subProperty.setEnabled(False) classProperty.addSubProperty(subProperty) self.m_propertyToIndex[subProperty] = idx self.m_classToIndexToProperty[metaObject][idx] = subProperty else: self.updateClassProperties(metaObject, False) self.m_topLevelProperties.append(classProperty) self.m_browser.addProperty(classProperty)
item.setValue(QRectF(1.2345, 1.2345, 1.2345, 1.2345)) topItem.addSubProperty(item) item.setAttribute("constraint", QRectF(0, 0, 50, 50)) item.setAttribute("decimals", 3) item = variantManager.addProperty(QtVariantPropertyManager.enumTypeId(), str(i) + " Enum Property") i += 1 enumNames = QList() enumNames.append("Enum0") enumNames.append("Enum1") enumNames.append("Enum2") item.setAttribute("enumNames", enumNames) item.setValue(1) topItem.addSubProperty(item) item = variantManager.addProperty(QtVariantPropertyManager.flagTypeId(), str(i) + " Flag Property") i += 1 flagNames = QList() flagNames.append("Flag0") flagNames.append("Flag1") flagNames.append("Flag2") item.setAttribute("flagNames", flagNames) item.setValue(5) topItem.addSubProperty(item) item = variantManager.addProperty(QVariant.SizePolicy, str(i) + " SizePolicy Property") i += 1 topItem.addSubProperty(item) item = variantManager.addProperty(QVariant.Font, str(i) + " Font Property") i += 1