X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fonmonitoritems%2Fonmonitorrectitem.h;h=6530495fa10acd4d716aabb7157c4838a390cd63;hb=8fd72a344483e436b396a1c288221a6e2f311dde;hp=acdee10cacc25e09edfb30e0d201d24906a2f3e4;hpb=8e04972abe9bd505c8b7b4c521eb2ef918a7e6b5;p=kdenlive diff --git a/src/onmonitoritems/onmonitorrectitem.h b/src/onmonitoritems/onmonitorrectitem.h index acdee10c..6530495f 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(const 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: + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + 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