forked from m-garanin/zgui-qt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgraphicsitem.h
53 lines (40 loc) · 1.23 KB
/
graphicsitem.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef GRAPHICSITEM_H
#define GRAPHICSITEM_H
#include <QGraphicsItem>
class CGraphicsItem : public QGraphicsItem
{
public:
enum ImageFitMode {
ImageFit,
ImageStretch
};
explicit CGraphicsItem(qint32 compkey, QGraphicsItem *parent = 0);
void drawImage(QImage* img);
ImageFitMode imageFitMode() const { return m_imageFitMode; }
void setImageFitMode(ImageFitMode mode);
void setEditMode(bool);
bool isEditMode() const;
int getCompkey() { return m_compkey; }
void setSize(const QSize &size) { _size = size; }
QSize imageSize() const;
QRectF boundingRect() const;
protected:
void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget);
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
private:
bool isInResizeArea(const QPointF &);
public slots:
void updatePreview();
private:
int m_compkey;
QImage* m_currentImage;
ImageFitMode m_imageFitMode;
QSize _size;
bool _edited;
bool _isResizing;
};
#endif // GRAPHICSITEM_H