| 33 | |
| 34 | |
| 35 | bool SpritePackerProjectFile::read(const QString &fileName) { |
| 36 | QDir dir(QFileInfo(fileName).absolutePath()); |
| 37 | QFile file(fileName); |
| 38 | file.open(QIODevice::ReadOnly); |
| 39 | |
| 40 | QJsonObject json = QJsonDocument::fromJson(file.readAll()).object(); |
| 41 | |
| 42 | if (json.isEmpty()) { |
| 43 | return false; |
| 44 | } |
| 45 | |
| 46 | if (json.contains("algorithm")) _algorithm = json["algorithm"].toString(); |
| 47 | if (json.contains("trimMode")) _trimMode = json["trimMode"].toString(); |
| 48 | if (json.contains("trimThreshold")) _trimThreshold = json["trimThreshold"].toInt(); |
| 49 | if (json.contains("epsilon")) _epsilon = json["epsilon"].toDouble(); |
| 50 | if (json.contains("heuristicMask")) _heuristicMask = json["heuristicMask"].toBool(); |
| 51 | if (json.contains("textureBorder")) _textureBorder = json["textureBorder"].toInt(); |
| 52 | if (json.contains("spriteBorder")) _spriteBorder = json["spriteBorder"].toInt(); |
| 53 | if (json.contains("imageFormat")) _imageFormat = imageFormatFromString(json["imageFormat"].toString()); |
| 54 | if (json.contains("pixelFormat")) _pixelFormat = pixelFormatFromString(json["pixelFormat"].toString()); |
| 55 | if (json.contains("premultiplied")) _premultiplied = json["premultiplied"].toBool(); |
| 56 | if (json.contains("pngOptMode")) _pngOptMode = json["pngOptMode"].toString(); |
| 57 | if (json.contains("pngOptLevel")) _pngOptLevel = json["pngOptLevel"].toInt(); |
| 58 | if (json.contains("webpQuality")) _webpQuality = json["webpQuality"].toInt(); |
| 59 | if (json.contains("jpgQuality")) _jpgQuality = json["jpgQuality"].toInt(); |
| 60 | |
| 61 | _scalingVariants.clear(); |
| 62 | QJsonArray scalingVariants = json["scalingVariants"].toArray(); |
| 63 | for (int i=0; i<scalingVariants.size(); ++i) { |
| 64 | QJsonObject scalingVariantObject = scalingVariants[i].toObject(); |
| 65 | ScalingVariant scalingVariant; |
| 66 | scalingVariant.name = scalingVariantObject["name"].toString(); |
| 67 | scalingVariant.scale = scalingVariantObject["scale"].toDouble(); |
| 68 | scalingVariant.maxTextureSize = scalingVariantObject.contains("maxTextureSize")? scalingVariantObject["maxTextureSize"].toInt() : 2048; |
| 69 | scalingVariant.pow2 = scalingVariantObject.contains("pow2")? scalingVariantObject["pow2"].toBool() : false; |
| 70 | scalingVariant.forceSquared = scalingVariantObject.contains("forceSquared")? scalingVariantObject["forceSquared"].toBool() : false; |
| 71 | |
| 72 | _scalingVariants.push_back(scalingVariant); |
| 73 | } |
| 74 | |
| 75 | if (json.contains("dataFormat")) _dataFormat = json["dataFormat"].toString(); |
| 76 | if (json.contains("destPath")) _destPath = QDir(dir.absoluteFilePath(json["destPath"].toString())).canonicalPath(); |
| 77 | if (json.contains("spriteSheetName")) _spriteSheetName = json["spriteSheetName"].toString(); |
| 78 | |
| 79 | _srcList.clear(); |
| 80 | QJsonArray srcRelative = json["srcList"].toArray(); |
| 81 | for (auto src: srcRelative) { |
| 82 | _srcList.push_back(dir.absoluteFilePath(src.toString())); |
| 83 | } |
| 84 | |
| 85 | if (json.contains("trimSpriteNames")) _trimSpriteNames = json["trimSpriteNames"].toBool(); |
| 86 | if (json.contains("prependSmartFolderName")) _prependSmartFolderName = json["prependSmartFolderName"].toBool(); |
| 87 | |
| 88 | if (json.contains("encryptionKey")) _encryptionKey = json["encryptionKey"].toString(); |
| 89 | |
| 90 | return true; |
| 91 | } |
| 92 |
no test coverage detected