void PropertyBrowser::applyObjectGroupValue(PropertyId id, const QVariant &val) { ObjectGroup *objectGroup = static_cast<ObjectGroup*>(mObject); QUndoCommand *command = 0; switch (id) { case ColorProperty: { QColor color = val.value<QColor>(); if (color == Qt::gray) color = QColor(); command = new ChangeObjectGroupProperties(mMapDocument, objectGroup, color, objectGroup->drawOrder()); break; } case DrawOrderProperty: { ObjectGroup::DrawOrder drawOrder = static_cast<ObjectGroup::DrawOrder>(val.toInt()); command = new ChangeObjectGroupProperties(mMapDocument, objectGroup, objectGroup->color(), drawOrder); break; } default: break; } if (command) mMapDocument->undoStack()->push(command); }
QVariant MapToVariantConverter::toVariant(const ObjectGroup &objectGroup) const { QVariantMap objectGroupVariant; objectGroupVariant[QLatin1String("type")] = QLatin1String("objectgroup"); if (objectGroup.color().isValid()) objectGroupVariant[QLatin1String("color")] = colorToString(objectGroup.color()); objectGroupVariant[QLatin1String("draworder")] = drawOrderToString(objectGroup.drawOrder()); addLayerAttributes(objectGroupVariant, objectGroup); QVariantList objectVariants; for (const MapObject *object : objectGroup.objects()) objectVariants << toVariant(*object); objectGroupVariant[QLatin1String("objects")] = objectVariants; return objectGroupVariant; }