]>
git.mar77i.info Git - bigintmandel/blob - mandellabel.cpp
6 #include "mandellabel.h"
10 MandelLabel::MandelLabel(BigintMandelWidget
*parent
)
12 settings(parent
->get_settings()),
13 menu_bar(parent
->get_menu_bar()),
15 zoom_rect_center(-1, -1) {
16 setMouseTracking(true);
19 static inline QRect
get_rect(QSize size
, QPoint pos
, int zoom_factor
) {
20 QSize
scaled_size(size
.width() / zoom_factor
, size
.height() / zoom_factor
);
23 pos
.x() - scaled_size
.width() / 2,
24 pos
.y() - scaled_size
.height() / 2
30 void MandelLabel::paintEvent(QPaintEvent
*event
) {
33 int zoom_factor
= menu_bar
->get_zoom_factor();
34 bool draw_zoom_rect
= (
36 && zoom_rect_center
.x() != -1
37 && zoom_rect_center
.y() != -1
39 pixmap
= settings
->get_pixmap();
40 if (draw_progress
!= -1 || draw_zoom_rect
)
42 if (draw_progress
!= -1) {
43 qp
.setPen(Qt::GlobalColor::gray
);
44 qp
.drawLine(0, draw_progress
, pixmap
.width() - 1, draw_progress
);
47 qp
.setPen(Qt::GlobalColor::gray
);
56 if (draw_progress
!= -1 || draw_zoom_rect
)
58 resize(pixmap
.size());
60 QLabel::paintEvent(event
);
63 void MandelLabel::leaveEvent(QEvent
*event
) {
64 zoom_rect_center
= QPoint(-1, -1);
67 void MandelLabel::mouseMoveEvent(QMouseEvent
*event
) {
68 zoom_rect_center
= event
->pos();