DragonBonesData * JSONDataParser::parseDragonBonesData(const char* rawData, float scale) { if (rawData) { rapidjson::Document document; document.Parse(rawData); std::string version = _getString(document, VERSION, ""); this->_isParentCooriinate = version == DATA_VERSION_2_3 || version == DATA_VERSION_3_0; this->_armatureScale = scale; if (version == DATA_VERSION || version == DATA_VERSION_4_0 || this->_isParentCooriinate) { const auto data = BaseObject::borrowObject<DragonBonesData>(); data->name = _getString(document, NAME, ""); data->frameRate = _getNumber(document, FRAME_RATE, (unsigned)24); if (document.HasMember(ARMATURE)) { this->_data = data; for (const auto& armatureObject : document[ARMATURE].GetArray()) { data->addArmature(_parseArmature(armatureObject)); } this->_data = nullptr; } return data; } else { DRAGONBONES_ASSERT(false, "Nonsupport data version."); } } else { DRAGONBONES_ASSERT(false, "Argument error."); } return nullptr; }
/*! slot for opening the contextmenu */ void Item_node::contextmenu(const QPoint& point){ context = this; if(!menuinit){ DQMENU(Item_node, menu); menu->addAction( QIcon(":/images/xpm/armature.xpm"), QString("Add Armature") , this, SLOT( addArmature())); menu->addSeparator(); menu->addAction( QIcon( ":/images/xpm/importer.xpm"), QString("Import Model"), this, SLOT(importModel()) ); menu->addSeparator(); SCRIPT2MENU(menu); menu->addSeparator(); menu->addAction( QIcon( ":/images/xpm/del.xpm"), QString("Delete") , this, SLOT( deleteLater())); menuinit = true; } menu->popup( point ); }