X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdvdwizardmenu.h;h=d5daa98964c699b99d8c08a06b92e6db63cfa4da;hb=56aee6aedeeed3efd10ada8fe3c229eddc01ef05;hp=85eea94adadc770b54b0fbfa478baf94c9139bf8;hpb=bd2c5c0474efd44d4986a8a92e57f7a5b6d972ba;p=kdenlive diff --git a/src/dvdwizardmenu.h b/src/dvdwizardmenu.h index 85eea94a..d5daa989 100644 --- a/src/dvdwizardmenu.h +++ b/src/dvdwizardmenu.h @@ -40,7 +40,7 @@ class DvdScene : public QGraphicsScene { - + Q_OBJECT public: DvdScene(QObject * parent = 0): QGraphicsScene(parent) { m_width = 0; m_height = 0; @@ -59,6 +59,14 @@ public: private: int m_width; int m_height; + +protected: + void mouseReleaseEvent( QGraphicsSceneMouseEvent * mouseEvent ) { + QGraphicsScene::mouseReleaseEvent(mouseEvent); + emit sceneChanged(); + } +signals: + void sceneChanged(); }; class DvdButtonUnderline : public QGraphicsRectItem @@ -83,7 +91,7 @@ public: setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); #endif } - void setTarget(int t, QString c) { + void setTarget(int t, const QString &c) { m_target = t; m_command = c; } @@ -113,20 +121,23 @@ protected: 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)); - 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()); + 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()); sceneShape.translate(newPos - pos()); QList list = scene()->items(sceneShape, Qt::IntersectsItemShape); list.removeAll(this); if (!list.isEmpty()) { - for (int i = 0; i < list.count(); i++) { - if (list.at(i)->type() == Type) return pos(); + for (int i = 0; i < list.count(); ++i) { + if (list.at(i)->type() == Type) + return pos(); } } return newPos; @@ -148,7 +159,7 @@ public: bool createMenu() const; void createBackgroundImage(const QString &img1, bool letterbox); void createButtonImages(const QString &selected_image, const QString &highlighted_image, bool letterbox); - void setTargets(QStringList list, QStringList targetlist); + void setTargets(const QStringList &list, const QStringList &targetlist); QMap buttonsInfo(bool letterbox = false); bool loopMovie() const; bool menuMovie() const; @@ -156,7 +167,7 @@ public: int menuMovieLength() const; void changeProfile(DVDFORMAT format); QDomElement toXml() const; - void loadXml(DVDFORMAT format, QDomElement xml); + void loadXml(DVDFORMAT format, const QDomElement &xml); void prepareUnderLines(); void resetUnderLines(); @@ -187,7 +198,7 @@ private slots: void setButtonTarget(int ix); void deleteButton(); void updateColor(); - void updateColor(QColor c); + void updateColor(const QColor &c); void updateUnderlineColor(QColor c); void setBackToMenu(bool backToMenu); void slotZoom();