porymap/include/ui/connectionpixmapitem.h

50 lines
1.3 KiB
C
Raw Normal View History

2018-09-27 00:30:05 +01:00
#ifndef CONNECTIONPIXMAPITEM_H
#define CONNECTIONPIXMAPITEM_H
#include "mapconnection.h"
#include <QGraphicsPixmapItem>
#include <QPainter>
class ConnectionPixmapItem : public QObject, public QGraphicsPixmapItem {
Q_OBJECT
public:
2024-07-18 18:30:56 +01:00
ConnectionPixmapItem(QPixmap pixmap, MapConnection* connection, int x, int y)
2024-07-24 20:46:20 +01:00
: QGraphicsPixmapItem(pixmap)
{
2018-09-27 00:30:05 +01:00
this->basePixmap = pixmap;
2024-07-24 20:46:20 +01:00
this->connection = connection;
2018-09-27 00:30:05 +01:00
setFlag(ItemIsMovable);
setFlag(ItemSendsGeometryChanges);
this->initialX = x;
this->initialY = y;
2024-08-04 21:08:16 +01:00
this->initialOffset = connection->offset();
2024-07-18 18:30:56 +01:00
this->setX(x);
this->setY(y);
2018-09-27 00:30:05 +01:00
}
QPixmap basePixmap;
2024-07-24 20:46:20 +01:00
MapConnection* connection;
2018-09-27 00:30:05 +01:00
int initialX;
int initialY;
int initialOffset;
2024-07-12 19:05:37 +01:00
void setEditable(bool editable);
bool getEditable();
2024-07-12 19:05:37 +01:00
void setSelected(bool selected);
void render();
2018-09-27 00:30:05 +01:00
private:
2024-07-12 19:05:37 +01:00
bool selected = false;
2018-09-27 00:30:05 +01:00
protected:
QVariant itemChange(GraphicsItemChange change, const QVariant &value);
void mousePressEvent(QGraphicsSceneMouseEvent*);
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*);
signals:
void connectionItemDoubleClicked(ConnectionPixmapItem* connectionItem);
2024-07-08 21:01:30 +01:00
void connectionMoved(MapConnection *, int newOffset);
2024-07-12 19:05:37 +01:00
void selectionChanged(bool selected);
2018-09-27 00:30:05 +01:00
};
#endif // CONNECTIONPIXMAPITEM_H