コード例 #1
0
ファイル: tilestamp.cpp プロジェクト: bjorn/tiled
TileStamp TileStamp::fromJson(const QJsonObject &json, const QDir &mapDir)
{
    TileStamp stamp;

    stamp.setName(json.value(QLatin1String("name")).toString());
    stamp.setQuickStampIndex(static_cast<int>(json.value(QLatin1String("quickStampIndex")).toDouble(-1)));

    const QJsonArray variations = json.value(QLatin1String("variations")).toArray();
    for (const QJsonValue value : variations) {
        QJsonObject variationJson = value.toObject();

        QVariant mapVariant = variationJson.value(QLatin1String("map")).toVariant();
        VariantToMapConverter converter;
        auto map = converter.toMap(mapVariant, mapDir);
        if (!map) {
            qDebug() << "Failed to load map for stamp:" << converter.errorString();
            continue;
        }

        qreal probability = variationJson.value(QLatin1String("probability")).toDouble(1);

        stamp.addVariation(std::move(map), probability);
    }

    return stamp;
}
コード例 #2
0
ファイル: tilestampmanager.cpp プロジェクト: nonchip/tiled
void TileStampManager::setQuickStamp(int index, TileStamp stamp)
{
    stamp.setName(tr("Quickstamp %1").arg(index + 1));
    stamp.setQuickStampIndex(index);

    // make sure existing quickstamp is removed from stamp model
    eraseQuickStamp(index);

    mTileStampModel->addStamp(stamp);

    mQuickStamps[index] = stamp;
}