Example #1
0
QJsonObject SymbolBehavior::toJson() const
{
    QJsonObject json(ItemBehavior::toJson());

    int symbolType = data(LP::SymbolType).toInt();
    if (symbolType != LP::NoSymbolType) {
        json.insert(DataKey::SymbolType, symbolType);
    }
    json.insert(DataKey::Instrument, data(LP::SymbolInstrument).toInt());
    json.insert(DataKey::SymbolName, data(LP::SymbolName).toString());
    if (hasOption(HasLength)) {
        Length::Value length = data(LP::SymbolLength).value<Length::Value>();
        json.insert(DataKey::Lenght, static_cast<int>(length));
    }
    if (hasOption(HasPitch)) {
        Pitch pitch = data(LP::SymbolPitch).value<Pitch>();
        json.insert(DataKey::Pitch, pitch.toJson());
    }
    SpanType spanType = data(LP::SymbolSpanType).value<SpanType>();

    if (spanType != SpanType::None) {
        json.insert(DataKey::SymbolSpanType, static_cast<int>(spanType));
    }

    return json;
}