X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fonmonitoritems%2Fonmonitorrectitem.h;h=ea7c2fe7206a7026ebb3ff44846d42c0c5e3f6b9;hb=e0a70e0428309070f6ed2716beaeaaba05edd3b5;hp=acdee10cacc25e09edfb30e0d201d24906a2f3e4;hpb=8e04972abe9bd505c8b7b4c521eb2ef918a7e6b5;p=kdenlive diff --git a/src/onmonitoritems/onmonitorrectitem.h b/src/onmonitoritems/onmonitorrectitem.h index acdee10c..ea7c2fe7 100644 --- a/src/onmonitoritems/onmonitorrectitem.h +++ b/src/onmonitoritems/onmonitorrectitem.h @@ -21,41 +21,47 @@ #ifndef ONMONITORRECTITEM_H #define ONMONITORRECTITEM_H -#include "abstractonmonitoritem.h" #include #include +class QGraphicsView; + enum rectActions { Move, ResizeTopLeft, ResizeBottomLeft, ResizeTopRight, ResizeBottomRight, ResizeLeft, ResizeRight, ResizeTop, ResizeBottom, NoAction }; -class OnMonitorRectItem : public AbstractOnMonitorItem, public QGraphicsRectItem +class OnMonitorRectItem : public QObject, public QGraphicsRectItem { Q_OBJECT public: - OnMonitorRectItem(const QRectF &rect, double dar, MonitorScene *scene, QGraphicsItem *parent = 0); + OnMonitorRectItem(const QRectF &rect, double dar, QGraphicsItem *parent = 0); /** @brief Gets The action mode for the area @param pos +- 4. * e.g. pos(0,0) returns ResizeTopLeft */ - rectActions getMode(QPoint pos); - - /*enum { Type = UserType + 1}; - / ** @brief Reimplemented to make sure casting works. * / - int type() const;*/ + rectActions getMode(QPointF pos); /** @brief Reimplemented to draw the handles. */ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0 ); -public slots: - /** @brief Saves current mouse position and mode. */ - void slotMousePressed(QGraphicsSceneMouseEvent *event); - /** @brief Modifies item according to mouse position and mode. */ - void slotMouseMoved(QGraphicsSceneMouseEvent *event); +protected: + virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); + virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); private: double m_dar; rectActions m_mode; QRectF m_oldRect; QPointF m_lastPoint; + bool m_modified; + + QGraphicsView *m_view; + + /** @brief Tries to get the view of the scene. */ + bool getView(); + +signals: + void changed(); }; #endif