class DvdScene : public QGraphicsScene
{
-
+Q_OBJECT
public:
DvdScene(QObject * parent = 0): QGraphicsScene(parent) {
m_width = 0; m_height = 0;
private:
int m_width;
int m_height;
+
+protected:
+ void mouseReleaseEvent( QGraphicsSceneMouseEvent * mouseEvent ) {
+ QGraphicsScene::mouseReleaseEvent(mouseEvent);
+ emit sceneChanged();
+ }
+signals:
+ void sceneChanged();
};
class DvdButtonUnderline : public QGraphicsRectItem
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value) {
if (change == ItemPositionChange && scene()) {
- QPointF newPos = value.toPointF();
+ QPoint newPos = value.toPoint();
QRectF sceneShape = sceneBoundingRect();
DvdScene *sc = static_cast < DvdScene * >(scene());
- newPos.setX(qMax(newPos.x(), (qreal)0));
- newPos.setY(qMax(newPos.y(), (qreal)0));
+ newPos.setX(qMax(newPos.x(), 0));
+ newPos.setY(qMax(newPos.y(), 0));
if (newPos.x() + sceneShape.width() > sc->width()) newPos.setX(sc->width() - sceneShape.width());
if (newPos.y() + sceneShape.height() > sc->height()) newPos.setY(sc->height() - sceneShape.height());