3 #include "../model/arenaelementtype.h" 4 #include "../model/arenaelement.h" 5 #include "../model/arenaelementtyperegistry.h" 8 #include <QGraphicsPixmapItem> 9 #include <QGraphicsSceneMouseEvent> 15 : m_registry(registry)
21 QDomNodeList childNodes = arenaElements.childNodes();
23 for (
int i = 0; i < childNodes.count(); i++)
25 QDomElement element = childNodes.at(i).toElement();
26 if (element.tagName() !=
"element")
28 if (element.tagName() !=
"")
29 qWarning() <<
"Warning: Ignored element \"" << element.tagName() <<
"\"";
33 QString elementType = element.attribute(
"type");
36 qDebug() <<
"[Rescue Arena Designer] Error in config.xml: Element of type" << elementType <<
"doesn't seem to exist in your hector_arena_elements package";
40 if (element.hasAttribute(
"rotation"))
42 QString elementRotation = element.attribute(
"rotation");
43 elementInstance->
setRotation(elementRotation.toInt());
46 sceneElement->setPos(0, y);
48 addItem(sceneElement);
51 y += sceneElement->boundingRect().height() + spacing;
57 QGraphicsSceneMouseEvent *_event =
dynamic_cast<QGraphicsSceneMouseEvent*
>(
event);
58 if (event->type() == QEvent::GraphicsSceneMouseMove)
60 QGraphicsItem *item = itemAt(_event->scenePos(), QTransform());
64 Q_ASSERT(sceneElement);
69 return QGraphicsScene::event(event);
void loadConfig(const QDomElement &arenaElements)
bool event(QEvent *event)
ArenaElementTypeScene(ArenaElementTypeRegistry *registry)
void elementHovered(ArenaElement *element)
Emitted when mouse hovers over element.
ArenaElementTypeRegistry * m_registry
void setIsEditorSample(bool isEditorSample)
ArenaElement * element() const
void setRotation(int rotation)
Sets the rotation in degrees.
ArenaElement * instantiateElement(const QString &typeName)
bool hasElement(const QString &typeName)